/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgPlaylist1(CpDevice aDevice) : base("av-openhome-org", "Playlist", 1, aDevice) { OpenHome.Net.Core.Parameter param; List<String> allowedValues = new List<String>(); iActionPlay = new OpenHome.Net.Core.Action("Play"); iActionPause = new OpenHome.Net.Core.Action("Pause"); iActionStop = new OpenHome.Net.Core.Action("Stop"); iActionNext = new OpenHome.Net.Core.Action("Next"); iActionPrevious = new OpenHome.Net.Core.Action("Previous"); iActionSetRepeat = new OpenHome.Net.Core.Action("SetRepeat"); param = new ParameterBool("Value"); iActionSetRepeat.AddInputParameter(param); iActionRepeat = new OpenHome.Net.Core.Action("Repeat"); param = new ParameterBool("Value"); iActionRepeat.AddOutputParameter(param); iActionSetShuffle = new OpenHome.Net.Core.Action("SetShuffle"); param = new ParameterBool("Value"); iActionSetShuffle.AddInputParameter(param); iActionShuffle = new OpenHome.Net.Core.Action("Shuffle"); param = new ParameterBool("Value"); iActionShuffle.AddOutputParameter(param); iActionSeekSecondAbsolute = new OpenHome.Net.Core.Action("SeekSecondAbsolute"); param = new ParameterUint("Value"); iActionSeekSecondAbsolute.AddInputParameter(param); iActionSeekSecondRelative = new OpenHome.Net.Core.Action("SeekSecondRelative"); param = new ParameterInt("Value"); iActionSeekSecondRelative.AddInputParameter(param); iActionSeekId = new OpenHome.Net.Core.Action("SeekId"); param = new ParameterUint("Value"); iActionSeekId.AddInputParameter(param); iActionSeekIndex = new OpenHome.Net.Core.Action("SeekIndex"); param = new ParameterUint("Value"); iActionSeekIndex.AddInputParameter(param); iActionTransportState = new OpenHome.Net.Core.Action("TransportState"); allowedValues.Add("Playing"); allowedValues.Add("Paused"); allowedValues.Add("Stopped"); allowedValues.Add("Buffering"); param = new ParameterString("Value", allowedValues); iActionTransportState.AddOutputParameter(param); allowedValues.Clear(); iActionId = new OpenHome.Net.Core.Action("Id"); param = new ParameterUint("Value"); iActionId.AddOutputParameter(param); iActionRead = new OpenHome.Net.Core.Action("Read"); param = new ParameterUint("Id"); iActionRead.AddInputParameter(param); param = new ParameterString("Uri", allowedValues); iActionRead.AddOutputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionRead.AddOutputParameter(param); iActionReadList = new OpenHome.Net.Core.Action("ReadList"); param = new ParameterString("IdList", allowedValues); iActionReadList.AddInputParameter(param); param = new ParameterString("TrackList", allowedValues); iActionReadList.AddOutputParameter(param); iActionInsert = new OpenHome.Net.Core.Action("Insert"); param = new ParameterUint("AfterId"); iActionInsert.AddInputParameter(param); param = new ParameterString("Uri", allowedValues); iActionInsert.AddInputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionInsert.AddInputParameter(param); param = new ParameterUint("NewId"); iActionInsert.AddOutputParameter(param); iActionDeleteId = new OpenHome.Net.Core.Action("DeleteId"); param = new ParameterUint("Value"); iActionDeleteId.AddInputParameter(param); iActionDeleteAll = new OpenHome.Net.Core.Action("DeleteAll"); iActionTracksMax = new OpenHome.Net.Core.Action("TracksMax"); param = new ParameterUint("Value"); iActionTracksMax.AddOutputParameter(param); iActionIdArray = new OpenHome.Net.Core.Action("IdArray"); param = new ParameterUint("Token"); iActionIdArray.AddOutputParameter(param); param = new ParameterBinary("Array"); iActionIdArray.AddOutputParameter(param); iActionIdArrayChanged = new OpenHome.Net.Core.Action("IdArrayChanged"); param = new ParameterUint("Token"); iActionIdArrayChanged.AddInputParameter(param); param = new ParameterBool("Value"); iActionIdArrayChanged.AddOutputParameter(param); iActionProtocolInfo = new OpenHome.Net.Core.Action("ProtocolInfo"); param = new ParameterString("Value", allowedValues); iActionProtocolInfo.AddOutputParameter(param); iTransportState = new PropertyString("TransportState", TransportStatePropertyChanged); AddProperty(iTransportState); iRepeat = new PropertyBool("Repeat", RepeatPropertyChanged); AddProperty(iRepeat); iShuffle = new PropertyBool("Shuffle", ShufflePropertyChanged); AddProperty(iShuffle); iId = new PropertyUint("Id", IdPropertyChanged); AddProperty(iId); iIdArray = new PropertyBinary("IdArray", IdArrayPropertyChanged); AddProperty(iIdArray); iTracksMax = new PropertyUint("TracksMax", TracksMaxPropertyChanged); AddProperty(iTracksMax); iProtocolInfo = new PropertyString("ProtocolInfo", ProtocolInfoPropertyChanged); AddProperty(iProtocolInfo); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor for binary input argument for an action /// </summary> /// <remarks>Intended to be write only (its value is written on construction and not be later read)</remarks> /// <param name="aParameter">Defines the name for the argument. /// Must have been previously added to the action using Action.AddInputParameter</param> /// <param name="aData">Value for the argument</param> public unsafe ArgumentBinary(ParameterBinary aParameter, byte[] aData) { fixed (byte* pData = aData) { iHandle = ActionArgumentCreateBinaryInput(aParameter.Handle(), new IntPtr(pData), aData.Length); } }
/// <summary> /// Constructor for binary output argument for an action /// </summary> /// <remarks>Intended to be created without any value. The value is later set after /// CpService.InvokeAction is called but before the invocation's callback is run)</remarks> /// <param name="aParameter">Defines the name plus any bounds to the value for the argument. /// Must have been previously added to the action using Action.AddOutputParameter</param> public ArgumentBinary(ParameterBinary aParameter) { iHandle = ActionArgumentCreateBinaryOutput(aParameter.Handle()); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgRadio1(CpDevice aDevice) : base("av-openhome-org", "Radio", 1, aDevice) { OpenHome.Net.Core.Parameter param; List<String> allowedValues = new List<String>(); iActionPlay = new OpenHome.Net.Core.Action("Play"); iActionPause = new OpenHome.Net.Core.Action("Pause"); iActionStop = new OpenHome.Net.Core.Action("Stop"); iActionSeekSecondAbsolute = new OpenHome.Net.Core.Action("SeekSecondAbsolute"); param = new ParameterUint("Value"); iActionSeekSecondAbsolute.AddInputParameter(param); iActionSeekSecondRelative = new OpenHome.Net.Core.Action("SeekSecondRelative"); param = new ParameterInt("Value"); iActionSeekSecondRelative.AddInputParameter(param); iActionChannel = new OpenHome.Net.Core.Action("Channel"); param = new ParameterString("Uri", allowedValues); iActionChannel.AddOutputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionChannel.AddOutputParameter(param); iActionSetChannel = new OpenHome.Net.Core.Action("SetChannel"); param = new ParameterString("Uri", allowedValues); iActionSetChannel.AddInputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionSetChannel.AddInputParameter(param); iActionTransportState = new OpenHome.Net.Core.Action("TransportState"); allowedValues.Add("Stopped"); allowedValues.Add("Playing"); allowedValues.Add("Paused"); allowedValues.Add("Buffering"); param = new ParameterString("Value", allowedValues); iActionTransportState.AddOutputParameter(param); allowedValues.Clear(); iActionId = new OpenHome.Net.Core.Action("Id"); param = new ParameterUint("Value"); iActionId.AddOutputParameter(param); iActionSetId = new OpenHome.Net.Core.Action("SetId"); param = new ParameterUint("Value"); iActionSetId.AddInputParameter(param); param = new ParameterString("Uri", allowedValues); iActionSetId.AddInputParameter(param); iActionRead = new OpenHome.Net.Core.Action("Read"); param = new ParameterUint("Id"); iActionRead.AddInputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionRead.AddOutputParameter(param); iActionReadList = new OpenHome.Net.Core.Action("ReadList"); param = new ParameterString("IdList", allowedValues); iActionReadList.AddInputParameter(param); param = new ParameterString("ChannelList", allowedValues); iActionReadList.AddOutputParameter(param); iActionIdArray = new OpenHome.Net.Core.Action("IdArray"); param = new ParameterUint("Token"); iActionIdArray.AddOutputParameter(param); param = new ParameterBinary("Array"); iActionIdArray.AddOutputParameter(param); iActionIdArrayChanged = new OpenHome.Net.Core.Action("IdArrayChanged"); param = new ParameterUint("Token"); iActionIdArrayChanged.AddInputParameter(param); param = new ParameterBool("Value"); iActionIdArrayChanged.AddOutputParameter(param); iActionChannelsMax = new OpenHome.Net.Core.Action("ChannelsMax"); param = new ParameterUint("Value"); iActionChannelsMax.AddOutputParameter(param); iActionProtocolInfo = new OpenHome.Net.Core.Action("ProtocolInfo"); param = new ParameterString("Value", allowedValues); iActionProtocolInfo.AddOutputParameter(param); iUri = new PropertyString("Uri", UriPropertyChanged); AddProperty(iUri); iMetadata = new PropertyString("Metadata", MetadataPropertyChanged); AddProperty(iMetadata); iTransportState = new PropertyString("TransportState", TransportStatePropertyChanged); AddProperty(iTransportState); iId = new PropertyUint("Id", IdPropertyChanged); AddProperty(iId); iIdArray = new PropertyBinary("IdArray", IdArrayPropertyChanged); AddProperty(iIdArray); iChannelsMax = new PropertyUint("ChannelsMax", ChannelsMaxPropertyChanged); AddProperty(iChannelsMax); iProtocolInfo = new PropertyString("ProtocolInfo", ProtocolInfoPropertyChanged); AddProperty(iProtocolInfo); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor suitable for use by clients of the device stack /// </summary> /// <param name="aParameter">Parameter defining the name for the property.</param> /// <param name="aOwnsNativeProperty">Whether the managed property owns the underlying native property.</param> public PropertyBinary(ParameterBinary aParameter, bool aOwnsNativeProperty = false) : base(aOwnsNativeProperty) { iHandle = ServicePropertyCreateBinaryDv(aParameter.Handle()); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyOpenhomeOrgTestBasic1(CpDevice aDevice) : base("openhome-org", "TestBasic", 1, aDevice) { OpenHome.Net.Core.Parameter param; List<String> allowedValues = new List<String>(); iActionIncrement = new OpenHome.Net.Core.Action("Increment"); param = new ParameterUint("Value"); iActionIncrement.AddInputParameter(param); param = new ParameterUint("Result"); iActionIncrement.AddOutputParameter(param); iActionEchoAllowedRangeUint = new OpenHome.Net.Core.Action("EchoAllowedRangeUint"); param = new ParameterUint("Value", 10, 20); iActionEchoAllowedRangeUint.AddInputParameter(param); param = new ParameterUint("Result"); iActionEchoAllowedRangeUint.AddOutputParameter(param); iActionDecrement = new OpenHome.Net.Core.Action("Decrement"); param = new ParameterInt("Value"); iActionDecrement.AddInputParameter(param); param = new ParameterInt("Result"); iActionDecrement.AddOutputParameter(param); iActionToggle = new OpenHome.Net.Core.Action("Toggle"); param = new ParameterBool("Value"); iActionToggle.AddInputParameter(param); param = new ParameterBool("Result"); iActionToggle.AddOutputParameter(param); iActionEchoString = new OpenHome.Net.Core.Action("EchoString"); param = new ParameterString("Value", allowedValues); iActionEchoString.AddInputParameter(param); param = new ParameterString("Result", allowedValues); iActionEchoString.AddOutputParameter(param); iActionEchoAllowedValueString = new OpenHome.Net.Core.Action("EchoAllowedValueString"); allowedValues.Add("One"); allowedValues.Add("Two"); allowedValues.Add("Three"); allowedValues.Add("Four"); param = new ParameterString("Value", allowedValues); iActionEchoAllowedValueString.AddInputParameter(param); allowedValues.Clear(); param = new ParameterString("Result", allowedValues); iActionEchoAllowedValueString.AddOutputParameter(param); iActionEchoBinary = new OpenHome.Net.Core.Action("EchoBinary"); param = new ParameterBinary("Value"); iActionEchoBinary.AddInputParameter(param); param = new ParameterBinary("Result"); iActionEchoBinary.AddOutputParameter(param); iActionSetUint = new OpenHome.Net.Core.Action("SetUint"); param = new ParameterUint("ValueUint"); iActionSetUint.AddInputParameter(param); iActionGetUint = new OpenHome.Net.Core.Action("GetUint"); param = new ParameterUint("ValueUint"); iActionGetUint.AddOutputParameter(param); iActionSetInt = new OpenHome.Net.Core.Action("SetInt"); param = new ParameterInt("ValueInt"); iActionSetInt.AddInputParameter(param); iActionGetInt = new OpenHome.Net.Core.Action("GetInt"); param = new ParameterInt("ValueInt"); iActionGetInt.AddOutputParameter(param); iActionSetBool = new OpenHome.Net.Core.Action("SetBool"); param = new ParameterBool("ValueBool"); iActionSetBool.AddInputParameter(param); iActionGetBool = new OpenHome.Net.Core.Action("GetBool"); param = new ParameterBool("ValueBool"); iActionGetBool.AddOutputParameter(param); iActionSetMultiple = new OpenHome.Net.Core.Action("SetMultiple"); param = new ParameterUint("ValueUint"); iActionSetMultiple.AddInputParameter(param); param = new ParameterInt("ValueInt"); iActionSetMultiple.AddInputParameter(param); param = new ParameterBool("ValueBool"); iActionSetMultiple.AddInputParameter(param); iActionGetMultiple = new OpenHome.Net.Core.Action("GetMultiple"); param = new ParameterUint("ValueUint"); iActionGetMultiple.AddOutputParameter(param); param = new ParameterInt("ValueInt"); iActionGetMultiple.AddOutputParameter(param); param = new ParameterBool("ValueBool"); iActionGetMultiple.AddOutputParameter(param); iActionSetString = new OpenHome.Net.Core.Action("SetString"); param = new ParameterString("ValueStr", allowedValues); iActionSetString.AddInputParameter(param); iActionGetString = new OpenHome.Net.Core.Action("GetString"); param = new ParameterString("ValueStr", allowedValues); iActionGetString.AddOutputParameter(param); iActionSetBinary = new OpenHome.Net.Core.Action("SetBinary"); param = new ParameterBinary("ValueBin"); iActionSetBinary.AddInputParameter(param); iActionGetBinary = new OpenHome.Net.Core.Action("GetBinary"); param = new ParameterBinary("ValueBin"); iActionGetBinary.AddOutputParameter(param); iActionToggleBool = new OpenHome.Net.Core.Action("ToggleBool"); iActionWriteFile = new OpenHome.Net.Core.Action("WriteFile"); param = new ParameterString("Data", allowedValues); iActionWriteFile.AddInputParameter(param); param = new ParameterString("FileFullName", allowedValues); iActionWriteFile.AddInputParameter(param); iActionShutdown = new OpenHome.Net.Core.Action("Shutdown"); iVarUint = new PropertyUint("VarUint", VarUintPropertyChanged); AddProperty(iVarUint); iVarInt = new PropertyInt("VarInt", VarIntPropertyChanged); AddProperty(iVarInt); iVarBool = new PropertyBool("VarBool", VarBoolPropertyChanged); AddProperty(iVarBool); iVarStr = new PropertyString("VarStr", VarStrPropertyChanged); AddProperty(iVarStr); iVarBin = new PropertyBinary("VarBin", VarBinPropertyChanged); AddProperty(iVarBin); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor for binary input argument for an action /// </summary> /// <remarks>Intended to be write only (its value is written on construction and not be later read)</remarks> /// <param name="aParameter">Defines the name for the argument. /// Must have been previously added to the action using Action.AddInputParameter</param> /// <param name="aData">Value for the argument</param> public ArgumentBinary(ParameterBinary aParameter, byte[] aData) { GCHandle h = GCHandle.Alloc(aData, GCHandleType.Pinned); iHandle = ActionArgumentCreateBinaryInput(aParameter.Handle(), h.AddrOfPinnedObject(), aData.Length); h.Free(); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgPlaylistManager1(CpDevice aDevice) : base("av-openhome-org", "PlaylistManager", 1, aDevice) { OpenHome.Net.Core.Parameter param; List<String> allowedValues = new List<String>(); iActionMetadata = new OpenHome.Net.Core.Action("Metadata"); param = new ParameterString("Metadata", allowedValues); iActionMetadata.AddOutputParameter(param); iActionImagesXml = new OpenHome.Net.Core.Action("ImagesXml"); param = new ParameterString("ImagesXml", allowedValues); iActionImagesXml.AddOutputParameter(param); iActionPlaylistReadArray = new OpenHome.Net.Core.Action("PlaylistReadArray"); param = new ParameterUint("Id"); iActionPlaylistReadArray.AddInputParameter(param); param = new ParameterBinary("Array"); iActionPlaylistReadArray.AddOutputParameter(param); iActionPlaylistReadList = new OpenHome.Net.Core.Action("PlaylistReadList"); param = new ParameterString("IdList", allowedValues); iActionPlaylistReadList.AddInputParameter(param); param = new ParameterString("PlaylistList", allowedValues); iActionPlaylistReadList.AddOutputParameter(param); iActionPlaylistRead = new OpenHome.Net.Core.Action("PlaylistRead"); param = new ParameterUint("Id"); iActionPlaylistRead.AddInputParameter(param); param = new ParameterString("Name", allowedValues); iActionPlaylistRead.AddOutputParameter(param); param = new ParameterString("Description", allowedValues); iActionPlaylistRead.AddOutputParameter(param); param = new ParameterUint("ImageId"); iActionPlaylistRead.AddOutputParameter(param); iActionPlaylistSetName = new OpenHome.Net.Core.Action("PlaylistSetName"); param = new ParameterUint("Id"); iActionPlaylistSetName.AddInputParameter(param); param = new ParameterString("Name", allowedValues); iActionPlaylistSetName.AddInputParameter(param); iActionPlaylistSetDescription = new OpenHome.Net.Core.Action("PlaylistSetDescription"); param = new ParameterUint("Id"); iActionPlaylistSetDescription.AddInputParameter(param); param = new ParameterString("Description", allowedValues); iActionPlaylistSetDescription.AddInputParameter(param); iActionPlaylistSetImageId = new OpenHome.Net.Core.Action("PlaylistSetImageId"); param = new ParameterUint("Id"); iActionPlaylistSetImageId.AddInputParameter(param); param = new ParameterUint("ImageId"); iActionPlaylistSetImageId.AddInputParameter(param); iActionPlaylistInsert = new OpenHome.Net.Core.Action("PlaylistInsert"); param = new ParameterUint("AfterId"); iActionPlaylistInsert.AddInputParameter(param); param = new ParameterString("Name", allowedValues); iActionPlaylistInsert.AddInputParameter(param); param = new ParameterString("Description", allowedValues); iActionPlaylistInsert.AddInputParameter(param); param = new ParameterUint("ImageId"); iActionPlaylistInsert.AddInputParameter(param); param = new ParameterUint("NewId"); iActionPlaylistInsert.AddOutputParameter(param); iActionPlaylistDeleteId = new OpenHome.Net.Core.Action("PlaylistDeleteId"); param = new ParameterUint("Value"); iActionPlaylistDeleteId.AddInputParameter(param); iActionPlaylistMove = new OpenHome.Net.Core.Action("PlaylistMove"); param = new ParameterUint("Id"); iActionPlaylistMove.AddInputParameter(param); param = new ParameterUint("AfterId"); iActionPlaylistMove.AddInputParameter(param); iActionPlaylistsMax = new OpenHome.Net.Core.Action("PlaylistsMax"); param = new ParameterUint("Value"); iActionPlaylistsMax.AddOutputParameter(param); iActionTracksMax = new OpenHome.Net.Core.Action("TracksMax"); param = new ParameterUint("Value"); iActionTracksMax.AddOutputParameter(param); iActionPlaylistArrays = new OpenHome.Net.Core.Action("PlaylistArrays"); param = new ParameterUint("Token"); iActionPlaylistArrays.AddOutputParameter(param); param = new ParameterBinary("IdArray"); iActionPlaylistArrays.AddOutputParameter(param); param = new ParameterBinary("TokenArray"); iActionPlaylistArrays.AddOutputParameter(param); iActionPlaylistArraysChanged = new OpenHome.Net.Core.Action("PlaylistArraysChanged"); param = new ParameterUint("Token"); iActionPlaylistArraysChanged.AddInputParameter(param); param = new ParameterBool("Value"); iActionPlaylistArraysChanged.AddOutputParameter(param); iActionRead = new OpenHome.Net.Core.Action("Read"); param = new ParameterUint("Id"); iActionRead.AddInputParameter(param); param = new ParameterUint("TrackId"); iActionRead.AddInputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionRead.AddOutputParameter(param); iActionReadList = new OpenHome.Net.Core.Action("ReadList"); param = new ParameterUint("Id"); iActionReadList.AddInputParameter(param); param = new ParameterString("TrackIdList", allowedValues); iActionReadList.AddInputParameter(param); param = new ParameterString("TrackList", allowedValues); iActionReadList.AddOutputParameter(param); iActionInsert = new OpenHome.Net.Core.Action("Insert"); param = new ParameterUint("Id"); iActionInsert.AddInputParameter(param); param = new ParameterUint("AfterTrackId"); iActionInsert.AddInputParameter(param); param = new ParameterString("Metadata", allowedValues); iActionInsert.AddInputParameter(param); param = new ParameterUint("NewTrackId"); iActionInsert.AddOutputParameter(param); iActionDeleteId = new OpenHome.Net.Core.Action("DeleteId"); param = new ParameterUint("Id"); iActionDeleteId.AddInputParameter(param); param = new ParameterUint("TrackId"); iActionDeleteId.AddInputParameter(param); iActionDeleteAll = new OpenHome.Net.Core.Action("DeleteAll"); param = new ParameterUint("Id"); iActionDeleteAll.AddInputParameter(param); iMetadata = new PropertyString("Metadata", MetadataPropertyChanged); AddProperty(iMetadata); iImagesXml = new PropertyString("ImagesXml", ImagesXmlPropertyChanged); AddProperty(iImagesXml); iIdArray = new PropertyBinary("IdArray", IdArrayPropertyChanged); AddProperty(iIdArray); iTokenArray = new PropertyBinary("TokenArray", TokenArrayPropertyChanged); AddProperty(iTokenArray); iPlaylistsMax = new PropertyUint("PlaylistsMax", PlaylistsMaxPropertyChanged); AddProperty(iPlaylistsMax); iTracksMax = new PropertyUint("TracksMax", TracksMaxPropertyChanged); AddProperty(iTracksMax); iPropertyLock = new Mutex(); }
/// <summary> /// Constructor /// </summary> /// <remarks>Use CpProxy::[Un]Subscribe() to enable/disable querying of state variable and reporting of their changes.</remarks> /// <param name="aDevice">The device to use</param> public CpProxyAvOpenhomeOrgCredentials1(CpDevice aDevice) : base("av-openhome-org", "Credentials", 1, aDevice) { OpenHome.Net.Core.Parameter param; List<String> allowedValues = new List<String>(); iActionSet = new OpenHome.Net.Core.Action("Set"); param = new ParameterString("Id", allowedValues); iActionSet.AddInputParameter(param); param = new ParameterString("UserName", allowedValues); iActionSet.AddInputParameter(param); param = new ParameterBinary("Password"); iActionSet.AddInputParameter(param); iActionClear = new OpenHome.Net.Core.Action("Clear"); param = new ParameterString("Id", allowedValues); iActionClear.AddInputParameter(param); iActionSetEnabled = new OpenHome.Net.Core.Action("SetEnabled"); param = new ParameterString("Id", allowedValues); iActionSetEnabled.AddInputParameter(param); param = new ParameterBool("Enabled"); iActionSetEnabled.AddInputParameter(param); iActionGet = new OpenHome.Net.Core.Action("Get"); param = new ParameterString("Id", allowedValues); iActionGet.AddInputParameter(param); param = new ParameterString("UserName", allowedValues); iActionGet.AddOutputParameter(param); param = new ParameterBinary("Password"); iActionGet.AddOutputParameter(param); param = new ParameterBool("Enabled"); iActionGet.AddOutputParameter(param); param = new ParameterString("Status", allowedValues); iActionGet.AddOutputParameter(param); param = new ParameterString("Data", allowedValues); iActionGet.AddOutputParameter(param); iActionLogin = new OpenHome.Net.Core.Action("Login"); param = new ParameterString("Id", allowedValues); iActionLogin.AddInputParameter(param); param = new ParameterString("Token", allowedValues); iActionLogin.AddOutputParameter(param); iActionReLogin = new OpenHome.Net.Core.Action("ReLogin"); param = new ParameterString("Id", allowedValues); iActionReLogin.AddInputParameter(param); param = new ParameterString("CurrentToken", allowedValues); iActionReLogin.AddInputParameter(param); param = new ParameterString("NewToken", allowedValues); iActionReLogin.AddOutputParameter(param); iActionGetIds = new OpenHome.Net.Core.Action("GetIds"); param = new ParameterString("Ids", allowedValues); iActionGetIds.AddOutputParameter(param); iActionGetPublicKey = new OpenHome.Net.Core.Action("GetPublicKey"); param = new ParameterString("PublicKey", allowedValues); iActionGetPublicKey.AddOutputParameter(param); iActionGetSequenceNumber = new OpenHome.Net.Core.Action("GetSequenceNumber"); param = new ParameterUint("SequenceNumber"); iActionGetSequenceNumber.AddOutputParameter(param); iIds = new PropertyString("Ids", IdsPropertyChanged); AddProperty(iIds); iPublicKey = new PropertyString("PublicKey", PublicKeyPropertyChanged); AddProperty(iPublicKey); iSequenceNumber = new PropertyUint("SequenceNumber", SequenceNumberPropertyChanged); AddProperty(iSequenceNumber); iPropertyLock = new Mutex(); }