/* * Copyright (C) 2010 Teleal GmbH, Switzerland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser 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 Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.teleal.cling.support.avtransport.lastchange; import org.teleal.cling.model.types.UnsignedIntegerFourBytes; import org.teleal.cling.support.model.PlayMode; import org.teleal.cling.support.model.RecordQualityMode; import org.teleal.cling.support.model.TransportAction; import org.teleal.cling.support.model.StorageMedium; import org.teleal.cling.support.lastchange.EventedValue; import org.teleal.cling.support.lastchange.EventedValueEnum; import org.teleal.cling.support.lastchange.EventedValueEnumArray; import org.teleal.cling.support.lastchange.EventedValueString; import org.teleal.cling.support.lastchange.EventedValueURI; import org.teleal.cling.support.lastchange.EventedValueUnsignedIntegerFourBytes; import java.net.URI; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; /** * @author Christian Bauer */ public class AVTransportVariable { public static Set<Class<? extends EventedValue>> ALL = new HashSet<Class<? extends EventedValue>>() {{ add(TransportState.class); add(TransportStatus.class); add(RecordStorageMedium.class); add(PossibleRecordStorageMedia.class); add(PossiblePlaybackStorageMedia.class); add(CurrentPlayMode.class); add(TransportPlaySpeed.class); add(RecordMediumWriteStatus.class); add(CurrentRecordQualityMode.class); add(PossibleRecordQualityModes.class); add(NumberOfTracks.class); add(CurrentTrack.class); add(CurrentTrackDuration.class); add(CurrentMediaDuration.class); add(CurrentTrackMetaData.class); add(CurrentTrackURI.class); add(AVTransportURI.class); add(NextAVTransportURI.class); add(AVTransportURIMetaData.class); add(NextAVTransportURIMetaData.class); add(CurrentTransportActions.class); }}; public static class TransportState extends EventedValueEnum<org.teleal.cling.support.model.TransportState> { public TransportState(org.teleal.cling.support.model.TransportState avTransportState) { super(avTransportState); } public TransportState(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected org.teleal.cling.support.model.TransportState enumValueOf(String s) { return org.teleal.cling.support.model.TransportState.valueOf(s); } } public static class TransportStatus extends EventedValueEnum<org.teleal.cling.support.model.TransportStatus> { public TransportStatus(org.teleal.cling.support.model.TransportStatus transportStatus) { super(transportStatus); } public TransportStatus(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected org.teleal.cling.support.model.TransportStatus enumValueOf(String s) { return org.teleal.cling.support.model.TransportStatus.valueOf(s); } } public static class RecordStorageMedium extends EventedValueEnum<StorageMedium> { public RecordStorageMedium(StorageMedium storageMedium) { super(storageMedium); } public RecordStorageMedium(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected StorageMedium enumValueOf(String s) { return StorageMedium.valueOf(s); } } public static class PossibleRecordStorageMedia extends EventedValueEnumArray<StorageMedium> { public PossibleRecordStorageMedia(StorageMedium[] e) { super(e); } public PossibleRecordStorageMedia(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected StorageMedium[] enumValueOf(String[] names) { List<StorageMedium> list = new ArrayList(); for (String s : names) { list.add(StorageMedium.valueOf(s)); } return list.toArray(new StorageMedium[list.size()]); } } public static class PossiblePlaybackStorageMedia extends PossibleRecordStorageMedia { public PossiblePlaybackStorageMedia(StorageMedium[] e) { super(e); } public PossiblePlaybackStorageMedia(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentPlayMode extends EventedValueEnum<PlayMode> { public CurrentPlayMode(PlayMode playMode) { super(playMode); } public CurrentPlayMode(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected PlayMode enumValueOf(String s) { return PlayMode.valueOf(s); } } public static class TransportPlaySpeed extends EventedValueString { public TransportPlaySpeed(String value) { super(value); } public TransportPlaySpeed(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class RecordMediumWriteStatus extends EventedValueEnum<org.teleal.cling.support.model.RecordMediumWriteStatus> { public RecordMediumWriteStatus(org.teleal.cling.support.model.RecordMediumWriteStatus recordMediumWriteStatus) { super(recordMediumWriteStatus); } public RecordMediumWriteStatus(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected org.teleal.cling.support.model.RecordMediumWriteStatus enumValueOf(String s) { return org.teleal.cling.support.model.RecordMediumWriteStatus.valueOf(s); } } public static class CurrentRecordQualityMode extends EventedValueEnum<RecordQualityMode> { public CurrentRecordQualityMode(RecordQualityMode recordQualityMode) { super(recordQualityMode); } public CurrentRecordQualityMode(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected RecordQualityMode enumValueOf(String s) { return RecordQualityMode.valueOf(s); } } public static class PossibleRecordQualityModes extends EventedValueEnumArray<RecordQualityMode> { public PossibleRecordQualityModes(RecordQualityMode[] e) { super(e); } public PossibleRecordQualityModes(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected RecordQualityMode[] enumValueOf(String[] names) { List<RecordQualityMode> list = new ArrayList(); for (String s : names) { list.add(RecordQualityMode.valueOf(s)); } return list.toArray(new RecordQualityMode[list.size()]); } } public static class NumberOfTracks extends EventedValueUnsignedIntegerFourBytes { public NumberOfTracks(UnsignedIntegerFourBytes value) { super(value); } public NumberOfTracks(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentTrack extends EventedValueUnsignedIntegerFourBytes { public CurrentTrack(UnsignedIntegerFourBytes value) { super(value); } public CurrentTrack(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentTrackDuration extends EventedValueString { public CurrentTrackDuration(String value) { super(value); } public CurrentTrackDuration(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentMediaDuration extends EventedValueString { public CurrentMediaDuration(String value) { super(value); } public CurrentMediaDuration(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentTrackMetaData extends EventedValueString { public CurrentTrackMetaData(String value) { super(value); } public CurrentTrackMetaData(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentTrackURI extends EventedValueURI { public CurrentTrackURI(URI value) { super(value); } public CurrentTrackURI(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class AVTransportURI extends EventedValueURI { public AVTransportURI(URI value) { super(value); } public AVTransportURI(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class NextAVTransportURI extends EventedValueURI { public NextAVTransportURI(URI value) { super(value); } public NextAVTransportURI(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class AVTransportURIMetaData extends EventedValueString { public AVTransportURIMetaData(String value) { super(value); } public AVTransportURIMetaData(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class NextAVTransportURIMetaData extends EventedValueString { public NextAVTransportURIMetaData(String value) { super(value); } public NextAVTransportURIMetaData(Map.Entry<String, String>[] attributes) { super(attributes); } } public static class CurrentTransportActions extends EventedValueEnumArray<TransportAction>{ public CurrentTransportActions(TransportAction[] e) { super(e); } public CurrentTransportActions(Map.Entry<String, String>[] attributes) { super(attributes); } @Override protected TransportAction[] enumValueOf(String[] names) { if (names == null) return new TransportAction[0]; List<TransportAction> list = new ArrayList(); for (String s : names) { list.add(TransportAction.valueOf(s)); } return list.toArray(new TransportAction[list.size()]); } } }