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
55 return sender;
56 }
57
58 @Override
59 protected void play(IDvInvocation paramIDvInvocation) {
60 log.debug("Play" + Utils.getLogText(paramIDvInvocation));
61 bPlay = true;
62
63
64
65
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
98
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 }