View Javadoc

1   package org.rpi.providers;
2   
3   import org.apache.log4j.Logger;
4   import org.openhome.net.device.DvDevice;
5   import org.openhome.net.device.IDvInvocation;
6   import org.openhome.net.device.providers.DvProviderAvOpenhomeOrgReceiver1;
7   import org.rpi.config.Config;
8   import org.rpi.playlist.CustomTrack;
9   import org.rpi.songcast.OHZManager;
10  import org.rpi.utils.Utils;
11  
12  public class PrvReceiver extends DvProviderAvOpenhomeOrgReceiver1 {
13  
14      private Logger log = Logger.getLogger(PrvReceiver.class);
15      private boolean bPlay = false;
16      private CustomTrack track = null;
17      private OHZManager manager = null;
18  
19  
20  
21      public PrvReceiver(DvDevice iDevice) {
22          super(iDevice);
23          log.debug("Creating Template");
24          enablePropertyMetadata();
25          enablePropertyProtocolInfo();
26          enablePropertyTransportState();
27          enablePropertyUri();
28  
29  
30          setPropertyMetadata("");
31          setPropertyProtocolInfo(Config.getProtocolInfo());
32          setPropertyTransportState("Stopped");
33          setPropertyUri("");
34  
35          enableActionPlay();
36          enableActionProtocolInfo();
37          enableActionSender();
38          enableActionSetSender();
39          enableActionStop();
40          enableActionTransportState();
41  
42      }
43  
44      @Override
45      protected String protocolInfo(IDvInvocation paramIDvInvocation) {
46          log.debug("getProtocolInfo" + Utils.getLogText(paramIDvInvocation));
47          return getPropertyProtocolInfo();
48      }
49  
50      @Override
51      protected Sender sender(IDvInvocation paramIDvInvocation) {
52          log.debug("Sender" + Utils.getLogText(paramIDvInvocation));
53          Sender sender = new Sender("", "");
54          // TODO Auto-generated method stub
55          return sender;
56      }
57  
58      @Override
59      protected void play(IDvInvocation paramIDvInvocation) {
60          log.debug("Play" + Utils.getLogText(paramIDvInvocation));
61          bPlay = true;
62          // TODO Auto-generated method stub
63          //super.play(arg0);
64          //Play seems to come before setSender so set a boolean flag that we want to play and then when we
65          //get the setSender event start playing??
66      }
67  
68      @Override
69      protected void setSender(IDvInvocation paramIDvInvocation, String uri, String metadata) {
70          log.debug("SetSender, URL: " + uri + " MetaData: " + metadata + Utils.getLogText(paramIDvInvocation));
71          propertiesLock();
72          setPropertyUri(uri);
73          propertiesUnlock();
74          setPropertyMetadata(metadata);
75  
76          if(bPlay = true)
77          {
78              CustomTrack t = new CustomTrack(uri, metadata, 1);
79              track = t;
80              if(manager!=null)
81              {
82                  manager.stop();
83                  manager = null;
84              }
85              int lastSlash = uri.lastIndexOf("/");
86              String songcast_url = uri.substring(0, lastSlash);
87              String zoneID = uri.substring(lastSlash+1);
88              log.debug("SongCast URL: " + songcast_url + " ZoneID: " + zoneID );
89              manager = new OHZManager(songcast_url, zoneID);
90              manager.start();
91          }
92      }
93  
94      @Override
95      protected void stop(IDvInvocation paramIDvInvocation) {
96          log.debug("Stop" + Utils.getLogText(paramIDvInvocation));
97          // TODO Auto-generated method stub
98          //super.stop(arg0);
99      }
100 
101     @Override
102     protected String transportState(IDvInvocation paramIDvInvocation) {
103         log.debug("Transport State" + Utils.getLogText(paramIDvInvocation));
104         return getPropertyTransportState();
105     }
106 
107 
108 
109 }