View Javadoc
1   /*
2    * Copyright (C) 2013 4th Line GmbH, Switzerland
3    *
4    * The contents of this file are subject to the terms of either the GNU
5    * Lesser General Public License Version 2 or later ("LGPL") or the
6    * Common Development and Distribution License Version 1 or later
7    * ("CDDL") (collectively, the "License"). You may not use this file
8    * except in compliance with the License. See LICENSE.txt for more
9    * information.
10   *
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14   */
15  
16  package org.fourthline.cling.support.model;
17  
18  import org.fourthline.cling.model.types.UnsignedIntegerFourBytes;
19  import org.fourthline.cling.model.action.ActionArgumentValue;
20  
21  import java.util.Map;
22  
23  /**
24   *
25   */
26  public class MediaInfo {
27  
28      private String currentURI = "";
29      private String currentURIMetaData = "";
30      private String nextURI = "NOT_IMPLEMENTED";
31      private String nextURIMetaData = "NOT_IMPLEMENTED";
32  
33      private UnsignedIntegerFourBytes numberOfTracks = new UnsignedIntegerFourBytes(0);
34      private String mediaDuration = "00:00:00";
35      private StorageMedium playMedium = StorageMedium.NONE;
36      private StorageMedium recordMedium = StorageMedium.NOT_IMPLEMENTED;
37      private RecordMediumWriteStatus writeStatus = RecordMediumWriteStatus.NOT_IMPLEMENTED;
38  
39      public MediaInfo() {
40      }
41  
42      public MediaInfo(Map<String, ActionArgumentValue> args) {
43          this(
44                  (String) args.get("CurrentURI").getValue(),
45                  (String) args.get("CurrentURIMetaData").getValue(),
46                  (String) args.get("NextURI").getValue(),
47                  (String) args.get("NextURIMetaData").getValue(),
48  
49                  (UnsignedIntegerFourBytes) args.get("NrTracks").getValue(),
50                  (String) args.get("MediaDuration").getValue(),
51                  StorageMedium.valueOrVendorSpecificOf((String) args.get("PlayMedium").getValue()),
52                  StorageMedium.valueOrVendorSpecificOf((String) args.get("RecordMedium").getValue()),
53                  RecordMediumWriteStatus.valueOrUnknownOf((String) args.get("WriteStatus").getValue())
54          );
55      }
56  
57      public MediaInfo(String currentURI, String currentURIMetaData) {
58          this.currentURI = currentURI;
59          this.currentURIMetaData = currentURIMetaData;
60      }
61  
62      public MediaInfo(String currentURI, String currentURIMetaData,
63                       UnsignedIntegerFourBytes numberOfTracks, String mediaDuration,
64                       StorageMedium playMedium) {
65          this.currentURI = currentURI;
66          this.currentURIMetaData = currentURIMetaData;
67          this.numberOfTracks = numberOfTracks;
68          this.mediaDuration = mediaDuration;
69          this.playMedium = playMedium;
70      }
71  
72      public MediaInfo(String currentURI, String currentURIMetaData,
73                       UnsignedIntegerFourBytes numberOfTracks, String mediaDuration,
74                       StorageMedium playMedium,
75                       StorageMedium recordMedium, RecordMediumWriteStatus writeStatus) {
76          this.currentURI = currentURI;
77          this.currentURIMetaData = currentURIMetaData;
78          this.numberOfTracks = numberOfTracks;
79          this.mediaDuration = mediaDuration;
80          this.playMedium = playMedium;
81          this.recordMedium = recordMedium;
82          this.writeStatus = writeStatus;
83      }
84  
85      public MediaInfo(String currentURI, String currentURIMetaData,
86                       String nextURI, String nextURIMetaData,
87                       UnsignedIntegerFourBytes numberOfTracks, String mediaDuration,
88                       StorageMedium playMedium) {
89          this.currentURI = currentURI;
90          this.currentURIMetaData = currentURIMetaData;
91          this.nextURI = nextURI;
92          this.nextURIMetaData = nextURIMetaData;
93          this.numberOfTracks = numberOfTracks;
94          this.mediaDuration = mediaDuration;
95          this.playMedium = playMedium;
96      }
97  
98      public MediaInfo(String currentURI, String currentURIMetaData,
99                       String nextURI, String nextURIMetaData,
100                      UnsignedIntegerFourBytes numberOfTracks, String mediaDuration,
101                      StorageMedium playMedium,
102                      StorageMedium recordMedium, RecordMediumWriteStatus writeStatus) {
103         this.currentURI = currentURI;
104         this.currentURIMetaData = currentURIMetaData;
105         this.nextURI = nextURI;
106         this.nextURIMetaData = nextURIMetaData;
107         this.numberOfTracks = numberOfTracks;
108         this.mediaDuration = mediaDuration;
109         this.playMedium = playMedium;
110         this.recordMedium = recordMedium;
111         this.writeStatus = writeStatus;
112     }
113 
114     public String getCurrentURI() {
115         return currentURI;
116     }
117 
118     public String getCurrentURIMetaData() {
119         return currentURIMetaData;
120     }
121 
122     public String getNextURI() {
123         return nextURI;
124     }
125 
126     public String getNextURIMetaData() {
127         return nextURIMetaData;
128     }
129 
130     public UnsignedIntegerFourBytes getNumberOfTracks() {
131         return numberOfTracks;
132     }
133 
134     public String getMediaDuration() {
135         return mediaDuration;
136     }
137 
138     public StorageMedium getPlayMedium() {
139         return playMedium;
140     }
141 
142     public StorageMedium getRecordMedium() {
143         return recordMedium;
144     }
145 
146     public RecordMediumWriteStatus getWriteStatus() {
147         return writeStatus;
148     }
149 
150 }