1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.fourthline.cling.support.avtransport.lastchange;
17
18 import org.fourthline.cling.model.types.UnsignedIntegerFourBytes;
19 import org.fourthline.cling.support.model.PlayMode;
20 import org.fourthline.cling.support.model.RecordQualityMode;
21 import org.fourthline.cling.support.model.TransportAction;
22 import org.fourthline.cling.support.model.StorageMedium;
23 import org.fourthline.cling.support.lastchange.EventedValue;
24 import org.fourthline.cling.support.lastchange.EventedValueEnum;
25 import org.fourthline.cling.support.lastchange.EventedValueEnumArray;
26 import org.fourthline.cling.support.lastchange.EventedValueString;
27 import org.fourthline.cling.support.lastchange.EventedValueURI;
28 import org.fourthline.cling.support.lastchange.EventedValueUnsignedIntegerFourBytes;
29
30 import java.net.URI;
31 import java.util.ArrayList;
32 import java.util.HashSet;
33 import java.util.List;
34 import java.util.Map;
35 import java.util.Set;
36 import java.util.regex.Pattern;
37 import org.fourthline.cling.model.types.InvalidValueException;
38
39
40
41
42 public class AVTransportVariable {
43
44 public static Set<Class<? extends EventedValue>> ALL = new HashSet<Class<? extends EventedValue>>() {{
45 add(TransportState.class);
46 add(TransportStatus.class);
47 add(RecordStorageMedium.class);
48 add(PossibleRecordStorageMedia.class);
49 add(PossiblePlaybackStorageMedia.class);
50 add(CurrentPlayMode.class);
51 add(TransportPlaySpeed.class);
52 add(RecordMediumWriteStatus.class);
53 add(CurrentRecordQualityMode.class);
54 add(PossibleRecordQualityModes.class);
55 add(NumberOfTracks.class);
56 add(CurrentTrack.class);
57 add(CurrentTrackDuration.class);
58 add(CurrentMediaDuration.class);
59 add(CurrentTrackMetaData.class);
60 add(CurrentTrackURI.class);
61 add(AVTransportURI.class);
62 add(NextAVTransportURI.class);
63 add(AVTransportURIMetaData.class);
64 add(NextAVTransportURIMetaData.class);
65 add(CurrentTransportActions.class);
66 add(RelativeTimePosition.class);
67 add(AbsoluteTimePosition.class);
68 add(RelativeCounterPosition.class);
69 add(AbsoluteCounterPosition.class);
70 }};
71
72 public static class TransportState extends EventedValueEnum<org.fourthline.cling.support.model.TransportState> {
73 public TransportState(org.fourthline.cling.support.model.TransportState avTransportState) {
74 super(avTransportState);
75 }
76
77 public TransportState(Map.Entry<String, String>[] attributes) {
78 super(attributes);
79 }
80
81 @Override
82 protected org.fourthline.cling.support.model.TransportState enumValueOf(String s) {
83 return org.fourthline.cling.support.model.TransportState.valueOf(s);
84 }
85 }
86
87 public static class TransportStatus extends EventedValueEnum<org.fourthline.cling.support.model.TransportStatus> {
88 public TransportStatus(org.fourthline.cling.support.model.TransportStatus transportStatus) {
89 super(transportStatus);
90 }
91
92 public TransportStatus(Map.Entry<String, String>[] attributes) {
93 super(attributes);
94 }
95
96 @Override
97 protected org.fourthline.cling.support.model.TransportStatus enumValueOf(String s) {
98 return org.fourthline.cling.support.model.TransportStatus.valueOf(s);
99 }
100 }
101
102 public static class RecordStorageMedium extends EventedValueEnum<StorageMedium> {
103
104 public RecordStorageMedium(StorageMedium storageMedium) {
105 super(storageMedium);
106 }
107
108 public RecordStorageMedium(Map.Entry<String, String>[] attributes) {
109 super(attributes);
110 }
111
112 @Override
113 protected StorageMedium enumValueOf(String s) {
114 return StorageMedium.valueOf(s);
115 }
116 }
117
118 public static class PossibleRecordStorageMedia extends EventedValueEnumArray<StorageMedium> {
119 public PossibleRecordStorageMedia(StorageMedium[] e) {
120 super(e);
121 }
122
123 public PossibleRecordStorageMedia(Map.Entry<String, String>[] attributes) {
124 super(attributes);
125 }
126
127 @Override
128 protected StorageMedium[] enumValueOf(String[] names) {
129 List<StorageMedium> list = new ArrayList<>();
130 for (String s : names) {
131 list.add(StorageMedium.valueOf(s));
132 }
133 return list.toArray(new StorageMedium[list.size()]);
134 }
135 }
136
137 public static class PossiblePlaybackStorageMedia extends PossibleRecordStorageMedia {
138 public PossiblePlaybackStorageMedia(StorageMedium[] e) {
139 super(e);
140 }
141
142 public PossiblePlaybackStorageMedia(Map.Entry<String, String>[] attributes) {
143 super(attributes);
144 }
145 }
146
147 public static class CurrentPlayMode extends EventedValueEnum<PlayMode> {
148 public CurrentPlayMode(PlayMode playMode) {
149 super(playMode);
150 }
151
152 public CurrentPlayMode(Map.Entry<String, String>[] attributes) {
153 super(attributes);
154 }
155
156 @Override
157 protected PlayMode enumValueOf(String s) {
158 return PlayMode.valueOf(s);
159 }
160 }
161
162 public static class TransportPlaySpeed extends EventedValueString {
163 final static Pattern pattern = Pattern.compile("^-?\\d+(/\\d+)?$", Pattern.CASE_INSENSITIVE);
164
165 public TransportPlaySpeed(String value) {
166 super(value);
167 if (!pattern.matcher(value).matches()) {
168 throw new InvalidValueException("Can't parse TransportPlaySpeed speeds.");
169 }
170 }
171
172 public TransportPlaySpeed(Map.Entry<String, String>[] attributes) {
173 super(attributes);
174 }
175 }
176
177 public static class RecordMediumWriteStatus extends EventedValueEnum<org.fourthline.cling.support.model.RecordMediumWriteStatus> {
178 public RecordMediumWriteStatus(org.fourthline.cling.support.model.RecordMediumWriteStatus recordMediumWriteStatus) {
179 super(recordMediumWriteStatus);
180 }
181
182 public RecordMediumWriteStatus(Map.Entry<String, String>[] attributes) {
183 super(attributes);
184 }
185
186 @Override
187 protected org.fourthline.cling.support.model.RecordMediumWriteStatus enumValueOf(String s) {
188 return org.fourthline.cling.support.model.RecordMediumWriteStatus.valueOf(s);
189 }
190 }
191
192 public static class CurrentRecordQualityMode extends EventedValueEnum<RecordQualityMode> {
193 public CurrentRecordQualityMode(RecordQualityMode recordQualityMode) {
194 super(recordQualityMode);
195 }
196
197 public CurrentRecordQualityMode(Map.Entry<String, String>[] attributes) {
198 super(attributes);
199 }
200
201 @Override
202 protected RecordQualityMode enumValueOf(String s) {
203 return RecordQualityMode.valueOf(s);
204 }
205 }
206
207 public static class PossibleRecordQualityModes extends EventedValueEnumArray<RecordQualityMode> {
208 public PossibleRecordQualityModes(RecordQualityMode[] e) {
209 super(e);
210 }
211
212 public PossibleRecordQualityModes(Map.Entry<String, String>[] attributes) {
213 super(attributes);
214 }
215
216 @Override
217 protected RecordQualityMode[] enumValueOf(String[] names) {
218 List<RecordQualityMode> list = new ArrayList<>();
219 for (String s : names) {
220 list.add(RecordQualityMode.valueOf(s));
221 }
222 return list.toArray(new RecordQualityMode[list.size()]);
223 }
224 }
225
226 public static class NumberOfTracks extends EventedValueUnsignedIntegerFourBytes {
227 public NumberOfTracks(UnsignedIntegerFourBytes value) {
228 super(value);
229 }
230
231 public NumberOfTracks(Map.Entry<String, String>[] attributes) {
232 super(attributes);
233 }
234 }
235
236 public static class CurrentTrack extends EventedValueUnsignedIntegerFourBytes {
237 public CurrentTrack(UnsignedIntegerFourBytes value) {
238 super(value);
239 }
240
241 public CurrentTrack(Map.Entry<String, String>[] attributes) {
242 super(attributes);
243 }
244 }
245
246 public static class CurrentTrackDuration extends EventedValueString {
247 public CurrentTrackDuration(String value) {
248 super(value);
249 }
250
251 public CurrentTrackDuration(Map.Entry<String, String>[] attributes) {
252 super(attributes);
253 }
254 }
255
256 public static class CurrentMediaDuration extends EventedValueString {
257 public CurrentMediaDuration(String value) {
258 super(value);
259 }
260
261 public CurrentMediaDuration(Map.Entry<String, String>[] attributes) {
262 super(attributes);
263 }
264 }
265
266 public static class CurrentTrackMetaData extends EventedValueString {
267 public CurrentTrackMetaData(String value) {
268 super(value);
269 }
270
271 public CurrentTrackMetaData(Map.Entry<String, String>[] attributes) {
272 super(attributes);
273 }
274 }
275
276 public static class CurrentTrackURI extends EventedValueURI {
277 public CurrentTrackURI(URI value) {
278 super(value);
279 }
280
281 public CurrentTrackURI(Map.Entry<String, String>[] attributes) {
282 super(attributes);
283 }
284 }
285
286 public static class AVTransportURI extends EventedValueURI {
287 public AVTransportURI(URI value) {
288 super(value);
289 }
290
291 public AVTransportURI(Map.Entry<String, String>[] attributes) {
292 super(attributes);
293 }
294 }
295
296 public static class NextAVTransportURI extends EventedValueURI {
297 public NextAVTransportURI(URI value) {
298 super(value);
299 }
300
301 public NextAVTransportURI(Map.Entry<String, String>[] attributes) {
302 super(attributes);
303 }
304 }
305
306 public static class AVTransportURIMetaData extends EventedValueString {
307 public AVTransportURIMetaData(String value) {
308 super(value);
309 }
310
311 public AVTransportURIMetaData(Map.Entry<String, String>[] attributes) {
312 super(attributes);
313 }
314 }
315
316 public static class NextAVTransportURIMetaData extends EventedValueString {
317 public NextAVTransportURIMetaData(String value) {
318 super(value);
319 }
320
321 public NextAVTransportURIMetaData(Map.Entry<String, String>[] attributes) {
322 super(attributes);
323 }
324 }
325
326 public static class CurrentTransportActions extends EventedValueEnumArray<TransportAction>{
327 public CurrentTransportActions(TransportAction[] e) {
328 super(e);
329 }
330
331 public CurrentTransportActions(Map.Entry<String, String>[] attributes) {
332 super(attributes);
333 }
334
335 @Override
336 protected TransportAction[] enumValueOf(String[] names) {
337 if (names == null) return new TransportAction[0];
338 List<TransportAction> list = new ArrayList<>();
339 for (String s : names) {
340 list.add(TransportAction.valueOf(s));
341 }
342 return list.toArray(new TransportAction[list.size()]);
343 }
344 }
345
346 public static class RelativeTimePosition extends EventedValueString {
347 public RelativeTimePosition(String value) {
348 super(value);
349 }
350
351 public RelativeTimePosition(Map.Entry<String, String>[] attributes) {
352 super(attributes);
353 }
354 }
355
356 public static class AbsoluteTimePosition extends EventedValueString {
357 public AbsoluteTimePosition(String value) {
358 super(value);
359 }
360
361 public AbsoluteTimePosition(Map.Entry<String, String>[] attributes) {
362 super(attributes);
363 }
364 }
365
366 public static class RelativeCounterPosition extends EventedValueString {
367 public RelativeCounterPosition(String value) {
368 super(value);
369 }
370
371 public RelativeCounterPosition(Map.Entry<String, String>[] attributes) {
372 super(attributes);
373 }
374 }
375
376 public static class AbsoluteCounterPosition extends EventedValueString {
377 public AbsoluteCounterPosition(String value) {
378 super(value);
379 }
380
381 public AbsoluteCounterPosition(Map.Entry<String, String>[] attributes) {
382 super(attributes);
383 }
384 }
385
386 }