public ObervHandler() { xmlWriter = new XMLWriter(); setup = new UPnP_Setup(); subscribe(); setup.StartSinkDisco(); setup.StartSourceDisco(); }
/// <summary> /// Constructor. Creates Audio Player Wrapper, XMLreader and XMLwriter and subscribes to wrapper and UPnP Sink /// </summary> /// <param name="sink">UPnP Sink</param> /// <param name="pqhandl">Playqueue Handler</param> public PlaybackControl(IUPnP sink, IPlayqueueHandler pqhandl) { UPnPSink = sink; Player = new MPlayerWrapper(); PlayQueueHandler = pqhandl; XMLconverter = new XMLReader.XMLReader(); wr = new XMLWriter(); SubscribeToWrapper(); SubscribeToSink(); _TransportState = "STOPPED"; }
/// <summary> /// Function for executing the strategy. /// /// Strategy implements getting the "all" container id. /// It also implements the "playqueue" container id. /// This is a dirty fix and will be revised to take full advantage of the strategy pattern. /// /// </summary> /// <param name="args">Arguments to pass to the inner functionality</param> /// <param name="cb">callback to answer back to the UPnP Device</param> /// <param name="writer">XMLWriter for writing tracks from the database to sendable to XML</param> /// <param name="pqhandl">The playqueue handler containing the playlist</param> public void Handle(List<UPnPArg> args, CallBack cb, XMLWriter writer, IPlayqueueHandler pqhandl) { Console.WriteLine ("Browse Was called (BrowseStrat)"); List<UPnPArg> retArgs = null; string containerId = GetContainerID (args); if (containerId == "all") { retArgs = new List<UPnPArg>(); List<ITrack> containingList = _dbLookup.Browse (containerId); int NumberReturned = containingList.Count; string retVal = writer.ConvertITrackToXML (containingList); retArgs.Add (new UPnPArg ("Result", retVal)); //retArgs.Add (new UPnPArg("Result", "<DIDL-Lite> music stuff </DIDL-Lite>")); retArgs.Add (new UPnPArg ("NumberReturned", NumberReturned.ToString ())); retArgs.Add (new UPnPArg ("TotalMatches", NumberReturned.ToString ())); retArgs.Add (new UPnPArg ("UpdateID", "12")); cb (retArgs, "Browse"); } else if (containerId == "playqueue") { retArgs = new List<UPnPArg>(); List<ITrack> lis = new List<ITrack>(); string retVal = writer.ConvertITrackToXML(pqhandl.GetQueue()); retArgs.Add (new UPnPArg ("Result", retVal)); retArgs.Add (new UPnPArg ("NumberReturned", pqhandl.GetQueue().Count.ToString())); retArgs.Add (new UPnPArg ("TotalMatches", pqhandl.GetQueue().Count.ToString())); retArgs.Add (new UPnPArg ("UpdateID", "12")); cb(retArgs, "Browse"); } else { cb (retArgs, "Browse"); } }
//public event PropertyChangedDel propEvent; /// <summary> /// Constructor /// Creates associations between the class, The UPnP device and the playqueue handler. /// </summary> /// <param name="sourceDevice">UPnP Source device communicating with control points</param> /// <param name="pqhandl">Handler containing and managing the playqueue</param> public DBHandle(IUPnP sourceDevice, IPlayqueueHandler pqhandl) { _sourceDevice = sourceDevice; _sourceDevice.ActionEvent += _sourceDevice_ActionEvent; _dbXmlWriter = new XMLWriter(); _dbLookup = new DBLookup(); _PQHandler = pqhandl; CreateDictionary(); }