void EventHandler_UPnPEvent(object e, UPnPEventArgs args, CallBack callBack) { ActionEvent(e, args, callBack); }
void _sourceDevice_ActionEvent(object e, UPnPEventArgs args, CallBack cb) { Console.WriteLine("DB Handle Action: " + args.Action); if(args.Action == "Browse") { IDBStrategy strat = _strategies[args.Action]; strat.Handle(args.Args, cb, _dbXmlWriter); } }
static void u_ActionEvent(object e, UPnPEventArgs args, CallBack cb) { //cb() }
private void UPnPHandler(object e, UPnPEventArgs args, CallBack cb) { string action = args.Action; List<UPnPArg> returnVal = args.Args; switch (args.Action) { case "Play": Play(); returnVal = null; break; case "Next": Next(); returnVal = null; break; case "Prev": Prev(); returnVal = null; break; case "Pause": Pause(); returnVal = null; break; case "SetNextAVTransportURI": AddToPlayQueue(ref returnVal); returnVal = null; break; case "SetAVTransportURI": SetCurrentURI(ref returnVal); returnVal = null; break; //case "AddAt": // AddToPlayQueue(ref returnVal); //Also needs an int, index. Is it contained in returnVal? // returnVal = null; // break; case "PlayAt": PlayAt(ref returnVal); returnVal = null; break; case "Remove": RemoveFromPlayQueue(ref returnVal); returnVal = null; break; case "SetVol": SetVol(ref returnVal); returnVal = null; break; case "SetPos": SetPos(ref returnVal); break; case "GetVolume": returnVal.Add(new UPnPArg("GetVol", GetVol().ToString())); //return the volume break; case "GetPos": returnVal.Add(new UPnPArg("GetPos", GetPos().ToString())); //return the position break; default: Console.WriteLine("PLaybackControl class switchcase default"); break; } Console.WriteLine("PlaybackCtrl ready for callback"); cb(returnVal, args.Action); }
/// <summary> /// Handler for ActionEvents. /// Reacts to ActionEvents and sees if data is valid. /// /// If action is valid it is handled. /// </summary> /// <param name="e"></param> /// <param name="args"></param> /// <param name="cb"></param> void _sourceDevice_ActionEvent(object e, UPnPEventArgs args, CallBack cb) { if (args.Action == "Browse") { Console.WriteLine("DB Handle Action: " + args.Action); IDBStrategy strat = _strategies [args.Action]; strat.Handle (args.Args, cb, _dbXmlWriter, _PQHandler); } else if (args.Action == "GetIPAddress") { Console.WriteLine ("GetIPAddress"); HandleGetIP(cb); } }
/// <summary> /// Called whenever an UPnP event is received, reads the Action argument and responds appropriately /// </summary> /// <param name="e">Unused param to comply with standard</param> /// <param name="args">UPnPEventArgs containing desired action and params for the action</param> /// <param name="cb">Callback function to call at end of function</param> private void UPnPHandler(object e, UPnPEventArgs args, CallBack cb) { string action = args.Action; bool CallCB = true; List<UPnPArg> returnVal = args.Args; if (action != "Browse") { Console.WriteLine (" >> Command called: " + args.Action); switch (args.Action) { case "Play": Play(); returnVal = null; break; case "Next": Next(); returnVal = null; break; case "Previous": Prev(); returnVal = null; break; case "Pause": Pause(); returnVal = null; break; case "SetNextAVTransportURI": AddToPlayQueue(ref returnVal); returnVal = null; break; case "SetAVTransportURI": SetCurrentURI(ref returnVal); returnVal = null; break; case "Remove": RemoveFromPlayQueue(ref returnVal); returnVal = null; break; case "SetVolume": SetVol(ref returnVal); returnVal = null; break; case "SetPosition": SetPos(ref returnVal); returnVal = null; break; case "GetVolume": string vol = GetVol(); returnVal = new List<UPnPArg>(){new UPnPArg("CurrentVolume", vol)}; break; case "GetPosition": returnVal = CreatePosArgs(); break; case "GetCurrentTrack": returnVal = GetCurrentTrackArgs(); break; case "GetIPAddress": CallCB = false; break; default: Console.WriteLine("PlaybackControl class switchcase default"); break; } if(CallCB) { cb(returnVal, args.Action); } } }