mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 08:37:25 -05:00
Updates SettingsManager to use jackson xml serialization. Final
testing on all changes to xml serialization.
This commit is contained in:
@@ -314,7 +314,10 @@ public class Channel extends Configuration implements Listener<FrequencyChangeEv
|
||||
*/
|
||||
public void setDecodeConfiguration(DecodeConfiguration config)
|
||||
{
|
||||
mDecodeConfiguration = config;
|
||||
if(config != null)
|
||||
{
|
||||
mDecodeConfiguration = config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -332,7 +335,10 @@ public class Channel extends Configuration implements Listener<FrequencyChangeEv
|
||||
*/
|
||||
public void setAuxDecodeConfiguration(AuxDecodeConfiguration config)
|
||||
{
|
||||
mAuxDecodeConfiguration = config;
|
||||
if(config != null)
|
||||
{
|
||||
mAuxDecodeConfiguration = config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -350,7 +356,10 @@ public class Channel extends Configuration implements Listener<FrequencyChangeEv
|
||||
*/
|
||||
public void setSourceConfiguration(SourceConfiguration config)
|
||||
{
|
||||
mSourceConfiguration = config;
|
||||
if(config != null)
|
||||
{
|
||||
mSourceConfiguration = config;
|
||||
}
|
||||
|
||||
//Clear the tune channel object so that it can be recreated if the
|
||||
//source configuration changes
|
||||
@@ -371,7 +380,10 @@ public class Channel extends Configuration implements Listener<FrequencyChangeEv
|
||||
*/
|
||||
public void setEventLogConfiguration(EventLogConfiguration config)
|
||||
{
|
||||
mEventLogConfiguration = config;
|
||||
if(config != null)
|
||||
{
|
||||
mEventLogConfiguration = config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -388,7 +400,10 @@ public class Channel extends Configuration implements Listener<FrequencyChangeEv
|
||||
*/
|
||||
public void setRecordConfiguration(RecordConfiguration config)
|
||||
{
|
||||
mRecordConfiguration = config;
|
||||
if(config != null)
|
||||
{
|
||||
mRecordConfiguration = config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -297,13 +297,13 @@ public class ChannelProcessingManager implements ChannelEventListener
|
||||
|
||||
if(!recorders.isEmpty())
|
||||
{
|
||||
/* Add baseband recorder */
|
||||
/* Add baseband recorder */
|
||||
if((recorders.contains(RecorderType.BASEBAND) && channel.getChannelType() == Channel.ChannelType.STANDARD))
|
||||
{
|
||||
processingChain.addModule(mRecorderManager.getBasebandRecorder(channel.toString()));
|
||||
}
|
||||
|
||||
/* Add traffic channel baseband recorder */
|
||||
/* Add traffic channel baseband recorder */
|
||||
if(recorders.contains(RecorderType.TRAFFIC_BASEBAND) && channel.getChannelType() == Channel.ChannelType.TRAFFIC)
|
||||
{
|
||||
processingChain.addModule(mRecorderManager.getBasebandRecorder(channel.toString()));
|
||||
|
||||
@@ -1,38 +1,40 @@
|
||||
/*******************************************************************************
|
||||
* 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.settings.Setting;
|
||||
import io.github.dsheirer.settings.SettingType;
|
||||
|
||||
@JsonSubTypes.Type(value = DefaultIcon.class, name = "defaultIcon")
|
||||
public class DefaultIcon extends Setting
|
||||
{
|
||||
public DefaultIcon( String name )
|
||||
{
|
||||
super( name );
|
||||
}
|
||||
|
||||
/**
|
||||
* Don't use this constructor. This is used by JAXB to unmarshall saved
|
||||
* map icons.
|
||||
*/
|
||||
public DefaultIcon()
|
||||
{
|
||||
}
|
||||
public DefaultIcon(String name)
|
||||
{
|
||||
super(name);
|
||||
}
|
||||
|
||||
public DefaultIcon()
|
||||
{
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public SettingType getType()
|
||||
{
|
||||
return SettingType.DEFAULT_ICON;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,20 +18,26 @@
|
||||
package io.github.dsheirer.map;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.settings.Setting;
|
||||
import io.github.dsheirer.settings.SettingType;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
@JsonSubTypes.Type(value = MapIcon.class, name = "mapIcon")
|
||||
public class MapIcon extends Setting implements Comparable<MapIcon>
|
||||
{
|
||||
private static final int sMAX_IMAGE_DIMENSION = 48;
|
||||
private String mPath;
|
||||
private ImageIcon mImageIcon;
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public SettingType getType()
|
||||
{
|
||||
return SettingType.MAP_ICON;
|
||||
}
|
||||
|
||||
/**
|
||||
* Only map icons created at runtime can be marked as non-editable, and
|
||||
* therefore this property is transient.
|
||||
@@ -91,6 +97,7 @@ public class MapIcon extends Setting implements Comparable<MapIcon>
|
||||
mDefaultIcon = isDefault;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public ImageIcon getImageIcon()
|
||||
{
|
||||
if(mImageIcon == null)
|
||||
|
||||
@@ -106,7 +106,7 @@ public class SystemProperties
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
mLog.error("Couldn't load jar manifest - probably not running from a jar release");
|
||||
mLog.error("Unable to load jar manifest - we're probably not running from a release jar");
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -17,17 +17,13 @@
|
||||
******************************************************************************/
|
||||
package io.github.dsheirer.record.config;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||
import io.github.dsheirer.controller.config.Configuration;
|
||||
import io.github.dsheirer.record.RecorderType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@JsonSubTypes.Type(value = RecordConfiguration.class, name = "recordConfiguration")
|
||||
@JacksonXmlRootElement(localName = "record_configuration")
|
||||
public class RecordConfiguration extends Configuration
|
||||
{
|
||||
private List<RecorderType> mRecorders = new ArrayList<>();
|
||||
|
||||
@@ -18,12 +18,10 @@
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@JsonSubTypes.Type(value = ColorSetting.class, name = "colorSetting")
|
||||
public class ColorSetting extends Setting
|
||||
{
|
||||
private static final int NO_TRANSLUCENCY = 255;
|
||||
@@ -45,6 +43,13 @@ public class ColorSetting extends Setting
|
||||
setColorSettingName(name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public SettingType getType()
|
||||
{
|
||||
return SettingType.COLOR_SETTING;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "colorSettingName")
|
||||
public ColorSettingName getColorSettingName()
|
||||
{
|
||||
|
||||
@@ -1,28 +1,26 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2014 Dennis Sheirer
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 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.
|
||||
* 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
* You should have received a copy of the GNU General Public License along with this program.
|
||||
* If not, see <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
|
||||
@JsonSubTypes.Type(value = FileSetting.class, name = "fileSetting")
|
||||
public class FileSetting extends Setting
|
||||
{
|
||||
private String mPath;
|
||||
@@ -38,6 +36,14 @@ public class FileSetting extends Setting
|
||||
setPath(path);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public SettingType getType()
|
||||
{
|
||||
return SettingType.FILE_SETTING;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "path")
|
||||
public String getPath()
|
||||
{
|
||||
return mPath;
|
||||
@@ -48,6 +54,7 @@ public class FileSetting extends Setting
|
||||
mPath = value;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public File getFile()
|
||||
{
|
||||
return new File(mPath);
|
||||
|
||||
@@ -1,3 +1,20 @@
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
@@ -33,6 +50,13 @@ public class MapViewSetting extends Setting
|
||||
mZoom = zoom;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public SettingType getType()
|
||||
{
|
||||
return SettingType.MAP_VIEW_SETTING;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "latitude")
|
||||
public double getLatitude()
|
||||
{
|
||||
|
||||
@@ -1,27 +1,39 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2014 Dennis Sheirer
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 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.
|
||||
* 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
* You should have received a copy of the GNU General Public License along with this program.
|
||||
* If not, see <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||
import io.github.dsheirer.map.DefaultIcon;
|
||||
import io.github.dsheirer.map.MapIcon;
|
||||
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "xsi:type")
|
||||
public class Setting
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include= JsonTypeInfo.As.PROPERTY, property="type")
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value=ColorSetting.class, name="colorSetting"),
|
||||
@JsonSubTypes.Type(value=DefaultIcon.class, name="defaultIcon"),
|
||||
@JsonSubTypes.Type(value=FileSetting.class, name="fileSetting"),
|
||||
@JsonSubTypes.Type(value=MapIcon.class, name="mapIcon"),
|
||||
@JsonSubTypes.Type(value=MapViewSetting.class, name="mapViewSetting"),
|
||||
})
|
||||
@JacksonXmlRootElement( localName = "setting" )
|
||||
public abstract class Setting
|
||||
{
|
||||
protected String mName;
|
||||
|
||||
@@ -44,4 +56,7 @@ public class Setting
|
||||
{
|
||||
mName = name;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public abstract SettingType getType();
|
||||
}
|
||||
|
||||
28
src/main/java/io/github/dsheirer/settings/SettingType.java
Normal file
28
src/main/java/io/github/dsheirer/settings/SettingType.java
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
public enum SettingType
|
||||
{
|
||||
COLOR_SETTING,
|
||||
DEFAULT_ICON,
|
||||
FILE_SETTING,
|
||||
MAP_ICON,
|
||||
MAP_VIEW_SETTING,
|
||||
UNKNOWN;
|
||||
}
|
||||
@@ -1,22 +1,22 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2014-2016 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||
import io.github.dsheirer.map.DefaultIcon;
|
||||
@@ -28,183 +28,183 @@ import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@JacksonXmlRootElement( localName = "SDRTrunk_settings" )
|
||||
@JacksonXmlRootElement(localName = "SDRTrunk_settings")
|
||||
public class Settings
|
||||
{
|
||||
private List<Setting> mSettings = new ArrayList<Setting>();
|
||||
private List<Setting> mSettings = new ArrayList<Setting>();
|
||||
|
||||
private List<TunerConfiguration> mTunerConfiguration =
|
||||
new ArrayList<TunerConfiguration>();
|
||||
|
||||
private List<RecordingConfiguration> mRecordingConfigurations =
|
||||
new ArrayList<RecordingConfiguration>();
|
||||
private List<TunerConfiguration> mTunerConfiguration = new ArrayList<TunerConfiguration>();
|
||||
|
||||
public Settings()
|
||||
{
|
||||
}
|
||||
private List<RecordingConfiguration> mRecordingConfigurations = new ArrayList<RecordingConfiguration>();
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "recording_configuration")
|
||||
public List<RecordingConfiguration> getRecordingConfigurations()
|
||||
{
|
||||
return mRecordingConfigurations;
|
||||
}
|
||||
|
||||
public void setRecordingConfigurations( ArrayList<RecordingConfiguration> configs )
|
||||
{
|
||||
mRecordingConfigurations = configs;
|
||||
}
|
||||
|
||||
public void addRecordingConfiguration( RecordingConfiguration config )
|
||||
{
|
||||
mRecordingConfigurations.add( config );
|
||||
}
|
||||
|
||||
public void removeRecordingConfiguration( RecordingConfiguration config )
|
||||
{
|
||||
mRecordingConfigurations.remove( config );
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "tuner_configuration")
|
||||
public List<TunerConfiguration> getTunerConfigurations()
|
||||
{
|
||||
return mTunerConfiguration;
|
||||
}
|
||||
|
||||
public void setTunerConfigurations( List<TunerConfiguration> configs )
|
||||
{
|
||||
mTunerConfiguration = configs;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "setting")
|
||||
public List<Setting> getSettings()
|
||||
{
|
||||
return mSettings;
|
||||
}
|
||||
|
||||
public void setSettings( ArrayList<Setting> settings )
|
||||
{
|
||||
mSettings = settings;
|
||||
}
|
||||
|
||||
public Setting getSetting( String name )
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting.getName().contentEquals( name ) )
|
||||
{
|
||||
return setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void addSetting( Setting setting )
|
||||
{
|
||||
mSettings.add( setting );
|
||||
}
|
||||
|
||||
public void removeSetting( Setting setting )
|
||||
{
|
||||
mSettings.remove( setting );
|
||||
}
|
||||
|
||||
public DefaultIcon getDefaultIcon()
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof DefaultIcon )
|
||||
{
|
||||
return (DefaultIcon)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ColorSetting getColorSetting( ColorSettingName name )
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof ColorSetting &&
|
||||
((ColorSetting)setting).getColorSettingName() == name )
|
||||
{
|
||||
return (ColorSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<ColorSetting> getColorSettings()
|
||||
{
|
||||
ArrayList<ColorSetting> colors = new ArrayList<ColorSetting>();
|
||||
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof ColorSetting )
|
||||
{
|
||||
colors.add( (ColorSetting)setting );
|
||||
}
|
||||
}
|
||||
|
||||
return colors;
|
||||
}
|
||||
|
||||
public FileSetting getFileSetting( String name )
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof FileSetting &&
|
||||
setting.getName().contentEquals( name ) )
|
||||
{
|
||||
return (FileSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public MapIcon getMapIcon( String name )
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof MapIcon &&
|
||||
setting.getName().contentEquals( name ) )
|
||||
{
|
||||
return (MapIcon)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<MapIcon> getMapIcons()
|
||||
{
|
||||
ArrayList<MapIcon> icons = new ArrayList<MapIcon>();
|
||||
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof MapIcon )
|
||||
{
|
||||
icons.add( (MapIcon)setting );
|
||||
}
|
||||
}
|
||||
|
||||
return icons;
|
||||
}
|
||||
|
||||
public MapViewSetting getMapViewSetting( String name )
|
||||
public Settings()
|
||||
{
|
||||
for( Setting setting: mSettings )
|
||||
{
|
||||
if( setting instanceof MapViewSetting &&
|
||||
setting.getName().contentEquals( name ) )
|
||||
{
|
||||
return (MapViewSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "recording_configuration")
|
||||
public List<RecordingConfiguration> getRecordingConfigurations()
|
||||
{
|
||||
return mRecordingConfigurations;
|
||||
}
|
||||
|
||||
public void setRecordingConfigurations(ArrayList<RecordingConfiguration> configs)
|
||||
{
|
||||
mRecordingConfigurations = configs;
|
||||
}
|
||||
|
||||
public void addRecordingConfiguration(RecordingConfiguration config)
|
||||
{
|
||||
mRecordingConfigurations.add(config);
|
||||
}
|
||||
|
||||
public void removeRecordingConfiguration(RecordingConfiguration config)
|
||||
{
|
||||
mRecordingConfigurations.remove(config);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "tuner_configuration")
|
||||
public List<TunerConfiguration> getTunerConfigurations()
|
||||
{
|
||||
return mTunerConfiguration;
|
||||
}
|
||||
|
||||
public void setTunerConfigurations(List<TunerConfiguration> configs)
|
||||
{
|
||||
mTunerConfiguration = configs;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = false, localName = "setting")
|
||||
public List<Setting> getSettings()
|
||||
{
|
||||
return mSettings;
|
||||
}
|
||||
|
||||
public void setSettings(ArrayList<Setting> settings)
|
||||
{
|
||||
mSettings = settings;
|
||||
}
|
||||
|
||||
public Setting getSetting(String name)
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting.getName().contentEquals(name))
|
||||
{
|
||||
return setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void addSetting(Setting setting)
|
||||
{
|
||||
mSettings.add(setting);
|
||||
}
|
||||
|
||||
public void removeSetting(Setting setting)
|
||||
{
|
||||
mSettings.remove(setting);
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public DefaultIcon getDefaultIcon()
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof DefaultIcon)
|
||||
{
|
||||
return (DefaultIcon)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ColorSetting getColorSetting(ColorSettingName name)
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof ColorSetting &&
|
||||
((ColorSetting)setting).getColorSettingName() == name)
|
||||
{
|
||||
return (ColorSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public List<ColorSetting> getColorSettings()
|
||||
{
|
||||
ArrayList<ColorSetting> colors = new ArrayList<ColorSetting>();
|
||||
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof ColorSetting)
|
||||
{
|
||||
colors.add((ColorSetting)setting);
|
||||
}
|
||||
}
|
||||
|
||||
return colors;
|
||||
}
|
||||
|
||||
public FileSetting getFileSetting(String name)
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof FileSetting &&
|
||||
setting.getName().contentEquals(name))
|
||||
{
|
||||
return (FileSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public MapIcon getMapIcon(String name)
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof MapIcon &&
|
||||
setting.getName().contentEquals(name))
|
||||
{
|
||||
return (MapIcon)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<MapIcon> getMapIcons()
|
||||
{
|
||||
ArrayList<MapIcon> icons = new ArrayList<MapIcon>();
|
||||
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof MapIcon)
|
||||
{
|
||||
icons.add((MapIcon)setting);
|
||||
}
|
||||
}
|
||||
|
||||
return icons;
|
||||
}
|
||||
|
||||
public MapViewSetting getMapViewSetting(String name)
|
||||
{
|
||||
for(Setting setting : mSettings)
|
||||
{
|
||||
if(setting instanceof MapViewSetting &&
|
||||
setting.getName().contentEquals(name))
|
||||
{
|
||||
return (MapViewSetting)setting;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,25 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2014-2016 Dennis Sheirer
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 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.
|
||||
* 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
* You should have received a copy of the GNU General Public License along with this program.
|
||||
* If not, see <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.settings;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule;
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
import io.github.dsheirer.properties.SystemProperties;
|
||||
import io.github.dsheirer.sample.Listener;
|
||||
import io.github.dsheirer.source.recording.RecordingConfiguration;
|
||||
@@ -27,14 +30,7 @@ import org.jdesktop.swingx.mapviewer.GeoPosition;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Marshaller;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
@@ -256,11 +252,9 @@ public class SettingsManager implements Listener<TunerConfigurationEvent>
|
||||
{
|
||||
saveTunerConfigurationModel();
|
||||
|
||||
JAXBContext context = null;
|
||||
|
||||
SystemProperties props = SystemProperties.getInstance();
|
||||
|
||||
Path settingsPath = props.getApplicationFolder("settings");
|
||||
Path settingsFolder = props.getApplicationFolder("settings");
|
||||
|
||||
String settingsDefault = props.get("settings.defaultFilename",
|
||||
"settings.xml");
|
||||
@@ -268,63 +262,24 @@ public class SettingsManager implements Listener<TunerConfigurationEvent>
|
||||
String settingsCurrent = props.get("settings.currentFilename",
|
||||
settingsDefault);
|
||||
|
||||
Path filePath = settingsPath.resolve(settingsCurrent);
|
||||
Path settingsPath = settingsFolder.resolve(settingsCurrent);
|
||||
|
||||
File outputFile = new File(filePath.toString());
|
||||
|
||||
try
|
||||
try(OutputStream out = Files.newOutputStream(settingsPath))
|
||||
{
|
||||
if(!outputFile.exists())
|
||||
{
|
||||
outputFile.createNewFile();
|
||||
}
|
||||
JacksonXmlModule xmlModule = new JacksonXmlModule();
|
||||
xmlModule.setDefaultUseWrapper(false);
|
||||
ObjectMapper objectMapper = new XmlMapper(xmlModule);
|
||||
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
|
||||
objectMapper.writeValue(out, mSettings);
|
||||
out.flush();
|
||||
}
|
||||
catch(IOException ioe)
|
||||
{
|
||||
mLog.error("IO error while writing the settings to a file [" + settingsPath + "]", ioe);
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
mLog.error("SettingsManager - couldn't create file to save "
|
||||
+ "settings [" + filePath.toString() + "]", e);
|
||||
}
|
||||
|
||||
OutputStream out = null;
|
||||
|
||||
try
|
||||
{
|
||||
out = new FileOutputStream(outputFile);
|
||||
|
||||
try
|
||||
{
|
||||
context = JAXBContext.newInstance(Settings.class);
|
||||
|
||||
Marshaller m = context.createMarshaller();
|
||||
|
||||
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
||||
|
||||
m.marshal(mSettings, out);
|
||||
}
|
||||
catch(JAXBException e)
|
||||
{
|
||||
mLog.error("SettingsManager - jaxb exception while saving " +
|
||||
"settings", e);
|
||||
}
|
||||
}
|
||||
catch(Exception e)
|
||||
{
|
||||
mLog.error("SettingsManager - couldn't open output stream to " +
|
||||
"save settings [" + filePath.toString() + "]");
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(out != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
out.close();
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
mLog.error("Error while saving settings file [" + settingsPath + "]", e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,47 +295,17 @@ public class SettingsManager implements Listener<TunerConfigurationEvent>
|
||||
{
|
||||
mLog.info("SettingsManager - loading settings file [" + settingsPath.toString() + "]");
|
||||
|
||||
JAXBContext context = null;
|
||||
JacksonXmlModule xmlModule = new JacksonXmlModule();
|
||||
xmlModule.setDefaultUseWrapper(false);
|
||||
ObjectMapper objectMapper = new XmlMapper(xmlModule);
|
||||
|
||||
InputStream in = null;
|
||||
|
||||
try
|
||||
try(InputStream in = Files.newInputStream(settingsPath))
|
||||
{
|
||||
in = new FileInputStream(settingsPath.toString());
|
||||
|
||||
try
|
||||
{
|
||||
context = JAXBContext.newInstance(Settings.class);
|
||||
|
||||
Unmarshaller m = context.createUnmarshaller();
|
||||
|
||||
mSettings = (Settings) m.unmarshal(in);
|
||||
}
|
||||
catch(JAXBException e)
|
||||
{
|
||||
mLog.error("SettingsManager - jaxb exception while loading " +
|
||||
"settings", e);
|
||||
}
|
||||
mSettings = objectMapper.readValue(in, Settings.class);
|
||||
}
|
||||
catch(Exception e)
|
||||
catch(IOException ioe)
|
||||
{
|
||||
mLog.error("SettingsManager - coulcn't open inputstream to " +
|
||||
"load settings [" + settingsPath.toString() + "]", e);
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(in != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
in.close();
|
||||
}
|
||||
catch(IOException e)
|
||||
{
|
||||
mLog.error("SettingsManager - exception while closing " +
|
||||
"the settings file inputstream reader", e);
|
||||
}
|
||||
}
|
||||
mLog.error("IO error while reading settings file", ioe);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package io.github.dsheirer.source.recording;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@JsonSubTypes.Type(value = RecordingConfiguration.class, name = "recordingConfiguration")
|
||||
@JacksonXmlRootElement(localName = "recording_configuration")
|
||||
public class RecordingConfiguration
|
||||
{
|
||||
private File mRecording;
|
||||
|
||||
@@ -1,29 +1,26 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2015 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.source.tuner.airspy;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.airspy.AirspyTunerController.Gain;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
|
||||
@JsonSubTypes.Type(value = AirspyTunerConfiguration.class, name = "airspyTunerConfiguration")
|
||||
public class AirspyTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private int mSampleRate = AirspyTunerController.DEFAULT_SAMPLE_RATE.getRate();
|
||||
@@ -47,8 +44,9 @@ public class AirspyTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
super( uniqueID, name );
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
return TunerType.AIRSPY_R820T;
|
||||
@@ -141,5 +139,4 @@ public class AirspyTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
mFrequencyCorrection = value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,32 +1,47 @@
|
||||
/*******************************************************************************
|
||||
* SDR Trunk
|
||||
* Copyright (C) 2014 Dennis Sheirer
|
||||
/*
|
||||
* *********************************************************************************************************************
|
||||
* sdrtrunk
|
||||
* Copyright (C) 2014-2017 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 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.
|
||||
* 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 <http://www.gnu.org/licenses/>
|
||||
******************************************************************************/
|
||||
* You should have received a copy of the GNU General Public License along with this program.
|
||||
* If not, see <http://www.gnu.org/licenses/>
|
||||
* *********************************************************************************************************************
|
||||
*/
|
||||
package io.github.dsheirer.source.tuner.configuration;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.airspy.AirspyTunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.fcd.proV1.FCD1TunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.fcd.proplusV2.FCD2TunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.hackrf.HackRFTunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.rtl.e4k.E4KTunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.rtl.r820t.R820TTunerConfiguration;
|
||||
|
||||
/**
|
||||
* Abstract class to hold a named configuration for a specific type of tuner
|
||||
*/
|
||||
@JacksonXmlRootElement(localName = "tuner_configuration")
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "xsi:type")
|
||||
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include= JsonTypeInfo.As.PROPERTY, property="type")
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value=AirspyTunerConfiguration.class, name="airspyTunerConfiguration"),
|
||||
@JsonSubTypes.Type(value=E4KTunerConfiguration.class, name="e4KTunerConfiguration"),
|
||||
@JsonSubTypes.Type(value=FCD1TunerConfiguration.class, name="fcd1TunerConfiguration"),
|
||||
@JsonSubTypes.Type(value=FCD2TunerConfiguration.class, name="fcd2TunerConfiguration"),
|
||||
@JsonSubTypes.Type(value=HackRFTunerConfiguration.class, name="hackRFTunerConfiguration"),
|
||||
@JsonSubTypes.Type(value=R820TTunerConfiguration.class, name="r820TTunerConfiguration"),
|
||||
})
|
||||
@JacksonXmlRootElement( localName = "tuner_configuration" )
|
||||
public abstract class TunerConfiguration
|
||||
{
|
||||
protected String mName;
|
||||
@@ -100,6 +115,12 @@ public abstract class TunerConfiguration
|
||||
mFrequency = frequency;
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "tuner_type")
|
||||
@JsonIgnore
|
||||
public abstract TunerType getTunerType();
|
||||
|
||||
//Below is maintained for compatibility with javax.xml.bind serialization of the settings file.
|
||||
//This can be removed if/once there is a new version of the settings.
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "tuner_type")
|
||||
public String getLegacyAttribute(){ return null; }
|
||||
public void setLegacyAttribute(String bonkers) { }
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
******************************************************************************/
|
||||
package io.github.dsheirer.source.tuner.fcd.proV1;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
@@ -25,7 +24,6 @@ import io.github.dsheirer.source.tuner.fcd.proV1.FCD1TunerController.LNAEnhance;
|
||||
import io.github.dsheirer.source.tuner.fcd.proV1.FCD1TunerController.LNAGain;
|
||||
import io.github.dsheirer.source.tuner.fcd.proV1.FCD1TunerController.MixerGain;
|
||||
|
||||
@JsonSubTypes.Type(value = FCD1TunerConfiguration.class, name = "fcd1TunerConfiguration")
|
||||
public class FCD1TunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private double mFrequencyCorrection = 22.0d;
|
||||
@@ -50,6 +48,7 @@ public class FCD1TunerConfiguration extends TunerConfiguration
|
||||
super(uniqueID, name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
|
||||
@@ -17,12 +17,10 @@
|
||||
******************************************************************************/
|
||||
package io.github.dsheirer.source.tuner.fcd.proplusV2;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
|
||||
@JsonSubTypes.Type(value = FCD2TunerConfiguration.class, name = "fcd2TunerConfiguration")
|
||||
public class FCD2TunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private boolean mGainLNA = true;
|
||||
@@ -41,6 +39,7 @@ public class FCD2TunerConfiguration extends TunerConfiguration
|
||||
super(uniqueID, name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
package io.github.dsheirer.source.tuner.hackrf;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
@@ -26,7 +25,6 @@ import io.github.dsheirer.source.tuner.hackrf.HackRFTunerController.HackRFLNAGai
|
||||
import io.github.dsheirer.source.tuner.hackrf.HackRFTunerController.HackRFSampleRate;
|
||||
import io.github.dsheirer.source.tuner.hackrf.HackRFTunerController.HackRFVGAGain;
|
||||
|
||||
@JsonSubTypes.Type(value = HackRFTunerConfiguration.class, name = "hackRFTunerConfiguration")
|
||||
public class HackRFTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private HackRFSampleRate mSampleRate = HackRFSampleRate.RATE2_016MHZ;
|
||||
@@ -47,6 +45,7 @@ public class HackRFTunerConfiguration extends TunerConfiguration
|
||||
super(uniqueID, name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
|
||||
@@ -17,10 +17,8 @@
|
||||
******************************************************************************/
|
||||
package io.github.dsheirer.source.tuner.rtl.e4k;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.airspy.AirspyTunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.rtl.RTL2832TunerController;
|
||||
import io.github.dsheirer.source.tuner.rtl.e4k.E4KTunerController.E4KEnhanceGain;
|
||||
@@ -28,7 +26,6 @@ import io.github.dsheirer.source.tuner.rtl.e4k.E4KTunerController.E4KGain;
|
||||
import io.github.dsheirer.source.tuner.rtl.e4k.E4KTunerController.E4KLNAGain;
|
||||
import io.github.dsheirer.source.tuner.rtl.e4k.E4KTunerController.E4KMixerGain;
|
||||
|
||||
@JsonSubTypes.Type(value = AirspyTunerConfiguration.class, name = "e4KTunerConfiguration")
|
||||
public class E4KTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private E4KGain mMasterGain = E4KGain.MANUAL;
|
||||
@@ -50,6 +47,7 @@ public class E4KTunerConfiguration extends TunerConfiguration
|
||||
super(uniqueID, name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
|
||||
@@ -17,13 +17,11 @@
|
||||
******************************************************************************/
|
||||
package io.github.dsheirer.source.tuner.rtl.r820t;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
|
||||
import io.github.dsheirer.source.tuner.TunerType;
|
||||
import io.github.dsheirer.source.tuner.configuration.TunerConfiguration;
|
||||
import io.github.dsheirer.source.tuner.rtl.RTL2832TunerController;
|
||||
|
||||
@JsonSubTypes.Type(value = R820TTunerConfiguration.class, name = "r820TTunerConfiguration")
|
||||
public class R820TTunerConfiguration extends TunerConfiguration
|
||||
{
|
||||
private R820TTunerController.R820TGain mMasterGain = R820TTunerController.R820TGain.GAIN_327;
|
||||
@@ -45,6 +43,7 @@ public class R820TTunerConfiguration extends TunerConfiguration
|
||||
super(uniqueID, name);
|
||||
}
|
||||
|
||||
@JacksonXmlProperty(isAttribute = true, localName = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance")
|
||||
@Override
|
||||
public TunerType getTunerType()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user