/* * ********************************************************************************************************************* * 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 * ********************************************************************************************************************* */ 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; import io.github.dsheirer.map.MapIcon; import io.github.dsheirer.settings.ColorSetting.ColorSettingName; import io.github.dsheirer.source.recording.RecordingConfiguration; import io.github.dsheirer.source.tuner.configuration.TunerConfiguration; import java.util.ArrayList; import java.util.List; @JacksonXmlRootElement(localName = "SDRTrunk_settings") public class Settings { private List mSettings = new ArrayList(); private List mTunerConfiguration = new ArrayList(); private List mRecordingConfigurations = new ArrayList(); public Settings() { } @JacksonXmlProperty(isAttribute = false, localName = "recording_configuration") public List getRecordingConfigurations() { return mRecordingConfigurations; } public void setRecordingConfigurations(ArrayList 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 getTunerConfigurations() { return mTunerConfiguration; } public void setTunerConfigurations(List configs) { mTunerConfiguration = configs; } @JacksonXmlProperty(isAttribute = false, localName = "setting") public List getSettings() { return mSettings; } public void setSettings(ArrayList 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 getColorSettings() { ArrayList colors = new ArrayList(); 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 getMapIcons() { ArrayList icons = new ArrayList(); 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; } }