diff --git a/src/controller/ConfigurationControllerModel.java b/src/controller/ConfigurationControllerModel.java index a441cf21..982ccaa1 100644 --- a/src/controller/ConfigurationControllerModel.java +++ b/src/controller/ConfigurationControllerModel.java @@ -167,7 +167,7 @@ public class ConfigurationControllerModel extends DefaultTreeModel * Convenience method to add a new default system, site and channel to * the tree */ - public void createChannel( int frequency, DecoderType decoder ) + public void createChannel( long frequency, DecoderType decoder ) { System system = new System(); diff --git a/src/controller/activity/CallEvent.java b/src/controller/activity/CallEvent.java index 9bbc7bcf..be62110f 100644 --- a/src/controller/activity/CallEvent.java +++ b/src/controller/activity/CallEvent.java @@ -118,7 +118,7 @@ public abstract class CallEvent public abstract int getChannel(); - public abstract int getFrequency(); + public abstract long getFrequency(); public static String getCSVHeader() { diff --git a/src/controller/activity/CallEventModel.java b/src/controller/activity/CallEventModel.java index 0618e2a4..f94058cb 100644 --- a/src/controller/activity/CallEventModel.java +++ b/src/controller/activity/CallEventModel.java @@ -23,7 +23,6 @@ import java.util.LinkedList; import javax.swing.table.AbstractTableModel; -import log.Log; import sample.Broadcaster; import sample.Listener; diff --git a/src/controller/channel/Channel.java b/src/controller/channel/Channel.java index ee964ea9..8cde4d5c 100644 --- a/src/controller/channel/Channel.java +++ b/src/controller/channel/Channel.java @@ -829,7 +829,7 @@ public class Channel extends Configuration * Indicates if any part of this channel is contained within the * minimum and maximum frequency values. */ - public boolean isWithin( int minimum, int maximum ) + public boolean isWithin( long minimum, long maximum ) { return getTunerChannel() != null && getTunerChannel().isWithin( minimum, maximum ); diff --git a/src/controller/channel/ChannelMap.java b/src/controller/channel/ChannelMap.java index 92bb2ce7..60079530 100644 --- a/src/controller/channel/ChannelMap.java +++ b/src/controller/channel/ChannelMap.java @@ -94,7 +94,7 @@ public class ChannelMap mName = name; } - public int getFrequency( int channelNumber ) + public long getFrequency( int channelNumber ) { for( ChannelRange range: mRanges ) { diff --git a/src/controller/channel/ChannelRange.java b/src/controller/channel/ChannelRange.java index e641f8a0..edc861b1 100644 --- a/src/controller/channel/ChannelRange.java +++ b/src/controller/channel/ChannelRange.java @@ -56,7 +56,7 @@ public class ChannelRange return mFirst <= channel && channel <= mLast; } - public int getFrequency( int channel ) + public long getFrequency( int channel ) { if( hasChannel( channel ) ) { diff --git a/src/decode/fleetsync2/FleetsyncCallEvent.java b/src/decode/fleetsync2/FleetsyncCallEvent.java index bd3468b9..a15bbb0c 100644 --- a/src/decode/fleetsync2/FleetsyncCallEvent.java +++ b/src/decode/fleetsync2/FleetsyncCallEvent.java @@ -63,7 +63,7 @@ public class FleetsyncCallEvent extends CallEvent } @Override - public int getFrequency() + public long getFrequency() { return 0; } diff --git a/src/decode/ltrnet/LTRCallEvent.java b/src/decode/ltrnet/LTRCallEvent.java index 5adc7fd5..b1ba797b 100644 --- a/src/decode/ltrnet/LTRCallEvent.java +++ b/src/decode/ltrnet/LTRCallEvent.java @@ -25,14 +25,14 @@ import decode.DecoderType; public class LTRCallEvent extends CallEvent { private int mChannel; - private int mFrequency; + private long mFrequency; public LTRCallEvent( CallEventType callEventType, AliasList aliasList, String fromID, String toID, int channel, - int frequency, + long frequency, String details ) { super( DecoderType.LTR_STANDARD, callEventType, @@ -101,7 +101,7 @@ public class LTRCallEvent extends CallEvent } @Override - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -117,7 +117,7 @@ public class LTRCallEvent extends CallEvent private String mToID; private String mDetails; private int mChannel; - private int mFrequency; + private long mFrequency; public Builder( CallEventType callEventType ) { @@ -148,7 +148,7 @@ public class LTRCallEvent extends CallEvent return this; } - public Builder frequency( int frequency ) + public Builder frequency( long frequency ) { mFrequency = frequency; return this; diff --git a/src/decode/ltrnet/LTRNetChannelState.java b/src/decode/ltrnet/LTRNetChannelState.java index 4dfb07c8..b5b46a51 100644 --- a/src/decode/ltrnet/LTRNetChannelState.java +++ b/src/decode/ltrnet/LTRNetChannelState.java @@ -33,7 +33,6 @@ public class LTRNetChannelState extends ChannelState private Alias mFromTalkgroupAlias; private String mFromTalkgroupType; private int mChannelNumber; - private String mUniqueID; private LTRCallEvent mCurrentCallEvent; private LTRNetActivitySummary mActivitySummary; diff --git a/src/decode/mdc1200/MDCCallEvent.java b/src/decode/mdc1200/MDCCallEvent.java index 2a4637be..b34cb726 100644 --- a/src/decode/mdc1200/MDCCallEvent.java +++ b/src/decode/mdc1200/MDCCallEvent.java @@ -63,7 +63,7 @@ public class MDCCallEvent extends CallEvent } @Override - public int getFrequency() + public long getFrequency() { return 0; } diff --git a/src/decode/mpt1327/MPT1327CallEvent.java b/src/decode/mpt1327/MPT1327CallEvent.java index a795797c..bca0e9c5 100644 --- a/src/decode/mpt1327/MPT1327CallEvent.java +++ b/src/decode/mpt1327/MPT1327CallEvent.java @@ -25,14 +25,14 @@ import decode.DecoderType; public class MPT1327CallEvent extends CallEvent { private int mChannel; - private int mFrequency; + private long mFrequency; public MPT1327CallEvent( CallEventType callEventType, AliasList aliasList, String fromID, String toID, int channel, - int frequency, + long frequency, String details ) { super( DecoderType.MPT1327, callEventType, @@ -71,7 +71,7 @@ public class MPT1327CallEvent extends CallEvent } @Override - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -87,7 +87,7 @@ public class MPT1327CallEvent extends CallEvent private String mToID; private String mDetails; private int mChannel; - private int mFrequency; + private long mFrequency; public Builder( CallEventType callEventType ) { @@ -118,7 +118,7 @@ public class MPT1327CallEvent extends CallEvent return this; } - public Builder frequency( int frequency ) + public Builder frequency( long frequency ) { mFrequency = frequency; return this; diff --git a/src/decode/mpt1327/MPT1327ChannelState.java b/src/decode/mpt1327/MPT1327ChannelState.java index 62b57c21..f9b9880e 100644 --- a/src/decode/mpt1327/MPT1327ChannelState.java +++ b/src/decode/mpt1327/MPT1327ChannelState.java @@ -191,7 +191,7 @@ public class MPT1327ChannelState extends ChannelState .build() ); } - int frequency = mChannelMap.getFrequency( channelNumber ); + long frequency = mChannelMap.getFrequency( channelNumber ); break; case CLEAR: @@ -330,7 +330,7 @@ public class MPT1327ChannelState extends ChannelState SourceConfigTuner source = new SourceConfigTuner(); - int frequency = mChannelMap.getFrequency( channelNumber ); + long frequency = mChannelMap.getFrequency( channelNumber ); source.setFrequency( frequency ); diff --git a/src/decode/passport/PassportCallEvent.java b/src/decode/passport/PassportCallEvent.java index 08d0f96e..c81e9803 100644 --- a/src/decode/passport/PassportCallEvent.java +++ b/src/decode/passport/PassportCallEvent.java @@ -25,14 +25,14 @@ import decode.DecoderType; public class PassportCallEvent extends CallEvent { private int mChannel; - private int mFrequency; + private long mFrequency; public PassportCallEvent( CallEventType callEventType, AliasList aliasList, String fromID, String toID, int channel, - int frequency, + long frequency, String details ) { super( DecoderType.PASSPORT, callEventType, @@ -81,7 +81,7 @@ public class PassportCallEvent extends CallEvent } @Override - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -97,7 +97,7 @@ public class PassportCallEvent extends CallEvent private String mToID; private String mDetails; private int mChannel; - private int mFrequency; + private long mFrequency; public Builder( CallEventType callEventType ) { @@ -128,7 +128,7 @@ public class PassportCallEvent extends CallEvent return this; } - public Builder frequency( int frequency ) + public Builder frequency( long frequency ) { mFrequency = frequency; return this; diff --git a/src/decode/passport/PassportChannelState.java b/src/decode/passport/PassportChannelState.java index 3fe452ad..c47609d9 100644 --- a/src/decode/passport/PassportChannelState.java +++ b/src/decode/passport/PassportChannelState.java @@ -34,7 +34,7 @@ public class PassportChannelState extends ChannelState private String mMobileID; private Alias mMobileIDAlias; private int mChannelNumber; - private int mFrequency; + private long mFrequency; private PassportCallEvent mCurrentCallEvent; private PassportActivitySummary mActivitySummary; diff --git a/src/decode/passport/PassportMessage.java b/src/decode/passport/PassportMessage.java index 8379405d..414964a1 100644 --- a/src/decode/passport/PassportMessage.java +++ b/src/decode/passport/PassportMessage.java @@ -34,8 +34,6 @@ import decode.DecoderType; public class PassportMessage extends Message { private static final String sUNKNOWN = "**UNKNOWN**"; - private static final int sINT_NULL_VALUE = -1; - private static final double sDOUBLE_NULL_VALUE = -1.0D; private SimpleDateFormat mSDF = new SimpleDateFormat( "yyyyMMdd HHmmss" ); private DecimalFormat mDecimalFormatter = new DecimalFormat("0.00000"); @@ -189,7 +187,7 @@ public class PassportMessage extends Message return getInt( sLCN ); } - public int getLCNFrequency() + public long getLCNFrequency() { return getSiteFrequency( getLCN() ); } @@ -209,7 +207,7 @@ public class PassportMessage extends Message return PassportBand.lookup( getInt( sNEIGHBOR_BAND ) ); } - public int getFrequency( int base, int channel ) + public long getFrequency( int base, int channel ) { return ( base + ( channel * 12500 ) ); } @@ -219,7 +217,7 @@ public class PassportMessage extends Message return getInt( sFREE ); } - public int getFreeFrequency() + public long getFreeFrequency() { return getSiteFrequency( getFree() ); } @@ -229,18 +227,16 @@ public class PassportMessage extends Message return mDecimalFormatter.format( (double)getFreeFrequency() / 1000000.0d ); } - public int getNeighborFrequency() + public long getNeighborFrequency() { - int retVal = 0; - if( getMessageType() == MessageType.SY_IDLE ) { PassportBand band = getNeighborBand(); - retVal = getFrequency( band.getBase(), getFree() ); + return getFrequency( band.getBase(), getFree() ); } - return retVal; + return 0; } /** @@ -392,10 +388,8 @@ public class PassportMessage extends Message return null; } - public int getSiteFrequency( int channel ) + public long getSiteFrequency( int channel ) { - int freq = 0; - if( mIdleMessage != null && 0 < channel && channel < 1792 ) { PassportBand band = mIdleMessage.getSiteBand(); @@ -404,11 +398,11 @@ public class PassportMessage extends Message { int base = band.getBase(); - freq = getFrequency( base, channel ); + return getFrequency( base, channel ); } } - return freq; + return 0; } @Override diff --git a/src/dsp/filter/FilterFactory.java b/src/dsp/filter/FilterFactory.java index dbea3a2d..2a9a1a4f 100644 --- a/src/dsp/filter/FilterFactory.java +++ b/src/dsp/filter/FilterFactory.java @@ -50,7 +50,7 @@ public class FilterFactory * @return */ public static double[] getSinc( int sampleRate, - int frequency, + long frequency, int length, WindowType window ) { @@ -129,7 +129,7 @@ public class FilterFactory * @return */ public static double[] getUnityResponseArray( int sampleRate, - int frequency, + long frequency, int length ) { double[] unityArray = new double[ length * 2 ]; @@ -215,7 +215,7 @@ public class FilterFactory * @return */ public static double[] getLowPass( int sampleRate, - int cutoff, + long cutoff, int filterLength, WindowType windowType ) { @@ -293,14 +293,14 @@ public class FilterFactory * @return */ public static double[] getHighPass( int sampleRate, - int cutoff, + long cutoff, int filterLength, WindowType windowType ) { //Convert the high frequency cutoff to its low frequency cutoff //equivalent, so that when we generate the low pass filter, prior to //inversion, its at the correct frequency - int convertedCutoff = sampleRate / 2 - cutoff; + long convertedCutoff = sampleRate / 2 - cutoff; return invert( getSinc( sampleRate, convertedCutoff, @@ -309,8 +309,8 @@ public class FilterFactory } public static double[] getHighPass( int sampleRate, - int stopFrequency, - int passFrequency, + long stopFrequency, + long passFrequency, int attenuation, WindowType windowType, boolean forceOddLength ) @@ -376,8 +376,8 @@ public class FilterFactory * @return */ public static int getTapCount( int sampleRate, - int pass, - int stop, + long pass, + long stop, int attenuation ) { double frequency = ( (double)stop - (double)pass ) / (double)sampleRate; @@ -386,8 +386,10 @@ public class FilterFactory } public static ComplexFilter[] getDecimationFilters( int sampleRate, - int decimatedRate, int passFrequency, int attenuation, - WindowType windowType ) + int decimatedRate, + long passFrequency, + int attenuation, + WindowType windowType ) { ComplexFilter[] filters; @@ -480,9 +482,9 @@ public class FilterFactory * @throws - AssertionException if sample rate is not a multiple of 48 kHz */ public static int[] getPolyphaseDecimationRates( int sampleRate, - int decimatedRate, - int passFrequency, - int stopFrequency ) + int decimatedRate, + long passFrequency, + long stopFrequency ) { int[] rates; @@ -609,8 +611,8 @@ public class FilterFactory */ public static int getOptimalStageOneRate( int sampleRate, int decimation, - int passFrequency, - int stopFrequency ) + long passFrequency, + long stopFrequency ) { double ratio = getBandwidthRatio( passFrequency, stopFrequency ); @@ -637,7 +639,7 @@ public class FilterFactory * Used in conjunction with the optimal stage one decimation rate method * above. */ - private static double getBandwidthRatio( int passFrequency, int stopFrequency ) + private static double getBandwidthRatio( long passFrequency, long stopFrequency ) { assert( passFrequency < stopFrequency ); diff --git a/src/dsp/filter/GoertzelFilter.java b/src/dsp/filter/GoertzelFilter.java index 9747425d..a421f912 100644 --- a/src/dsp/filter/GoertzelFilter.java +++ b/src/dsp/filter/GoertzelFilter.java @@ -30,7 +30,7 @@ import dsp.filter.Window.WindowType; public class GoertzelFilter { private int mSampleRate; - private int mTargetFrequency; + private long mTargetFrequency; private int mBlockSize; private double[] mWindowCoefficients; @@ -51,7 +51,7 @@ public class GoertzelFilter * the magnitude */ public GoertzelFilter( int sampleRate, - int targetFrequency, + long targetFrequency, int blockSize, WindowType window ) { @@ -139,15 +139,15 @@ public class GoertzelFilter */ public int getSampleRate() { - return mSampleRate; + return mSampleRate; } /** * @return the Target Frequency */ - public int getTargetFrequency() + public long getTargetFrequency() { - return mTargetFrequency; + return mTargetFrequency; } /** @@ -155,7 +155,7 @@ public class GoertzelFilter */ public int getBlockSize() { - return mBlockSize; + return mBlockSize; } } diff --git a/src/dsp/filter/IIRBiQuadraticFilter.java b/src/dsp/filter/IIRBiQuadraticFilter.java index 7e17042b..67833080 100644 --- a/src/dsp/filter/IIRBiQuadraticFilter.java +++ b/src/dsp/filter/IIRBiQuadraticFilter.java @@ -58,19 +58,23 @@ final public class IIRBiQuadraticFilter { } // constructor without gain setting - public IIRBiQuadraticFilter(Type type, double center_freq, double sample_rate, double Q) { + public IIRBiQuadraticFilter(Type type, double center_freq, double sample_rate, double Q) + { configure(type, center_freq, sample_rate, Q, 0); } - public void reset() { + public void reset() + { x1 = x2 = y1 = y2 = 0; } - public double frequency() { + public double frequency() + { return center_freq; } - public void configure(Type type, double center_freq, double sample_rate, double Q, double gainDB) { + public void configure(Type type, double center_freq, double sample_rate, double Q, double gainDB) + { reset(); Q = (Q == 0) ? 1e-9 : Q; this.type = type; @@ -80,7 +84,8 @@ final public class IIRBiQuadraticFilter { reconfigure(center_freq); } - public void configure(Type type, double center_freq, double sample_rate, double Q) { + public void configure(Type type, double center_freq, double sample_rate, double Q) + { configure(type, center_freq, sample_rate, Q, 0); } @@ -167,7 +172,8 @@ final public class IIRBiQuadraticFilter { } // provide a static decibel result for testing - public double log_result(double f) { + public double log_result(double f) + { double r; try { r = 10 * Math.log10(result(f)); @@ -181,12 +187,14 @@ final public class IIRBiQuadraticFilter { } // return the constant set for this filter - public double[] constants() { + public double[] constants() + { return new double[]{b0, b1, b2, a1, a2}; } // perform one filtering step - public double filter(double x) { + public double filter(double x) + { y = b0 * x + b1 * x1 + b2 * x2 - a1 * y1 - a2 * y2; x2 = x1; x1 = x; diff --git a/src/gui/control/JFrequencyControl.java b/src/gui/control/JFrequencyControl.java index 56d9fba1..5f4fa260 100644 --- a/src/gui/control/JFrequencyControl.java +++ b/src/gui/control/JFrequencyControl.java @@ -51,7 +51,7 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener private Color mHighlightColor = Color.YELLOW; - private int mFrequency; + private long mFrequency; private Cursor mBlankCursor; @@ -62,7 +62,7 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener init(); } - public JFrequencyControl( int value ) + public JFrequencyControl( long value ) { this(); mFrequency = value; @@ -127,7 +127,7 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener * rebroadcast this event, just set the control to indicate the new frequency. */ @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { setFrequency( frequency, false ); } @@ -136,7 +136,7 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener * Loads the frequency into the display and optionally fires a change event * to all registered listeners */ - public void setFrequency( int frequency, boolean fireChangeEvent ) + public void setFrequency( long frequency, boolean fireChangeEvent ) { mFrequency = frequency; @@ -146,14 +146,14 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener } } - public int getFrequency() + public long getFrequency() { return mFrequency; } private void updateFrequency() { - int frequency = 0; + long frequency = 0; for( Digit digit: mDigits.values() ) { @@ -209,10 +209,10 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener * to the power (ie column) set for this digit. Optionally, fires a * value change event to all listeners. */ - public void setFrequency( int frequency, boolean fireChangeEvent ) + public void setFrequency( long frequency, boolean fireChangeEvent ) { //Strip the digits higher than this one - int lower = frequency % (int)( Math.pow( 10, mPower + 1) ); + long lower = frequency % (int)( Math.pow( 10, mPower + 1) ); //Set the value to int value of dividing by 10 to this power int value = (int)( lower / (int)( Math.pow( 10, mPower ) ) ); @@ -220,7 +220,7 @@ public class JFrequencyControl extends JPanel implements FrequencyChangeListener set( value, fireChangeEvent ); } - public int getFrequency() + public long getFrequency() { return mValue * (int)Math.pow( 10, mPower ); } diff --git a/src/sample/complex/ComplexSample.java b/src/sample/complex/ComplexSample.java index 7c7ecd0d..2f383f62 100644 --- a/src/sample/complex/ComplexSample.java +++ b/src/sample/complex/ComplexSample.java @@ -38,33 +38,6 @@ public class ComplexSample implements Serializable mRight = right; } - public static void main( String[] args ) - { - Log.info( "Starting ... " ); - - int frequency = 15000; - int sampleRate = 2000000; - - float anglePerSample = (float)( 2.0d * Math.PI * (float)frequency / (float)sampleRate ); - - ComplexSample current = new ComplexSample( 0.0f, -1.0f ); - - ComplexSample stepPerSample = ComplexSample.fromAngle( anglePerSample ); - - long start = System.currentTimeMillis(); - - for( int x = 0; x < sampleRate; x++ ) - { -// Log.info( x + " " + current.toString() ); - current.multiply( stepPerSample ); - current.fastNormalize(); - } - - Log.info( "Elapsed: " + ( System.currentTimeMillis() - start ) ); - - Log.info( "Finished!" ); - } - public ComplexSample copy() { return new ComplexSample( mLeft, mRight ); diff --git a/src/sample/complex/ComplexSampleRateCounter.java b/src/sample/complex/ComplexSampleRateCounter.java index b7f48ecf..4fa42855 100644 --- a/src/sample/complex/ComplexSampleRateCounter.java +++ b/src/sample/complex/ComplexSampleRateCounter.java @@ -100,7 +100,7 @@ public class ComplexSampleRateCounter implements Listener, } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { mExpectedSampleRate = bandwidth; } diff --git a/src/source/Source.java b/src/source/Source.java index 256e258d..8f53a979 100644 --- a/src/source/Source.java +++ b/src/source/Source.java @@ -40,7 +40,7 @@ public abstract class Source public abstract int getSampleRate() throws SourceException; - public abstract int getFrequency() throws SourceException; + public abstract long getFrequency() throws SourceException; public abstract void dispose(); diff --git a/src/source/config/SourceConfigTuner.java b/src/source/config/SourceConfigTuner.java index 6273318a..ee4c5f54 100644 --- a/src/source/config/SourceConfigTuner.java +++ b/src/source/config/SourceConfigTuner.java @@ -27,7 +27,7 @@ public class SourceConfigTuner extends SourceConfiguration { private static DecimalFormat sFORMAT = new DecimalFormat( "0.00000" ); - private int mFrequency = 0; + private long mFrequency = 0; public SourceConfigTuner() { @@ -35,12 +35,12 @@ public class SourceConfigTuner extends SourceConfiguration } @XmlAttribute( name = "frequency" ) - public int getFrequency() + public long getFrequency() { return mFrequency; } - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { mFrequency = frequency; } diff --git a/src/source/mixer/MixerSource.java b/src/source/mixer/MixerSource.java index cfb6c205..5ce90ca4 100644 --- a/src/source/mixer/MixerSource.java +++ b/src/source/mixer/MixerSource.java @@ -34,7 +34,7 @@ import source.SourceException; public class MixerSource extends FloatArraySource { - private int mFrequency = 0; + private long mFrequency = 0; private int mBufferSize = 16384; private BufferReader mBufferReader = new BufferReader(); @@ -141,7 +141,7 @@ public class MixerSource extends FloatArraySource /** * Returns the frequency of this source. Default is 0. */ - public int getFrequency() throws SourceException + public long getFrequency() throws SourceException { return mFrequency; } @@ -151,7 +151,7 @@ public class MixerSource extends FloatArraySource * be useful if you are streaming an external audio source in through the * sound card and you want to specify a frequency for that source */ - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { mFrequency = frequency; } diff --git a/src/source/tuner/DigitalDropChannel.java b/src/source/tuner/DigitalDropChannel.java deleted file mode 100644 index 73bbc796..00000000 --- a/src/source/tuner/DigitalDropChannel.java +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************************* - * SDR Trunk - * Copyright (C) 2014 Dennis Sheirer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see - ******************************************************************************/ -package source.tuner; - -import sample.Broadcaster; -import sample.Listener; -import sample.complex.ComplexSample; -import dsp.filter.ComplexFilter; -import dsp.filter.FilterFactory; -import dsp.filter.Window.WindowType; - -@Deprecated -public class DigitalDropChannel implements Listener, - FrequencyChangeListener -{ - /** - * Implements a frequency translating, decimating FIR filter channelizer. - * - * Uses multiple cascaded half-band low pass filters that each decimate by - * two, to achieve an overall power-of-two decimation factor. - * - * @param decimation - power of 2 decimation factor - * - * @param frequencyShift +/- frequency shift in hertz - */ - - private static int sCHANNEL_RATE = 48000; - private static int sCHANNEL_PASS_FREQUENCY = 12500; - - private NumericallyControlledOscillator mFrequencyTranslator; - - private ComplexFilter[] mFilters; - - private Broadcaster mComplexSampleBroadcaster = - new Broadcaster(); - - private int mSampleRate; - private int mFrequencyShift; - - public DigitalDropChannel( int sampleRate, int frequencyShift ) - { - if( sampleRate % sCHANNEL_RATE != 0 ) - { - throw new IllegalArgumentException( "Sample rate must be an " - + "integer multiple of 48000" ); - } - - mFrequencyShift = frequencyShift; - - setSampleRate( sampleRate ); - } - - private void setSampleRate( int sampleRate ) - { - if( sampleRate != mSampleRate ) - { - /* Setup or adjust the frequency translator */ - if( mFrequencyTranslator == null ) - { - mFrequencyTranslator = - new NumericallyControlledOscillator( mFrequencyShift, - sampleRate ); - } - else - { - mFrequencyTranslator.setSampleRate( sampleRate ); - } - - /* Get new decimation filters */ - mFilters = FilterFactory - .getDecimationFilters( sampleRate, - sCHANNEL_RATE, - sCHANNEL_PASS_FREQUENCY, - 48, //dB attenuation - WindowType.HAMMING ); - - /* wire the first filter stage to the frequency translator */ -// mFrequencyTranslator.setListener( mFilters[ 0 ] ); - - /* wire the remaining filters together */ - if( mFilters.length > 1 ) - { - for( int x = 1; x < mFilters.length; x++ ) - { - mFilters[ x - 1 ].setListener( mFilters[ x ] ); - } - } - - /* Add the sample broadcaster as a listener to the final filter */ -// mFilters[ mFilters.length - 1 ].setListener( mComplexSampleBroadcaster ); - - mSampleRate = sampleRate; - } - } - - @Override - public void frequencyChanged( int frequency, int bandwidth ) - { - mFrequencyTranslator.setFrequency( frequency ); - - if( bandwidth != mSampleRate ) - { - setSampleRate( bandwidth ); - } - } - - public int getFrequencyOffset() - { - return mFrequencyTranslator.getFrequency(); - } - - public void addListener( Listener listener ) - { - mComplexSampleBroadcaster.addListener( listener ); - } - - public void removeListener( Listener listener ) - { - mComplexSampleBroadcaster.removeListener( listener ); - } - - public int getListenerCount() - { - return mComplexSampleBroadcaster.getListenerCount(); - } - - public void removeListeners() - { - mComplexSampleBroadcaster.clear(); - } - - @Override - public void receive( ComplexSample sample ) - { - mFrequencyTranslator.receive( sample ); - } -} diff --git a/src/source/tuner/FrequencyChangeListener.java b/src/source/tuner/FrequencyChangeListener.java index a42aa797..ef8fea34 100644 --- a/src/source/tuner/FrequencyChangeListener.java +++ b/src/source/tuner/FrequencyChangeListener.java @@ -34,5 +34,5 @@ public interface FrequencyChangeListener * @param frequency - uncorrected frequency in hertz * @param bandwidth - bandwidth in hertz */ - public void frequencyChanged( int frequency, int bandwidth ); + public void frequencyChanged( long frequency, int bandwidth ); } diff --git a/src/source/tuner/FrequencyController.java b/src/source/tuner/FrequencyController.java index a8d04378..cf80af6b 100644 --- a/src/source/tuner/FrequencyController.java +++ b/src/source/tuner/FrequencyController.java @@ -24,10 +24,10 @@ import source.SourceException; public class FrequencyController { private Tunable mTunable; - private int mFrequency = 101100000; - private int mTunedFrequency = 101100000; - private int mMinimumFrequency; - private int mMaximumFrequency; + private long mFrequency = 101100000; + private long mTunedFrequency = 101100000; + private long mMinimumFrequency; + private long mMaximumFrequency; private double mFrequencyCorrection = 0d; private int mBandwidth = 0; @@ -35,8 +35,8 @@ public class FrequencyController new ArrayList(); public FrequencyController( Tunable tunable, - int minFrequency, - int maxFrequency, + long minFrequency, + long maxFrequency, double frequencyCorrection ) throws SourceException { mTunable = tunable; @@ -66,7 +66,7 @@ public class FrequencyController /** * Get frequency in hertz */ - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -77,7 +77,7 @@ public class FrequencyController * @throws SourceException if tunable doesn't support tuning a corrected * version of the requested frequency */ - public void setFrequency( int frequency ) throws SourceException + public void setFrequency( long frequency ) throws SourceException { setFrequency( frequency, true ); } @@ -87,10 +87,10 @@ public class FrequencyController * method supports changing the frequency correction value without * broadcasting a frequency change event. */ - private void setFrequency( int frequency, boolean broadcastChange ) + private void setFrequency( long frequency, boolean broadcastChange ) throws SourceException { - int tunedFrequency = getTunedFrequency( frequency ); + long tunedFrequency = getTunedFrequency( frequency ); if( tunedFrequency < mMinimumFrequency || tunedFrequency > mMaximumFrequency ) @@ -114,17 +114,17 @@ public class FrequencyController } } - public int getTunedFrequency() + public long getTunedFrequency() { return mTunedFrequency; } - public int getMinimumFrequency() + public long getMinimumFrequency() { return mMinimumFrequency; } - public int getMaximumFrequency() + public long getMaximumFrequency() { return mMaximumFrequency; } @@ -134,9 +134,9 @@ public class FrequencyController * corrected frequency. * @param correctedFrequency */ - private int getTunedFrequency( int correctedFrequency ) + private long getTunedFrequency( long correctedFrequency ) { - return (int)( (double)correctedFrequency / + return (long)( (double)correctedFrequency / ( 1.0 + ( mFrequencyCorrection / 1000000.0 ) ) ); } @@ -145,7 +145,7 @@ public class FrequencyController * from the tuned frequency. * @param tunedFrequency */ - private int getCorrectedFrequency( int tunedFrequency ) + private long getCorrectedFrequency( long tunedFrequency ) { return (int)( (double)tunedFrequency / ( 1.0 - ( mFrequencyCorrection / 1000000.0 ) ) ); @@ -205,12 +205,12 @@ public class FrequencyController /** * Gets the tuned frequency of the device */ - public int getTunedFrequency() throws SourceException; + public long getTunedFrequency() throws SourceException; /** * Sets the tuned frequency of the device */ - public void setTunedFrequency( int frequency ) throws SourceException; + public void setTunedFrequency( long frequency ) throws SourceException; /** * Gets the current bandwidth setting of the device diff --git a/src/source/tuner/NumericallyControlledOscillator.java b/src/source/tuner/NumericallyControlledOscillator.java index e15d3f00..9c909acb 100644 --- a/src/source/tuner/NumericallyControlledOscillator.java +++ b/src/source/tuner/NumericallyControlledOscillator.java @@ -26,7 +26,7 @@ import util.Oscillator; public class NumericallyControlledOscillator implements Listener, FrequencyChangeListener { - private int mFrequency; + private long mFrequency; private int mSampleRate; private Oscillator mSineWaveGenerator; private Listener mListener; @@ -39,7 +39,7 @@ public class NumericallyControlledOscillator implements Listener, * shifted outside of the sampling bandwidth will wrap around, due to the * nature of quadrature sampling. */ - public NumericallyControlledOscillator( int frequencyShift, int sampleRate ) + public NumericallyControlledOscillator( long frequencyShift, int sampleRate ) { mFrequency = frequencyShift; mSampleRate = sampleRate; @@ -66,7 +66,7 @@ public class NumericallyControlledOscillator implements Listener, } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { if( frequency != mFrequency ) { @@ -84,7 +84,7 @@ public class NumericallyControlledOscillator implements Listener, * all subsequent samples will be output at the new translated frequency * @param frequency - hertz */ - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { Log.info( "NumericallyControlledOscillator - setting sine wave gen to freq:" + frequency ); @@ -96,7 +96,7 @@ public class NumericallyControlledOscillator implements Listener, * Current frequency shift setting * @return - frequency - hertz */ - public int getFrequency() + public long getFrequency() { return mFrequency; } diff --git a/src/source/tuner/Tuner.java b/src/source/tuner/Tuner.java index a1341244..7c7ca34e 100644 --- a/src/source/tuner/Tuner.java +++ b/src/source/tuner/Tuner.java @@ -98,7 +98,7 @@ public abstract class Tuner implements FrequencyChangeBroadcaster, * Tuner Local Oscillator Frequency * @return - frequency in Hertz */ - public abstract int getFrequency() throws SourceException; + public abstract long getFrequency() throws SourceException; /** * Returns a tuner frequency channel source, tuned to the correct frequency @@ -171,7 +171,7 @@ public abstract class Tuner implements FrequencyChangeBroadcaster, /** * Broadcasts a frequency change event to all registered listeners */ - public void broadcastFrequencyChange( int frequency, int bandwidth ) + public void broadcastFrequencyChange( long frequency, int bandwidth ) { for( FrequencyChangeListener listener: mFrequencyChangeListeners ) { @@ -183,7 +183,7 @@ public abstract class Tuner implements FrequencyChangeBroadcaster, * Frequency change listener method. We receive change events from the * controller and rebroadcast them to all registered listeners. */ - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { broadcastFrequencyChange( frequency, bandwidth ); } diff --git a/src/source/tuner/TunerChannel.java b/src/source/tuner/TunerChannel.java index 42974b65..c873753c 100644 --- a/src/source/tuner/TunerChannel.java +++ b/src/source/tuner/TunerChannel.java @@ -20,10 +20,10 @@ package source.tuner; public class TunerChannel implements Comparable { private Type mType; - private int mFrequency; + private long mFrequency; private int mBandwidth; - public TunerChannel( Type type, int frequency, int bandwidth ) + public TunerChannel( Type type, long frequency, int bandwidth ) { mType = type; mFrequency = frequency; @@ -40,12 +40,12 @@ public class TunerChannel implements Comparable mType = type; } - public int getFrequency() + public long getFrequency() { return mFrequency; } - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { mFrequency = frequency; } @@ -60,12 +60,12 @@ public class TunerChannel implements Comparable mBandwidth = bandwidth; } - public int getMinFrequency() + public long getMinFrequency() { return mFrequency - ( mBandwidth / 2 ); } - public int getMaxFrequency() + public long getMaxFrequency() { return mFrequency + ( mBandwidth / 2 ); } @@ -74,7 +74,7 @@ public class TunerChannel implements Comparable * Indicates if any part of this tuner channel is contained within the * minimum and maximum frequency values. */ - public boolean isWithin( int minimum, int maximum ) + public boolean isWithin( long minimum, long maximum ) { return ( ( minimum <= getMinFrequency() && getMinFrequency() <= maximum ) || ( minimum <= getMaxFrequency() && getMaxFrequency() <= maximum ) ); diff --git a/src/source/tuner/TunerChannelSource.java b/src/source/tuner/TunerChannelSource.java index b9baca1e..b00f1486 100644 --- a/src/source/tuner/TunerChannelSource.java +++ b/src/source/tuner/TunerChannelSource.java @@ -55,7 +55,7 @@ public class TunerChannelSource extends ComplexSource private ComplexSampleAssembler mBufferAssembler = new ComplexSampleAssembler( 3000 ); - private int mTunerFrequency; + private long mTunerFrequency; private int mTunerSampleRate; private ThreadPoolManager mThreadPoolManager; private ScheduledFuture mTaskHandle; @@ -153,13 +153,13 @@ public class TunerChannelSource extends ComplexSource } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { /* Frequency change */ if( frequency != mTunerFrequency ) { - int frequencyOffset = frequency - mTunerChannel.getFrequency(); + long frequencyOffset = frequency - mTunerChannel.getFrequency(); if( mSineWaveGenerator == null ) { @@ -180,7 +180,7 @@ public class TunerChannelSource extends ComplexSource /* Bandwidth/Sample rate change */ if( bandwidth != mTunerSampleRate ) { - int frequencyOffset = frequency - mTunerChannel.getFrequency(); + long frequencyOffset = frequency - mTunerChannel.getFrequency(); if( mSineWaveGenerator == null ) { @@ -225,7 +225,7 @@ public class TunerChannelSource extends ComplexSource return mTuner.getSampleRate(); } - public int getFrequency() throws SourceException + public long getFrequency() throws SourceException { return mTuner.getFrequency(); } diff --git a/src/source/tuner/TunerController.java b/src/source/tuner/TunerController.java index efbb31cd..b02888f4 100644 --- a/src/source/tuner/TunerController.java +++ b/src/source/tuner/TunerController.java @@ -45,7 +45,7 @@ public abstract class TunerController implements Tunable * @throws SourceException - for any issues related to constructing the * class, tuning a frequency, or setting the bandwidth */ - public TunerController( int minimumFrequency, int maximumFrequency ) + public TunerController( long minimumFrequency, long maximumFrequency ) throws SourceException { mFrequencyController = new FrequencyController( this, @@ -71,7 +71,7 @@ public abstract class TunerController implements Tunable * @param frequency in hertz * @throws SourceException - if the tuner has any issues */ - public void setFrequency( int frequency ) throws SourceException + public void setFrequency( long frequency ) throws SourceException { mFrequencyController.setFrequency( frequency ); } @@ -81,7 +81,7 @@ public abstract class TunerController implements Tunable * * @return frequency in hertz */ - public int getFrequency() + public long getFrequency() { return mFrequencyController.getFrequency(); } @@ -96,12 +96,12 @@ public abstract class TunerController implements Tunable mFrequencyController.setFrequencyCorrection( correction ); } - public int getMinFrequency() + public long getMinFrequency() { return mFrequencyController.getMinimumFrequency(); } - public int getMaxFrequency() + public long getMaxFrequency() { return mFrequencyController.getMaximumFrequency(); } @@ -127,8 +127,8 @@ public abstract class TunerController implements Tunable //Sort the existing locks and get the min/max locked frequencies Collections.sort( mTunedChannels ); - int minLockedFrequency = mTunedChannels.get( 0 ).getMinFrequency(); - int maxLockedFrequency = mTunedChannels + long minLockedFrequency = mTunedChannels.get( 0 ).getMinFrequency(); + long maxLockedFrequency = mTunedChannels .get( mTunedChannels.size() - 1 ).getMaxFrequency(); //Requested channel is higher than min locked frequency @@ -195,14 +195,14 @@ public abstract class TunerController implements Tunable { Collections.sort( mTunedChannels ); - int minLockedFrequency = mTunedChannels.get( 0 ).getMinFrequency(); - int maxLockedFrequency = mTunedChannels + long minLockedFrequency = mTunedChannels.get( 0 ).getMinFrequency(); + long maxLockedFrequency = mTunedChannels .get( mTunedChannels.size() - 1 ).getMaxFrequency(); - int middle = minLockedFrequency + + long middle = minLockedFrequency + ( ( maxLockedFrequency - minLockedFrequency ) / 2 ); - int middleMin = middle - 10000; - int middleMax = middle + 10000; + long middleMin = middle - 10000; + long middleMax = middle + 10000; Iterator it = mTunedChannels.iterator(); diff --git a/src/source/tuner/TunerNode.java b/src/source/tuner/TunerNode.java index e5b45229..5adcae4e 100644 --- a/src/source/tuner/TunerNode.java +++ b/src/source/tuner/TunerNode.java @@ -36,7 +36,7 @@ public class TunerNode extends BaseNode implements FrequencyChangeListener private static DecimalFormat FREQUENCY_FORMAT = new DecimalFormat( "0.00000" ); private static DecimalFormat SAMPLE_RATE_FORMAT = new DecimalFormat( "0.000" ); - private int mFrequency; + private long mFrequency; private int mBandwidth; public TunerNode( Tuner tuner ) @@ -117,7 +117,7 @@ public class TunerNode extends BaseNode implements FrequencyChangeListener } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { mFrequency = frequency; mBandwidth = bandwidth; diff --git a/src/source/tuner/ettus/B100Tuner.java b/src/source/tuner/ettus/B100Tuner.java index 7187d88a..e8d91283 100644 --- a/src/source/tuner/ettus/B100Tuner.java +++ b/src/source/tuner/ettus/B100Tuner.java @@ -78,7 +78,7 @@ public class B100Tuner extends Tuner } @Override - public int getFrequency() throws SourceException + public long getFrequency() throws SourceException { return 0; } diff --git a/src/source/tuner/fcd/FCDTuner.java b/src/source/tuner/fcd/FCDTuner.java index 8aa69767..410ccfde 100644 --- a/src/source/tuner/fcd/FCDTuner.java +++ b/src/source/tuner/fcd/FCDTuner.java @@ -92,7 +92,7 @@ public class FCDTuner extends MixerTuner } @Override - public int getFrequency() throws SourceException + public long getFrequency() throws SourceException { return mController.getFrequency(); } diff --git a/src/source/tuner/fcd/FCDTunerController.java b/src/source/tuner/fcd/FCDTunerController.java index 11b9043b..79088a55 100644 --- a/src/source/tuner/fcd/FCDTunerController.java +++ b/src/source/tuner/fcd/FCDTunerController.java @@ -55,7 +55,6 @@ public abstract class FCDTunerController extends TunerController private UsbPipe mPipeIn; private UsbPipe mPipeOut; private FCDConfiguration mConfiguration = new FCDConfiguration(); - private int mSampleRate; public FCDTunerController( USBTunerDevice device, int minTunableFrequency, @@ -147,7 +146,7 @@ public abstract class FCDTunerController extends TunerController /** * Sets the actual (uncorrected) device frequency */ - public void setTunedFrequency( int frequency ) throws SourceException + public void setTunedFrequency( long frequency ) throws SourceException { try { @@ -163,11 +162,11 @@ public abstract class FCDTunerController extends TunerController /** * Gets the actual (uncorrected) device frequency */ - public int getTunedFrequency() throws SourceException + public long getTunedFrequency() throws SourceException { try { - return (int)send( FCDCommand.APP_GET_FREQUENCY_HZ ); + return send( FCDCommand.APP_GET_FREQUENCY_HZ ); } catch( Exception e ) { diff --git a/src/source/tuner/fcd/proV1/FCD1TunerEditorPanel.java b/src/source/tuner/fcd/proV1/FCD1TunerEditorPanel.java index 488286cb..7757b47c 100644 --- a/src/source/tuner/fcd/proV1/FCD1TunerEditorPanel.java +++ b/src/source/tuner/fcd/proV1/FCD1TunerEditorPanel.java @@ -86,7 +86,7 @@ public class FCD1TunerEditorPanel extends JPanel implements FrequencyChangeListe } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { //Disregard the bandwidth value, which shouldn't be changing try diff --git a/src/source/tuner/fcd/proplusV2/FCD2TunerEditorPanel.java b/src/source/tuner/fcd/proplusV2/FCD2TunerEditorPanel.java index 1e665402..0778781d 100644 --- a/src/source/tuner/fcd/proplusV2/FCD2TunerEditorPanel.java +++ b/src/source/tuner/fcd/proplusV2/FCD2TunerEditorPanel.java @@ -85,7 +85,7 @@ public class FCD2TunerEditorPanel extends JPanel implements FrequencyChangeListe } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { //Disregard the bandwidth, which shouldn't be changing try diff --git a/src/source/tuner/rtl/RTL2832Tuner.java b/src/source/tuner/rtl/RTL2832Tuner.java index f226202c..ac80035d 100644 --- a/src/source/tuner/rtl/RTL2832Tuner.java +++ b/src/source/tuner/rtl/RTL2832Tuner.java @@ -119,7 +119,7 @@ public class RTL2832Tuner extends Tuner } @Override - public int getFrequency() throws SourceException + public long getFrequency() throws SourceException { return mController.getFrequency(); } diff --git a/src/source/tuner/rtl/RTL2832TunerController.java b/src/source/tuner/rtl/RTL2832TunerController.java index 4341e301..3e525847 100644 --- a/src/source/tuner/rtl/RTL2832TunerController.java +++ b/src/source/tuner/rtl/RTL2832TunerController.java @@ -166,8 +166,8 @@ public abstract class RTL2832TunerController extends TunerController * tuner controller class for that tuner type. */ public RTL2832TunerController( USBTunerDevice tunerDevice, - int minTunableFrequency, - int maxTunableFrequency ) throws SourceException + long minTunableFrequency, + long maxTunableFrequency ) throws SourceException { super( minTunableFrequency, maxTunableFrequency ); diff --git a/src/source/tuner/rtl/e4k/E4KTunerController.java b/src/source/tuner/rtl/e4k/E4KTunerController.java index 47c4e9b9..76a0ba42 100644 --- a/src/source/tuner/rtl/e4k/E4KTunerController.java +++ b/src/source/tuner/rtl/e4k/E4KTunerController.java @@ -36,10 +36,10 @@ public class E4KTunerController extends RTL2832TunerController * * TODO: change frequency to a long primitive type */ - public static final int sMIN_FREQUENCY = 52000000; - public static final int sMIN_FREQUENCY_EXTENDED = 52000000; - public static final int sMAX_FREQUENCY = 2147000000; - public static final int sMAX_FREQUENCY_EXTENDED = 2147000000; + public static final long sMIN_FREQUENCY = 52000000; + public static final long sMIN_FREQUENCY_EXTENDED = 52000000; + public static final long sMAX_FREQUENCY = 2200000000l; + public static final long sMAX_FREQUENCY_EXTENDED = 2200000000l; public static final long sMIN_VCO = 2600000000l; //2.6 GHz public static final long sMAX_VCO = 3900000000l; //3.9 GHz @@ -236,7 +236,7 @@ public class E4KTunerController extends RTL2832TunerController } @Override - public int getTunedFrequency() throws SourceException + public long getTunedFrequency() throws SourceException { try { @@ -276,7 +276,7 @@ public class E4KTunerController extends RTL2832TunerController } @Override - public void setTunedFrequency( int frequency ) throws SourceException + public void setTunedFrequency( long frequency ) throws SourceException { /* Get the phase locked loop setting */ PLL pll = PLL.fromFrequency( frequency ); @@ -288,13 +288,13 @@ public class E4KTunerController extends RTL2832TunerController /* remainder is just as it describes. It is what is left over after we * carve out scaled oscillator frequency increments (z) from the desired * frequency. */ - int remainder = frequency - ( ( z & 0xFF ) * pll.getScaledOscillator() ); + int remainder = (int)( frequency - ( ( z & 0xFF ) * pll.getScaledOscillator() ) ); /* X is a 16-bit representation of the remainder */ int x = (int)( (double)remainder / (double)pll.getScaledOscillator() * sE4K_PLL_Y ); /* Calculate the exact (tunable) frequency and apply that to the tuner */ - int actualFrequency = calculateActualFrequency( pll, z, x ); + long actualFrequency = calculateActualFrequency( pll, z, x ); /** * Hack: if we're trying to set the minimum frequency for the E4K, due @@ -353,9 +353,9 @@ public class E4KTunerController extends RTL2832TunerController } } - private int calculateActualFrequency( PLL pll, byte z, int x ) + private long calculateActualFrequency( PLL pll, byte z, int x ) { - int whole = (int)( pll.getScaledOscillator() * ( z & 0xFF ) ); + long whole = pll.getScaledOscillator() * ( z & 0xFF ); int fractional = (int)( pll.getScaledOscillator() * ( (double)x / (double)sE4K_PLL_Y ) ); @@ -880,7 +880,7 @@ public class E4KTunerController extends RTL2832TunerController } } - public void setBand( int frequency, + public void setBand( long frequency, boolean controlI2CRepeater ) throws UsbException { if( controlI2CRepeater ) @@ -918,7 +918,7 @@ public class E4KTunerController extends RTL2832TunerController } } - private void setRFFilter( int frequency, + private void setRFFilter( long frequency, boolean controlI2CRepeater ) throws UsbException { RFFilter filter = RFFilter.fromFrequency( frequency ); @@ -1057,7 +1057,7 @@ public class E4KTunerController extends RTL2832TunerController return toString(); } - public static Band fromFrequency( int frequency ) + public static Band fromFrequency( long frequency ) { if( frequency < 140000000 ) //140 MHz { @@ -1092,14 +1092,14 @@ public class E4KTunerController extends RTL2832TunerController PLL_1200M0( 0x01, 1200000000, 4, 7200000, false, "1200.0 MHz" ); private int mValue; - private int mFrequency; + private long mFrequency; private int mMultiplier; private int mScaledOscillator; private boolean mRequires3PhaseMixing; private String mLabel; private PLL( int value, - int frequency, + long frequency, int multiplier, int scaledOscillator, boolean requires3Phase, @@ -1119,7 +1119,7 @@ public class E4KTunerController extends RTL2832TunerController return (byte)mValue; } - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -1151,7 +1151,7 @@ public class E4KTunerController extends RTL2832TunerController /* Returns the PLL setting with the closest frequency that is greater * than the frequency argument */ - public static PLL fromFrequency( int frequency ) + public static PLL fromFrequency( long frequency ) { for( PLL pll: values() ) { @@ -1235,10 +1235,10 @@ public class E4KTunerController extends RTL2832TunerController M1750( 15, 1735000000, 2147000000 ); private int mValue; - private int mMinFrequency; - private int mMaxFrequency; + private long mMinFrequency; + private long mMaxFrequency; - private RFFilter( int value, int minFrequency, int maxFrequency ) + private RFFilter( int value, long minFrequency, long maxFrequency ) { mValue = value; mMinFrequency = minFrequency; @@ -1263,7 +1263,7 @@ public class E4KTunerController extends RTL2832TunerController /** * Minimum frequency for this filter. */ - public int getMinimumFrequency() + public long getMinimumFrequency() { return mMinFrequency; } @@ -1272,7 +1272,7 @@ public class E4KTunerController extends RTL2832TunerController * Maximum frequency for this filter is less than this value, but does * not include this value. */ - public int getMaximumFrequency() + public long getMaximumFrequency() { return mMaxFrequency; } @@ -1285,7 +1285,7 @@ public class E4KTunerController extends RTL2832TunerController * @throws IllegalArgumentException if the frequency is outside the * max value (2200 MHz) */ - public static RFFilter fromFrequency( int frequency ) + public static RFFilter fromFrequency( long frequency ) { if( frequency < 350000000 ) { diff --git a/src/source/tuner/rtl/e4k/E4KTunerEditorPanel.java b/src/source/tuner/rtl/e4k/E4KTunerEditorPanel.java index 909bd93f..0b0aada1 100644 --- a/src/source/tuner/rtl/e4k/E4KTunerEditorPanel.java +++ b/src/source/tuner/rtl/e4k/E4KTunerEditorPanel.java @@ -22,18 +22,17 @@ import gui.control.JFrequencyControl; import java.awt.Color; import java.awt.EventQueue; -import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; -import com.jidesoft.swing.JideTabbedPane; - import log.Log; import net.miginfocom.swing.MigLayout; -import source.SourceComponentEditor; import source.SourceException; import source.tuner.FrequencyChangeListener; import source.tuner.rtl.RTL2832InfoPanel; + +import com.jidesoft.swing.JideTabbedPane; + import controller.ResourceManager; public class E4KTunerEditorPanel extends JPanel implements FrequencyChangeListener @@ -89,7 +88,7 @@ public class E4KTunerEditorPanel extends JPanel implements FrequencyChangeListen * apply end-user requested frequency changes against the tuner */ @Override - public void frequencyChanged( final int frequency, int bandwidth ) + public void frequencyChanged( final long frequency, int bandwidth ) { EventQueue.invokeLater( new Runnable() { diff --git a/src/source/tuner/rtl/r820t/R820TTunerController.java b/src/source/tuner/rtl/r820t/R820TTunerController.java index 3b6ac486..a9be2a37 100644 --- a/src/source/tuner/rtl/r820t/R820TTunerController.java +++ b/src/source/tuner/rtl/r820t/R820TTunerController.java @@ -35,8 +35,8 @@ import controller.ResourceManager; public class R820TTunerController extends RTL2832TunerController { - public static final int MIN_FREQUENCY = 24000000; - public static final int MAX_FREQUENCY = 1766000000; + public static final long MIN_FREQUENCY = 24000000; + public static final long MAX_FREQUENCY = 1766000000; public static final int R820T_IF_FREQUENCY = 3570000; public static final byte VERSION = (byte)49; @@ -136,7 +136,7 @@ public class R820TTunerController extends RTL2832TunerController * Not implemented. */ @Override - public int getTunedFrequency() throws SourceException + public long getTunedFrequency() throws SourceException { return 0; } @@ -146,7 +146,7 @@ public class R820TTunerController extends RTL2832TunerController * of setting the multiplexer and then setting the Oscillator (PLL). */ @Override - public void setTunedFrequency( int frequency ) throws SourceException + public void setTunedFrequency( long frequency ) throws SourceException { try { @@ -154,7 +154,7 @@ public class R820TTunerController extends RTL2832TunerController boolean controlI2C = false; - int offsetFrequency = frequency + R820T_IF_FREQUENCY; + long offsetFrequency = frequency + R820T_IF_FREQUENCY; setMux( offsetFrequency, controlI2C ); @@ -205,7 +205,7 @@ public class R820TTunerController extends RTL2832TunerController /** * Sets the multiplexer for the desired center frequency. */ - private void setMux( int frequency, boolean controlI2C ) throws UsbException + private void setMux( long frequency, boolean controlI2C ) throws UsbException { FrequencyRange range = FrequencyRange.getRangeForFrequency( frequency ); @@ -401,7 +401,7 @@ public class R820TTunerController extends RTL2832TunerController /** * Sets the system IF frequency */ - private void systemFrequencySelect( int frequency, boolean controlI2C ) + private void systemFrequencySelect( long frequency, boolean controlI2C ) throws UsbException { /* LNA top? */ @@ -472,7 +472,7 @@ public class R820TTunerController extends RTL2832TunerController * @param controlI2C - control the I2C repeater locally * @throws UsbException - if unable to set any of the R820T registers */ - private void setPLL( int frequency, boolean controlI2C ) throws UsbException + private void setPLL( long frequency, boolean controlI2C ) throws UsbException { /* Set reference divider to 0 */ writeR820TRegister( Register.REFERENCE_DIVIDER_2, (byte)0x00, controlI2C ); @@ -970,16 +970,16 @@ public class R820TTunerController extends RTL2832TunerController RANGE_650( 650000000, 1766000000, 0x00, 0x40, 0x00, 0x00, 0x00 ), RANGE_UNK( 0, 0, 0, 0, 0, 0, 0 ); - private int mMinFrequency; - private int mMaxFrequency; + private long mMinFrequency; + private long mMaxFrequency; private int mOpenDrain; private int mRFMux_PolyMux; private int mTF_c; private int mXtalCap20p; private int mXtalCap10p; - private FrequencyRange( int minFrequency, - int maxFrequency, + private FrequencyRange( long minFrequency, + long maxFrequency, int openDrain, int rfMuxPloy, int tf_c, @@ -995,12 +995,12 @@ public class R820TTunerController extends RTL2832TunerController mXtalCap10p = xtalCap10p; } - public boolean contains( int frequency ) + public boolean contains( long frequency ) { return mMinFrequency <= frequency && frequency <= mMaxFrequency; } - public static FrequencyRange getRangeForFrequency( int frequency ) + public static FrequencyRange getRangeForFrequency( long frequency ) { for( FrequencyRange range: values() ) { @@ -1013,12 +1013,12 @@ public class R820TTunerController extends RTL2832TunerController return RANGE_UNK; } - public int getMinFrequency() + public long getMinFrequency() { return mMinFrequency; } - public int getMaxFrequency() + public long getMaxFrequency() { return mMaxFrequency; } @@ -1100,16 +1100,16 @@ public class R820TTunerController extends RTL2832TunerController private int mDividerNumber; private int mMixerDivider; - private int mMinimumFrequency; - private int mMaximumFrequency; + private long mMinimumFrequency; + private long mMaximumFrequency; private int mRegisterSetting; private int mIntegralValue; private static final int mVCOPowerReference = 2; private FrequencyDivider( int dividerNumber, int mixerDivider, - int minimumFrequency, - int maximumFrequency, + long minimumFrequency, + long maximumFrequency, int registerSetting, int integralValue ) { @@ -1144,12 +1144,12 @@ public class R820TTunerController extends RTL2832TunerController return mMixerDivider; } - public int getMinimumFrequency() + public long getMinimumFrequency() { return mMinimumFrequency; } - public int getMaximumFrequency() + public long getMaximumFrequency() { return mMaximumFrequency; } @@ -1159,7 +1159,7 @@ public class R820TTunerController extends RTL2832TunerController return (byte)mRegisterSetting; } - public boolean contains( int frequency ) + public boolean contains( long frequency ) { return mMinimumFrequency <= frequency && frequency <= mMaximumFrequency; @@ -1172,7 +1172,7 @@ public class R820TTunerController extends RTL2832TunerController * @param frequency - desired frequency * @return - FrequencyDivider to use for the specified frequency */ - public static FrequencyDivider fromFrequency( int frequency ) + public static FrequencyDivider fromFrequency( long frequency ) { for( FrequencyDivider divider: FrequencyDivider.values() ) { @@ -1188,11 +1188,11 @@ public class R820TTunerController extends RTL2832TunerController /** * Returns the integral to use for this frequency */ - public Integral getIntegral( int frequency ) + public Integral getIntegral( long frequency ) { if( contains( frequency ) ) { - int delta = frequency - mMinimumFrequency; + int delta = (int)( frequency - mMinimumFrequency ); int integral = (int)Math.round( (double)delta / (double)mIntegralValue ); @@ -1212,11 +1212,11 @@ public class R820TTunerController extends RTL2832TunerController * by the integral value to derive a 16-bit fractional value, returned * as an integer */ - public int getSDM( Integral integral, int frequency ) + public int getSDM( Integral integral, long frequency ) { if( contains( frequency ) ) { - int delta = frequency - ( integral.getNumber() * mIntegralValue ); + int delta = (int)( frequency - ( integral.getNumber() * mIntegralValue ) ); double fractional = (double)delta / (double)mIntegralValue; diff --git a/src/source/tuner/rtl/r820t/R820TTunerEditorPanel.java b/src/source/tuner/rtl/r820t/R820TTunerEditorPanel.java index 59f9ba62..334f6e02 100644 --- a/src/source/tuner/rtl/r820t/R820TTunerEditorPanel.java +++ b/src/source/tuner/rtl/r820t/R820TTunerEditorPanel.java @@ -88,7 +88,7 @@ public class R820TTunerEditorPanel extends JPanel implements FrequencyChangeList * apply end-user requested frequency changes against the tuner */ @Override - public void frequencyChanged( final int frequency, int bandwidth ) + public void frequencyChanged( final long frequency, int bandwidth ) { EventQueue.invokeLater( new Runnable() { diff --git a/src/source/wave/ComplexWaveSource.java b/src/source/wave/ComplexWaveSource.java index d1f2f273..71775393 100644 --- a/src/source/wave/ComplexWaveSource.java +++ b/src/source/wave/ComplexWaveSource.java @@ -41,7 +41,7 @@ public class ComplexWaveSource extends WaveSource private AudioInputStream mInputStream = null; private int mBytesPerFrame = 0; - private int mFrequency = 0; + private long mFrequency = 0; private byte[] mBuffer; private int mBufferPointer = 0; @@ -86,7 +86,7 @@ public class ComplexWaveSource extends WaveSource * Returns the frequency set for this file. Normally returns zero, but * the value can be set with setFrequency() method. */ - public int getFrequency() + public long getFrequency() { return mFrequency; } @@ -94,7 +94,7 @@ public class ComplexWaveSource extends WaveSource /** * Changes the value returned from getFrequency() for this source. */ - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { mFrequency = frequency; } diff --git a/src/source/wave/FloatWaveSource.java b/src/source/wave/FloatWaveSource.java index ee81d7ee..bb9a7439 100644 --- a/src/source/wave/FloatWaveSource.java +++ b/src/source/wave/FloatWaveSource.java @@ -38,7 +38,7 @@ public class FloatWaveSource extends WaveSource private AudioInputStream mInputStream = null; private int mBytesPerFrame = 0; - private int mFrequency = 0; + private long mFrequency = 0; private byte[] mBuffer; private int mBufferPointer = 0; @@ -84,7 +84,7 @@ public class FloatWaveSource extends WaveSource * Returns the frequency set for this file. Normally returns zero, but * the value can be set with setFrequency() method. */ - public int getFrequency() + public long getFrequency() { return mFrequency; } diff --git a/src/spectrum/DFTProcessor.java b/src/spectrum/DFTProcessor.java index 09b06295..9b5c9b66 100644 --- a/src/spectrum/DFTProcessor.java +++ b/src/spectrum/DFTProcessor.java @@ -519,7 +519,7 @@ public class DFTProcessor implements Listener, } @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { mSampleRate = bandwidth; diff --git a/src/spectrum/OverlayPanel.java b/src/spectrum/OverlayPanel.java index a54a70bc..1abad4ab 100644 --- a/src/spectrum/OverlayPanel.java +++ b/src/spectrum/OverlayPanel.java @@ -53,7 +53,7 @@ public class OverlayPanel extends JPanel private static DecimalFormat sFORMAT = new DecimalFormat( "000.000" ); private static DecimalFormat sCURSOR_FORMAT = new DecimalFormat( "000.00000" ); - private int mFrequency = 0; + private long mFrequency = 0; private int mBandwidth = 0; private Point mCursorLocation = new Point( 0, 0 ); private boolean mCursorVisible = false; @@ -239,13 +239,13 @@ public class OverlayPanel extends JPanel */ private void drawFrequencies( Graphics2D graphics ) { - int minFrequency = getMinFrequency(); - int maxFrequency = getMaxFrequency(); + long minFrequency = getMinFrequency(); + long maxFrequency = getMaxFrequency(); //TODO: the increment should be changeable according to the overall bandwidth // so that when we move to higher sample rates, the display reacts accordingly - int frequency; + long frequency; if( mBandwidth < 200000 ) { @@ -280,7 +280,7 @@ public class OverlayPanel extends JPanel /** * Draws a vertical line and a corresponding frequency label at the bottom */ - private void drawFrequencyLineAndLabel( Graphics2D graphics, int frequency ) + private void drawFrequencyLineAndLabel( Graphics2D graphics, long frequency ) { float xAxis = getAxisFromFrequency( frequency ); @@ -305,12 +305,12 @@ public class OverlayPanel extends JPanel /** * Returns the x-axis value corresponding to the frequency */ - public float getAxisFromFrequency( int frequency ) + public float getAxisFromFrequency( long frequency ) { float canvasMiddle = (float)getSize().getWidth() / 2; //Determine frequency offset from middle - int frequencyOffset = mFrequency - frequency; + long frequencyOffset = mFrequency - frequency; //Determine ratio of offset to bandwidth float ratio = (float)frequencyOffset / (float)mBandwidth; @@ -325,7 +325,7 @@ public class OverlayPanel extends JPanel /** * Returns the frequency corresponding to the x-axis value */ - public int getFrequencyFromAxis( double xAxis ) + public long getFrequencyFromAxis( double xAxis ) { float width = (float)getSize().getWidth(); @@ -339,7 +339,7 @@ public class OverlayPanel extends JPanel */ private void drawFrequencyLabel( Graphics2D graphics, float xaxis, - int frequency ) + long frequency ) { String label = sFORMAT.format( (float)frequency / 1000000.0f ); @@ -483,7 +483,7 @@ public class OverlayPanel extends JPanel * Frequency change event handler */ @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { mBandwidth = bandwidth; mFrequency = frequency; @@ -493,8 +493,8 @@ public class OverlayPanel extends JPanel */ mVisibleChannels.clear(); - int minimum = getMinFrequency(); - int maximum = getMaxFrequency(); + long minimum = getMinFrequency(); + long maximum = getMaxFrequency(); for( Channel channel: mChannels ) { @@ -545,7 +545,7 @@ public class OverlayPanel extends JPanel /** * Currently displayed minimum frequency */ - private int getMinFrequency() + private long getMinFrequency() { return mFrequency - ( mBandwidth / 2 ); } @@ -553,7 +553,7 @@ public class OverlayPanel extends JPanel /** * Currently displayed maximum frequency */ - private int getMaxFrequency() + private long getMaxFrequency() { return mFrequency + ( mBandwidth / 2 ); } @@ -562,7 +562,7 @@ public class OverlayPanel extends JPanel * Returns a list of channel configs that contain the frequency within their * min/max frequency settings. */ - public ArrayList getChannelsAtFrequency( int frequency ) + public ArrayList getChannelsAtFrequency( long frequency ) { ArrayList configs = new ArrayList(); diff --git a/src/spectrum/SpectralDisplayPanel.java b/src/spectrum/SpectralDisplayPanel.java index 784b2964..437a337c 100644 --- a/src/spectrum/SpectralDisplayPanel.java +++ b/src/spectrum/SpectralDisplayPanel.java @@ -319,7 +319,7 @@ public class SpectralDisplayPanel extends JPanel * Receives frequency change events -- primarily from tuner components. */ @Override - public void frequencyChanged( int frequency, int bandwidth ) + public void frequencyChanged( long frequency, int bandwidth ) { mChannelPanel.frequencyChanged( frequency, bandwidth ); mDFTProcessor.frequencyChanged( frequency, bandwidth ); @@ -479,7 +479,7 @@ public class SpectralDisplayPanel extends JPanel contextMenu.add( new PauseItem( mWaterfallPanel, "Pause" ) ); } - int frequency = + long frequency = mChannelPanel.getFrequencyFromAxis( event.getX() ); if( event.getComponent() == mChannelPanel ) @@ -757,10 +757,10 @@ public class SpectralDisplayPanel extends JPanel private static final long serialVersionUID = 1L; private ResourceManager mResourceManager; - private int mFrequency; + private long mFrequency; private DecoderType mDecoder; - public DecoderItem( ResourceManager manager, int frequency, DecoderType type ) + public DecoderItem( ResourceManager manager, long frequency, DecoderType type ) { super( type.getDisplayString() ); diff --git a/src/spectrum/WaterfallPanel.java b/src/spectrum/WaterfallPanel.java index f1ef4d1a..b19101e6 100644 --- a/src/spectrum/WaterfallPanel.java +++ b/src/spectrum/WaterfallPanel.java @@ -69,7 +69,7 @@ public class WaterfallPanel extends JPanel implements DFTResultsListener, private Point mCursorLocation = new Point( 0, 0 ); private boolean mCursorVisible = false; - private int mCursorFrequency = 0; + private long mCursorFrequency = 0; private AtomicBoolean mPaused = new AtomicBoolean(); private ResourceManager mResourceManager; @@ -162,7 +162,7 @@ public class WaterfallPanel extends JPanel implements DFTResultsListener, repaint(); } - public void setCursorFrequency( int frequency ) + public void setCursorFrequency( long frequency ) { mCursorFrequency = frequency; } diff --git a/src/util/Oscillator.java b/src/util/Oscillator.java index 8ffa044d..3ed02d84 100644 --- a/src/util/Oscillator.java +++ b/src/util/Oscillator.java @@ -34,7 +34,7 @@ public class Oscillator * @param frequency - positive or negative frequency in hertz * @param sampleRate - in hertz */ - public Oscillator( int frequency, int sampleRate ) + public Oscillator( long frequency, int sampleRate ) { mSampleRate = (double)sampleRate; mFrequency = (double)frequency; @@ -53,7 +53,7 @@ public class Oscillator /** * Sets or changes the frequency of this oscillator */ - public void setFrequency( int frequency ) + public void setFrequency( long frequency ) { mFrequency = (double)frequency; update();