public CpAVTransport(UPnPService s) { _S = s; _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink); if (HasStateVariable_TransportStatus) _S.GetStateVariableObject("TransportStatus").OnModified += new UPnPStateVariable.ModifiedHandler(TransportStatus_ModifiedSink); if (HasStateVariable_TransportState) _S.GetStateVariableObject("TransportState").OnModified += new UPnPStateVariable.ModifiedHandler(TransportState_ModifiedSink); }
public CpConnectionManager(UPnPService s) { _S = s; _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink); if(HasStateVariable_SourceProtocolInfo) _S.GetStateVariableObject("SourceProtocolInfo").OnModified += new UPnPStateVariable.ModifiedHandler(SourceProtocolInfo_ModifiedSink); if(HasStateVariable_SinkProtocolInfo) _S.GetStateVariableObject("SinkProtocolInfo").OnModified += new UPnPStateVariable.ModifiedHandler(SinkProtocolInfo_ModifiedSink); if(HasStateVariable_CurrentConnectionIDs) _S.GetStateVariableObject("CurrentConnectionIDs").OnModified += new UPnPStateVariable.ModifiedHandler(CurrentConnectionIDs_ModifiedSink); }
public CpContentDirectory(UPnPService s) { _S = s; _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink); if (HasStateVariable_TransferIDs) _S.GetStateVariableObject("TransferIDs").OnModified += new UPnPStateVariable.ModifiedHandler(TransferIDs_ModifiedSink); if (HasStateVariable_ContainerUpdateIDs) _S.GetStateVariableObject("ContainerUpdateIDs").OnModified += new UPnPStateVariable.ModifiedHandler(ContainerUpdateIDs_ModifiedSink); if (HasStateVariable_SystemUpdateID) _S.GetStateVariableObject("SystemUpdateID").OnModified += new UPnPStateVariable.ModifiedHandler(SystemUpdateID_ModifiedSink); }
public UPnPServiceWatcher(UPnPService S, SniffHandler cb, SniffPacketHandler pcb) { OnSniff += cb; OnSniffPacket += pcb; _S = S; _S.OnSniff += new UPnPService.SniffHandler(SniffSink); _S.OnSniffPacket += new UPnPService.SniffPacketHandler(SniffPacketSink); }
public ActionEditForm(UPnPService parentService) { // // Required for Windows Form Designer support // InitializeComponent(); action = new UPnPAction(); action.ParentService = parentService; }
public UPnPServiceProxy(Type serviceType, Type contractType) { var service = Activator.CreateInstance(serviceType); _upnp = new UPnPService(1, contractType.GUID.ToString(), contractType.FullName, true, service); var methods = (from meth in contractType.GetMethods() where meth.GetCustomAttributes(false).Where( atr => atr.GetType() == typeof(OperationContractAttribute)).Count()>0 select meth).ToArray(); foreach (var meth in methods) { _upnp.AddMethod(meth.Name); } }
public ValidationForm(UPnPService S) { service = S; // // Required for Windows Form Designer support // InitializeComponent(); foreach(UPnPAction A in S.Actions) { ServiceBox.Items.Add(A,CheckState.Unchecked); } // // TODO: Add any constructor code after InitializeComponent call // }
public MethodInvoke(UPnPAction action, UPnPService service) { // // Required for Windows Form Designer support // InitializeComponent(); this.action = action; this.service = service; this.Text += " - " + action.Name; actionLabel.Text = action.Name; serviceLabel.Text = service.ServiceID; deviceLabel.Text = service.ParentDevice.FriendlyName; if (action.ArgumentList.Length>0) { argControlList = new UPnpArgumentControl[action.ArgumentList.Length]; for (int z=0;z<action.ArgumentList.Length;++z) { // if (action.ArgumentList[z].IsReturnValue == true) {returnArgPresent = true;} argControlList[z] = new UPnpArgumentControl(action.ArgumentList[z]); argControlList[z].Dock = System.Windows.Forms.DockStyle.Top; /* if (action.ArgumentList[z].RelatedStateVar.ValueType == "string") { argControlList[z].Height = 60; } */ argPanel.Controls.Add(argControlList[z]); argPanel.Controls.SetChildIndex(argControlList[z],0); Splitter splitter = new Splitter(); splitter.Height = 4; splitter.MinExtra = 0; splitter.MinSize = 32; splitter.BackColor = Color.Gray; splitter.Dock = System.Windows.Forms.DockStyle.Top; argPanel.Controls.Add(splitter); argPanel.Controls.SetChildIndex(splitter,0); } } service.OnInvokeError += new UPnPService.UPnPServiceInvokeErrorHandler(HandleInvokeError); service.OnInvokeResponse += new UPnPService.UPnPServiceInvokeHandler(HandleInvoke); }
static void Main(string[] args) { var device = UPnPDevice.CreateRootDevice(int.MaxValue, 1.0, "\\"); device.FriendlyName = Environment.MachineName + ":" + "Network Light"; device.DeviceURN = "NetworkLight"; device.HasPresentation = false; var switchPower = new UPnPService(1.0, typeof(SwitchPower).GUID.ToString(), typeof(SwitchPower).FullName, true, new SwitchPower()); switchPower.AddMethod("SetTarget"); switchPower.AddMethod("GetTarget"); switchPower.AddMethod("GetStatus"); device.AddService(switchPower); device.StartDevice(); Console.ReadLine(); device.StopDevice(); }
static void Main(string[] args) { var device = UPnPDevice.CreateRootDevice(int.MaxValue, 1.0, "\\"); device.FriendlyName = Environment.MachineName + ":" + "Service Manager"; device.DeviceURN = "ServiceManager"; device.HasPresentation = false; foreach(var svc in ServiceController.GetServices()) { var upnsvc = new UPnPService(1.0, typeof(ServiceController).GUID.ToString(), svc.DisplayName, true, new Service(svc)); upnsvc.AddMethod("Start"); upnsvc.AddMethod("Stop"); upnsvc.AddMethod("GetStatus"); device.AddService(upnsvc); } device.StartDevice(); Console.ReadLine(); device.StopDevice(); }
public CpRenderingControl(UPnPService s) { _S = s; _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink); if(HasStateVariable_LastChange) _S.GetStateVariableObject("LastChange").OnModified += new UPnPStateVariable.ModifiedHandler(LastChange_ModifiedSink); }
private void Sink_SelectPreset(UPnPService sender, string MethodName, UPnPArgument[] Args, object RetVal, int Handle) { for(int i=0;i<Args.Length;++i) { switch(Args[i].Name) { case "PresetName": switch((string)Args[i].DataValue) { case "FactoryDefaults": Args[i].DataValue = Enum_A_ARG_TYPE_PresetName.FACTORYDEFAULTS; break; case "InstallationDefaults": Args[i].DataValue = Enum_A_ARG_TYPE_PresetName.INSTALLATIONDEFAULTS; break; case "Vendor defined": Args[i].DataValue = Enum_A_ARG_TYPE_PresetName.VENDOR_DEFINED; break; default: SetUnspecifiedValue("Enum_A_ARG_TYPE_PresetName", (string)Args[i].DataValue); Args[i].DataValue = Enum_A_ARG_TYPE_PresetName._UNSPECIFIED_; break; } break; } } if(OnResult_SelectPreset != null) { OnResult_SelectPreset((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_PresetName )Args[1].DataValue, null, Handle); } WeakReference[] w = (WeakReference[])WeakList_SelectPreset.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SelectPreset)wr.Target)((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_PresetName )Args[1].DataValue, null, Handle); } else { WeakList_SelectPreset.Remove(wr); } } }
private void Error_Sink_SetSharpness(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, int Handle) { if(OnResult_SetSharpness != null) { OnResult_SetSharpness((System.UInt32 )Args[0].DataValue, (System.UInt16 )Args[1].DataValue, e, Handle); } WeakReference[] w = (WeakReference[])WeakList_SetSharpness.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SetSharpness)wr.Target)((System.UInt32 )Args[0].DataValue, (System.UInt16 )Args[1].DataValue, e, Handle); } else { WeakList_SetSharpness.Remove(wr); } } }
private void Error_Sink_SetMute(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, int Handle) { for(int i=0;i<Args.Length;++i) { switch(Args[i].Name) { case "Channel": switch((string)Args[i].DataValue) { case "Master": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.MASTER; break; case "LF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LF; break; case "RF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RF; break; case "CF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.CF; break; case "LFE": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LFE; break; case "LS": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LS; break; case "RS": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RS; break; case "LFC": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LFC; break; case "RFC": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RFC; break; case "SD": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SD; break; case "SL": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SL; break; case "SR ": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SR_; break; case "T": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.T; break; case "B": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.B; break; case "Vendor defined": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.VENDOR_DEFINED; break; } break; } } if(OnResult_SetMute != null) { OnResult_SetMute((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_Channel )Args[1].DataValue, (System.Boolean )Args[2].DataValue, e, Handle); } WeakReference[] w = (WeakReference[])WeakList_SetMute.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SetMute)wr.Target)((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_Channel )Args[1].DataValue, (System.Boolean )Args[2].DataValue, e, Handle); } else { WeakList_SetMute.Remove(wr); } } }
protected void HandleInvoke(UPnPService sender, string MethodName, UPnPArgument[] Args, object ReturnValue, object Handle) { this.Invoke(new UPnPService.UPnPServiceInvokeHandler(HandleInvokeEx),new object[5]{sender,MethodName,Args,ReturnValue, Handle}); }
private void deviceTree_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { TreeNode node = deviceTree.GetNodeAt(e.X,e.Y); if (node == null) return; deviceTree.SelectedNode = node; object infoObject = node.Tag; if (infoObject == null) { service = null; okButton.Enabled = false; return; } if (infoObject.GetType() == typeof(UPnPService)) { service = (UPnPService)infoObject; okButton.Enabled = true; } else { service = null; okButton.Enabled = false; } }
private void BuildCertToolFiles_Service(UPnPService s, DirectoryInfo outputDir) { StringBuilder sb = new StringBuilder(); sb.Append("<scpd>"); sb.Append("<serviceStateTable>"); foreach(UPnPStateVariable v in s.GetStateVariables()) { sb.Append("<stateVariable>"); sb.Append("<name>"+v.Name+"</name>"); sb.Append("<sendEventsAttribute>"); if (v.SendEvent) { sb.Append("yes"); } else { sb.Append("no"); } sb.Append("</sendEventsAttribute>"); sb.Append("<dataType>"+v.ValueType+"</dataType>"); if (v.AllowedStringValues!=null && v.AllowedStringValues.Length>0) { sb.Append("<allowedValueList>"); foreach(string av in v.AllowedStringValues) { sb.Append("<allowedValue>"+av+"</allowedValue>"); } sb.Append("</allowedValueList>"); } sb.Append("</stateVariable>"); } sb.Append("</serviceStateTable>"); if (s.Actions.Count>0) { sb.Append("<actionList>"); foreach(UPnPAction a in s.Actions) { sb.Append("<action>"); sb.Append("<name>"+a.Name+"</name>"); if (a.ArgumentList.Length>0) { sb.Append("<argumentList>"); foreach(UPnPArgument ag in a.ArgumentList) { sb.Append("<argument>"); sb.Append("<name>"+ag.Name+"</name>"); sb.Append("<direction>"+ag.Direction+"</direction>"); sb.Append("<relatedStateVariable>"+ag.RelatedStateVar.Name+"</relatedStateVariable>"); sb.Append("</argument>"); } sb.Append("</argumentList>"); } sb.Append("</action>"); } sb.Append("</actionList>"); } sb.Append("</scpd>"); StreamWriter W; DText d = new DText(); d.ATTRMARK = ":"; d[0] = s.ServiceURN; W = File.CreateText(outputDir.FullName + "\\" + d[4] + s.Version.ToString() + ".xml"); W.Write(sb.ToString()); W.Close(); }
protected UPnPService BuildUPnPService() { UPnPStateVariable[] RetVal = new UPnPStateVariable[20]; RetVal[0] = new UPnPModeratedStateVariable("ContainerUpdateIDs", typeof(System.String), true); RetVal[1] = new UPnPModeratedStateVariable("A_ARG_TYPE_Index", typeof(System.UInt32), false); RetVal[1].AddAssociation("Browse", "StartingIndex"); RetVal[1].AddAssociation("Search", "StartingIndex"); RetVal[2] = new UPnPModeratedStateVariable("A_ARG_TYPE_UpdateID", typeof(System.UInt32), false); RetVal[2].AddAssociation("Browse", "UpdateID"); RetVal[2].AddAssociation("Search", "UpdateID"); RetVal[3] = new UPnPModeratedStateVariable("SystemUpdateID", typeof(System.UInt32), true); RetVal[3].AddAssociation("GetSystemUpdateID", "Id"); RetVal[4] = new UPnPModeratedStateVariable("SearchCapabilities", typeof(System.String), false); RetVal[4].AddAssociation("GetSearchCapabilities", "SearchCaps"); RetVal[5] = new UPnPModeratedStateVariable("A_ARG_TYPE_Result", typeof(System.String), false); RetVal[5].AddAssociation("Browse", "Result"); RetVal[5].AddAssociation("CreateObject", "Elements"); RetVal[5].AddAssociation("CreateObject", "Result"); RetVal[5].AddAssociation("Search", "Result"); RetVal[6] = new UPnPModeratedStateVariable("A_ARG_TYPE_Count", typeof(System.UInt32), false); RetVal[6].AddAssociation("Browse", "RequestedCount"); RetVal[6].AddAssociation("Browse", "NumberReturned"); RetVal[6].AddAssociation("Browse", "TotalMatches"); RetVal[6].AddAssociation("Search", "RequestedCount"); RetVal[6].AddAssociation("Search", "NumberReturned"); RetVal[6].AddAssociation("Search", "TotalMatches"); RetVal[7] = new UPnPModeratedStateVariable("A_ARG_TYPE_ObjectID", typeof(System.String), false); RetVal[7].AddAssociation("Browse", "ObjectID"); RetVal[7].AddAssociation("CreateObject", "ContainerID"); RetVal[7].AddAssociation("CreateObject", "ObjectID"); RetVal[7].AddAssociation("CreateReference", "ContainerID"); RetVal[7].AddAssociation("CreateReference", "ObjectID"); RetVal[7].AddAssociation("CreateReference", "NewID"); RetVal[7].AddAssociation("DestroyObject", "ObjectID"); RetVal[7].AddAssociation("Search", "ContainerID"); RetVal[7].AddAssociation("UpdateObject", "ObjectID"); RetVal[8] = new UPnPModeratedStateVariable("A_ARG_TYPE_SearchCriteria", typeof(System.String), false); RetVal[8].AddAssociation("Search", "SearchCriteria"); RetVal[9] = new UPnPModeratedStateVariable("A_ARG_TYPE_TransferTotal", typeof(System.String), false); RetVal[9].AddAssociation("GetTransferProgress", "TransferTotal"); RetVal[10] = new UPnPModeratedStateVariable("A_ARG_TYPE_Filter", typeof(System.String), false); RetVal[10].AddAssociation("Browse", "Filter"); RetVal[10].AddAssociation("Search", "Filter"); RetVal[11] = new UPnPModeratedStateVariable("A_ARG_TYPE_SortCriteria", typeof(System.String), false); RetVal[11].AddAssociation("Browse", "SortCriteria"); RetVal[11].AddAssociation("Search", "SortCriteria"); RetVal[12] = new UPnPModeratedStateVariable("A_ARG_TYPE_BrowseFlag", typeof(System.String), false); RetVal[12].AllowedStringValues = new string[2]{"BrowseMetadata", "BrowseDirectChildren"}; RetVal[12].AddAssociation("Browse", "BrowseFlag"); RetVal[13] = new UPnPModeratedStateVariable("A_ARG_TYPE_TransferID", typeof(System.UInt32), false); RetVal[13].AddAssociation("ExportResource", "TransferID"); RetVal[13].AddAssociation("GetTransferProgress", "TransferID"); RetVal[13].AddAssociation("ImportResource", "TransferID"); RetVal[13].AddAssociation("StopTransferResource", "TransferID"); RetVal[14] = new UPnPModeratedStateVariable("A_ARG_TYPE_TransferLength", typeof(System.String), false); RetVal[14].AddAssociation("GetTransferProgress", "TransferLength"); RetVal[15] = new UPnPModeratedStateVariable("A_ARG_TYPE_TagValueList", typeof(System.String), false); RetVal[15].AddAssociation("UpdateObject", "CurrentTagValue"); RetVal[15].AddAssociation("UpdateObject", "NewTagValue"); RetVal[16] = new UPnPModeratedStateVariable("A_ARG_TYPE_TransferStatus", typeof(System.String), false); RetVal[16].AllowedStringValues = new string[4]{"COMPLETED", "ERROR", "IN_PROGRESS", "STOPPED"}; RetVal[16].AddAssociation("GetTransferProgress", "TransferStatus"); RetVal[17] = new UPnPModeratedStateVariable("A_ARG_TYPE_URI", typeof(System.Uri), false); RetVal[17].AddAssociation("DeleteResource", "ResourceURI"); RetVal[17].AddAssociation("ExportResource", "SourceURI"); RetVal[17].AddAssociation("ExportResource", "DestinationURI"); RetVal[17].AddAssociation("ImportResource", "SourceURI"); RetVal[17].AddAssociation("ImportResource", "DestinationURI"); RetVal[18] = new UPnPModeratedStateVariable("TransferIDs", typeof(System.String), true); RetVal[19] = new UPnPModeratedStateVariable("SortCapabilities", typeof(System.String), false); RetVal[19].AddAssociation("GetSortCapabilities", "SortCaps"); UPnPService S = new UPnPService(1, "urn:schemas-upnp-org:service:ContentDirectory", URN, true, this); for(int i=0;i<RetVal.Length;++i) { S.AddStateVariable(RetVal[i]); } S.AddMethod("Browse"); S.AddMethod("CreateObject"); S.AddMethod("CreateReference"); S.AddMethod("DeleteResource"); S.AddMethod("DestroyObject"); S.AddMethod("ExportResource"); S.AddMethod("GetSearchCapabilities"); S.AddMethod("GetSortCapabilities"); S.AddMethod("GetSystemUpdateID"); S.AddMethod("GetTransferProgress"); S.AddMethod("ImportResource"); S.AddMethod("Search"); S.AddMethod("StopTransferResource"); S.AddMethod("UpdateObject"); return(S); }
private void startMenuItem_Click(object sender, System.EventArgs e) { startMenuItem.Enabled = false; foreach (MenuItem i in pfcMenuItem.MenuItems) {i.Enabled = false;} foreach (MenuItem i in menuItem3.MenuItems) {i.Enabled = false;} InfoStringBox.Enabled = false; device = UPnPDevice.CreateRootDevice(900,1,""); device.UniqueDeviceName = Guid.NewGuid().ToString(); device.StandardDeviceType = "MediaRenderer"; device.FriendlyName = "Media Renderer (" + System.Net.Dns.GetHostName() + ")"; device.HasPresentation = false; device.Manufacturer = "OpenSource"; device.ManufacturerURL = "http://opentools.homeip.net/"; device.PresentationURL = "/"; device.HasPresentation = true; device.ModelName = "AV Renderer"; device.ModelDescription = "Media Renderer Device"; device.ModelURL = new Uri("http://opentools.homeip.net/"); UPnPService ts = new UPnPService(1, "EmptyService", "EmptyService", true, this); ts.AddMethod("NullMethod"); //device.AddService(ts); DText p = new DText(); p.ATTRMARK = "\r\n"; p[0] = this.InfoStringBox.Text; int len = p.DCOUNT(); ProtocolInfoString[] istring = new ProtocolInfoString[len]; for(int i=1;i<=len;++i) { istring[i-1] = new ProtocolInfoString(p[i]); } r = new AVRenderer(MaxConnections, istring, new AVRenderer.ConnectionHandler(NewConnectionSink)); r.OnClosedConnection += new AVRenderer.ConnectionHandler(ClosedConnectionSink); if (supportRecordMenuItem.Checked == false) { r.AVT.RemoveAction_Record(); } if (supportRecordQualityMenuItem.Checked == false) { r.AVT.RemoveAction_SetRecordQualityMode(); } if (supportNextContentUriMenuItem.Checked == false) { r.AVT.RemoveAction_SetNextAVTransportURI(); } if (MaxConnections == 0) { r.Manager.RemoveAction_PrepareForConnection(); r.Manager.RemoveAction_ConnectionComplete(); } r.AVT.GetUPnPService().GetStateVariableObject("CurrentPlayMode").AllowedStringValues = new String[3]{"NORMAL","REPEAT_ALL","INTRO"}; r.Control.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_Channel").AllowedStringValues = new String[3]{"Master","LF","RF"}; r.Control.GetUPnPService().GetStateVariableObject("RedVideoBlackLevel").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("GreenVideoBlackLevel").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("BlueVideoBlackLevel").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("RedVideoGain").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("GreenVideoGain").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("BlueVideoGain").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("Brightness").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("Contrast").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("Sharpness").SetRange((ushort)0,(ushort)100,(ushort)1); r.Control.GetUPnPService().GetStateVariableObject("Volume").SetRange((UInt16)0,(UInt16)100,(ushort)1); device.AddService(r.Control); device.AddService(r.AVT); device.AddService(r.Manager); //device.AddDevice(r); device.StartDevice(); //r.Start(); }
internal static UPnPService Parse(String XML) { StringReader MyString = new StringReader(XML); XmlTextReader XMLDoc = new XmlTextReader(MyString); UPnPService RetVal = new UPnPService(1); XMLDoc.Read(); XMLDoc.MoveToContent(); if (XMLDoc.LocalName == "service") { if (XMLDoc.AttributeCount > 0) { for (int ax = 0; ax < XMLDoc.AttributeCount; ++ax) { XMLDoc.MoveToAttribute(ax); if (XMLDoc.LocalName == "MaxVersion") { RetVal.SetVersion(XMLDoc.Value); } } XMLDoc.MoveToContent(); XMLDoc.Read(); } else { XMLDoc.Read(); XMLDoc.MoveToContent(); } while (XMLDoc.LocalName != "service") { switch (XMLDoc.LocalName) { case "serviceType": RetVal.ServiceURN = XMLDoc.ReadString(); break; case "serviceId": RetVal.ServiceID = XMLDoc.ReadString(); break; case "SCPDURL": RetVal.SCPDURL = XMLDoc.ReadString(); break; case "controlURL": RetVal.ControlURL = XMLDoc.ReadString(); break; case "eventSubURL": RetVal.EventURL = XMLDoc.ReadString(); break; default: break; } XMLDoc.Read(); XMLDoc.MoveToContent(); } } return (RetVal); }
protected void HandleInvokeEx(UPnPService sender, string MethodName, UPnPArgument[] Args, object ReturnValue, object Handle) { if (sender != service) return; if (MethodName != action.Name) return; TimeSpan invokeSpan = DateTime.Now.Subtract(invokeTime); string timeStr; if (invokeSpan.TotalMilliseconds >= 1000) { timeStr = invokeSpan.Seconds + "." + invokeSpan.Milliseconds + "sec"; } else { timeStr = invokeSpan.Milliseconds + "ms"; } for (int i=0;i<Args.Length;++i) { for (int j=0;j<argControlList.Length;j++) { if (Args[i].Name == argControlList[j].UPnPArgument.Name) { argControlList[j].ArgumentValue = Args[i].DataValue; } } } if (ReturnValue != null) { for (int j=0;j<argControlList.Length;j++) { if (argControlList[j].UPnPArgument.IsReturnValue == true) { argControlList[j].ArgumentValue = ReturnValue; } } } statusBar.Text = "Invocation complete (" + timeStr + "), waiting for next invocation arguments."; if (autoInvokeMenuItem.Checked == true) { invokeButton_Click(null,null); } }
protected void HandleInvokeError(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, object Handle) { if (sender != service) return; if (MethodName != action.Name) return; TimeSpan invokeSpan = DateTime.Now.Subtract(invokeTime); string timeStr; if (invokeSpan.TotalMilliseconds >= 1000) { timeStr = invokeSpan.Seconds + "." + invokeSpan.Milliseconds + "sec"; } else { timeStr = invokeSpan.Milliseconds + "ms"; } if(e.UPNP==null) { statusBar.Text = "Invocation error (" + timeStr + "): " + e.ToString(); } else { statusBar.Text = "Invocation Error Code " + e.UPNP.ErrorCode.ToString() + " (" + timeStr + "): " + e.UPNP.ErrorDescription; } }
private void Sink_SetVerticalKeystone(UPnPService sender, string MethodName, UPnPArgument[] Args, object RetVal, int Handle) { if(OnResult_SetVerticalKeystone != null) { OnResult_SetVerticalKeystone((System.UInt32 )Args[0].DataValue, (System.Int16 )Args[1].DataValue, null, Handle); } WeakReference[] w = (WeakReference[])WeakList_SetVerticalKeystone.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SetVerticalKeystone)wr.Target)((System.UInt32 )Args[0].DataValue, (System.Int16 )Args[1].DataValue, null, Handle); } else { WeakList_SetVerticalKeystone.Remove(wr); } } }
public void _subscribe(int Timeout, UPnPService.UPnPEventSubscribeHandler UPnPEventCallback) { _S.Subscribe(Timeout, UPnPEventCallback); }
private void Sink_SetVolumeDB(UPnPService sender, string MethodName, UPnPArgument[] Args, object RetVal, int Handle) { for(int i=0;i<Args.Length;++i) { switch(Args[i].Name) { case "Channel": switch((string)Args[i].DataValue) { case "Master": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.MASTER; break; case "LF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LF; break; case "RF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RF; break; case "CF": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.CF; break; case "LFE": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LFE; break; case "LS": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LS; break; case "RS": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RS; break; case "LFC": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.LFC; break; case "RFC": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.RFC; break; case "SD": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SD; break; case "SL": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SL; break; case "SR ": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.SR_; break; case "T": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.T; break; case "B": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.B; break; case "Vendor defined": Args[i].DataValue = Enum_A_ARG_TYPE_Channel.VENDOR_DEFINED; break; default: SetUnspecifiedValue("Enum_A_ARG_TYPE_Channel", (string)Args[i].DataValue); Args[i].DataValue = Enum_A_ARG_TYPE_Channel._UNSPECIFIED_; break; } break; } } if(OnResult_SetVolumeDB != null) { OnResult_SetVolumeDB((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_Channel )Args[1].DataValue, (System.Int16 )Args[2].DataValue, null, Handle); } WeakReference[] w = (WeakReference[])WeakList_SetVolumeDB.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SetVolumeDB)wr.Target)((System.UInt32 )Args[0].DataValue, (Enum_A_ARG_TYPE_Channel )Args[1].DataValue, (System.Int16 )Args[2].DataValue, null, Handle); } else { WeakList_SetVolumeDB.Remove(wr); } } }
protected void _subscribe_sink(UPnPService sender, bool OK) { if(OnSubscribe!=null) { OnSubscribe(OK); } }
private void deviceTree_DoubleClick(object sender, System.EventArgs e) { if (deviceTree.SelectedNode == null) return; object infoObject = deviceTree.SelectedNode.Tag; if (infoObject.GetType() == typeof(UPnPService)) { service = (UPnPService)infoObject; this.DialogResult = System.Windows.Forms.DialogResult.OK; } }
private void Error_Sink_SetColorTemperature(UPnPService sender, string MethodName, UPnPArgument[] Args, UPnPInvokeException e, int Handle) { if(OnResult_SetColorTemperature != null) { OnResult_SetColorTemperature((System.UInt32 )Args[0].DataValue, (System.UInt16)UPnPService.CreateObjectInstance(typeof(System.UInt16),null), e, Handle); } WeakReference[] w = (WeakReference[])WeakList_SetColorTemperature.ToArray(typeof(WeakReference)); foreach(WeakReference wr in w) { if(wr.IsAlive==true) { ((Delegate_OnResult_SetColorTemperature)wr.Target)((System.UInt32 )Args[0].DataValue, (System.UInt16)UPnPService.CreateObjectInstance(typeof(System.UInt16),null), e, Handle); } else { WeakList_SetColorTemperature.Remove(wr); } } }
internal _DvContentDirectory(DvContentDirectory n) { Outer = n; S = BuildUPnPService(); }
internal void _Update(UPnPService s) { this.__controlurl = s.__controlurl; this.__eventurl = s.__eventurl; this.EventCallbackURL = s.EventCallbackURL; this.EventURL = s.EventURL; if (this.SubscribeCounter != 0) { UPnPService.SubscribeCycle.Remove(this.GetHashCode()); this.SubscribeCounter = 0; this.Subscribe(CurrentTimeout, null); } if (this.OnServiceReset != null) this.OnServiceReset(this); }