cpavtransport.cs

来自「zwave 无线通讯协议 PC controller 控制器源码」· CS 代码 · 共 1,803 行 · 第 1/5 页

CS
1,803
字号
//////////////////////////////////////////////////////////////////////////////////////////////// 
//
//          #######
//          #   ##    ####   #####    #####  ##  ##   #####
//             ##    ##  ##  ##  ##  ##      ##  ##  ##
//            ##  #  ######  ##  ##   ####   ##  ##   ####
//           ##  ##  ##      ##  ##      ##   #####      ##
//          #######   ####   ##  ##  #####       ##  #####
//                                           #####
//          Z-Wave, the wireless language.
//
//          Copyright Zensys A/S, 2003,2004
//
//          All Rights Reserved
//
//          Description:   This source file is the sourcefile for the
//                         CpAVTransport class
//
//                         Source is generated by the Intel DeviceBuilder Tool
//
//          Author:   Johann Sigfredsson
//
//          Last Changed By:  $Author: jrm $
//          Revision:         $Revision: 1.2 $
//          Last Changed:     $Date: 2006/07/25 09:49:03 $
//
//////////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections;
using System.Threading;
using Intel.Utilities;
using Intel.UPNP;

namespace MicroStack
{
    /// <summary>
    /// Transparent ClientSide UPnP Service
    /// </summary>
    public class CpAVTransport
    {
       private Hashtable UnspecifiedTable = Hashtable.Synchronized(new Hashtable());
       internal UPnPService _S;

       public UPnPService GetUPnPService()
       {
            return(_S);
       }
       public static string SERVICE_NAME = "urn:schemas-upnp-org:service:AVTransport:";
       public double VERSION
       {
           get
           {
               return(double.Parse(_S.Version));
           }
       }

       public delegate void StateVariableModifiedHandler_LastChange(CpAVTransport sender, System.String NewValue);
       private WeakEvent OnStateVariable_LastChange_Event = new WeakEvent();
       public event StateVariableModifiedHandler_LastChange OnStateVariable_LastChange
       {
			add{OnStateVariable_LastChange_Event.Register(value);}
			remove{OnStateVariable_LastChange_Event.UnRegister(value);}
       }
       protected void LastChange_ModifiedSink(UPnPStateVariable Var, object NewValue)
       {
            OnStateVariable_LastChange_Event.Fire(this, LastChange);
       }
       public delegate void SubscribeHandler(CpAVTransport sender, bool Success);
       public event SubscribeHandler OnSubscribe;
       public delegate void Delegate_OnResult_GetCurrentTransportActions(CpAVTransport sender, System.UInt32 InstanceID, System.String Actions, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetCurrentTransportActions_Event = new WeakEvent();
       public event Delegate_OnResult_GetCurrentTransportActions OnResult_GetCurrentTransportActions
       {
			add{OnResult_GetCurrentTransportActions_Event.Register(value);}
			remove{OnResult_GetCurrentTransportActions_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetDeviceCapabilities(CpAVTransport sender, System.UInt32 InstanceID, System.String PlayMedia, System.String RecMedia, System.String RecQualityModes, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetDeviceCapabilities_Event = new WeakEvent();
       public event Delegate_OnResult_GetDeviceCapabilities OnResult_GetDeviceCapabilities
       {
			add{OnResult_GetDeviceCapabilities_Event.Register(value);}
			remove{OnResult_GetDeviceCapabilities_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetMediaInfo(CpAVTransport sender, System.UInt32 InstanceID, System.UInt32 NrTracks, System.String MediaDuration, System.String CurrentURI, System.String CurrentURIMetaData, System.String NextURI, System.String NextURIMetaData, Enum_PlaybackStorageMedium PlayMedium, Enum_RecordStorageMedium RecordMedium, Enum_RecordMediumWriteStatus WriteStatus, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetMediaInfo_Event = new WeakEvent();
       public event Delegate_OnResult_GetMediaInfo OnResult_GetMediaInfo
       {
			add{OnResult_GetMediaInfo_Event.Register(value);}
			remove{OnResult_GetMediaInfo_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetPositionInfo(CpAVTransport sender, System.UInt32 InstanceID, System.UInt32 Track, System.String TrackDuration, System.String TrackMetaData, System.String TrackURI, System.String RelTime, System.String AbsTime, System.Int32 RelCount, System.Int32 AbsCount, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetPositionInfo_Event = new WeakEvent();
       public event Delegate_OnResult_GetPositionInfo OnResult_GetPositionInfo
       {
			add{OnResult_GetPositionInfo_Event.Register(value);}
			remove{OnResult_GetPositionInfo_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetTransportInfo(CpAVTransport sender, System.UInt32 InstanceID, Enum_TransportState CurrentTransportState, Enum_TransportStatus CurrentTransportStatus, Enum_TransportPlaySpeed CurrentSpeed, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetTransportInfo_Event = new WeakEvent();
       public event Delegate_OnResult_GetTransportInfo OnResult_GetTransportInfo
       {
			add{OnResult_GetTransportInfo_Event.Register(value);}
			remove{OnResult_GetTransportInfo_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_GetTransportSettings(CpAVTransport sender, System.UInt32 InstanceID, Enum_CurrentPlayMode PlayMode, Enum_CurrentRecordQualityMode RecQualityMode, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_GetTransportSettings_Event = new WeakEvent();
       public event Delegate_OnResult_GetTransportSettings OnResult_GetTransportSettings
       {
			add{OnResult_GetTransportSettings_Event.Register(value);}
			remove{OnResult_GetTransportSettings_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Next(CpAVTransport sender, System.UInt32 InstanceID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Next_Event = new WeakEvent();
       public event Delegate_OnResult_Next OnResult_Next
       {
			add{OnResult_Next_Event.Register(value);}
			remove{OnResult_Next_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Pause(CpAVTransport sender, System.UInt32 InstanceID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Pause_Event = new WeakEvent();
       public event Delegate_OnResult_Pause OnResult_Pause
       {
			add{OnResult_Pause_Event.Register(value);}
			remove{OnResult_Pause_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Play(CpAVTransport sender, System.UInt32 InstanceID, Enum_TransportPlaySpeed Speed, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Play_Event = new WeakEvent();
       public event Delegate_OnResult_Play OnResult_Play
       {
			add{OnResult_Play_Event.Register(value);}
			remove{OnResult_Play_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Previous(CpAVTransport sender, System.UInt32 InstanceID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Previous_Event = new WeakEvent();
       public event Delegate_OnResult_Previous OnResult_Previous
       {
			add{OnResult_Previous_Event.Register(value);}
			remove{OnResult_Previous_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Seek(CpAVTransport sender, System.UInt32 InstanceID, Enum_A_ARG_TYPE_SeekMode Unit, System.String Target, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Seek_Event = new WeakEvent();
       public event Delegate_OnResult_Seek OnResult_Seek
       {
			add{OnResult_Seek_Event.Register(value);}
			remove{OnResult_Seek_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_SetAVTransportURI(CpAVTransport sender, System.UInt32 InstanceID, System.String CurrentURI, System.String CurrentURIMetaData, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_SetAVTransportURI_Event = new WeakEvent();
       public event Delegate_OnResult_SetAVTransportURI OnResult_SetAVTransportURI
       {
			add{OnResult_SetAVTransportURI_Event.Register(value);}
			remove{OnResult_SetAVTransportURI_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_SetPlayMode(CpAVTransport sender, System.UInt32 InstanceID, Enum_CurrentPlayMode NewPlayMode, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_SetPlayMode_Event = new WeakEvent();
       public event Delegate_OnResult_SetPlayMode OnResult_SetPlayMode
       {
			add{OnResult_SetPlayMode_Event.Register(value);}
			remove{OnResult_SetPlayMode_Event.UnRegister(value);}
       }
       public delegate void Delegate_OnResult_Stop(CpAVTransport sender, System.UInt32 InstanceID, UPnPInvokeException e, object _Tag);
       private WeakEvent OnResult_Stop_Event = new WeakEvent();
       public event Delegate_OnResult_Stop OnResult_Stop
       {
			add{OnResult_Stop_Event.Register(value);}
			remove{OnResult_Stop_Event.UnRegister(value);}
       }

        public CpAVTransport(UPnPService s)
        {
            _S = s;
            _S.OnSubscribe += new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            if(HasStateVariable_LastChange) _S.GetStateVariableObject("LastChange").OnModified += new UPnPStateVariable.ModifiedHandler(LastChange_ModifiedSink);
        }
        public void Dispose()
        {
            _S.OnSubscribe -= new UPnPService.UPnPEventSubscribeHandler(_subscribe_sink);
            OnSubscribe = null;
            if(HasStateVariable_LastChange) _S.GetStateVariableObject("LastChange").OnModified -= new UPnPStateVariable.ModifiedHandler(LastChange_ModifiedSink);
        }
        public void _subscribe(int Timeout)
        {
            _S.Subscribe(Timeout, null);
        }
        protected void _subscribe_sink(UPnPService sender, bool OK)
        {
            if(OnSubscribe!=null)
            {
                OnSubscribe(this, OK);
            }
        }
        public void SetUnspecifiedValue(string EnumType, string val)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            UnspecifiedTable[hash] = val;
        }
        public string GetUnspecifiedValue(string EnumType)
        {
            string hash = Thread.CurrentThread.GetHashCode().ToString() + ":" + EnumType;
            if(UnspecifiedTable.ContainsKey(hash)==false)
            {
               return("");
            }
            string RetVal = (string)UnspecifiedTable[hash];
            return(RetVal);
        }
        public string[] Values_TransportState
        {
            get
            {
                UPnPStateVariable sv = _S.GetStateVariableObject("TransportState");
                return(sv.AllowedStringValues);
            }
        }
        public string Enum_TransportState_ToString(Enum_TransportState en)
        {
            string RetVal = "";
            switch(en)
            {
                case Enum_TransportState.STOPPED:
                    RetVal = "STOPPED";
                    break;
                case Enum_TransportState.PAUSED_PLAYBACK:
                    RetVal = "PAUSED_PLAYBACK";
                    break;
                case Enum_TransportState.PAUSED_RECORDING:
                    RetVal = "PAUSED_RECORDING";
                    break;
                case Enum_TransportState.PLAYING:
                    RetVal = "PLAYING";
                    break;
                case Enum_TransportState.RECORDING:
                    RetVal = "RECORDING";
                    break;
                case Enum_TransportState.TRANSITIONING:
                    RetVal = "TRANSITIONING";
                    break;
                case Enum_TransportState.NO_MEDIA_PRESENT:
                    RetVal = "NO_MEDIA_PRESENT";
                    break;
                case Enum_TransportState._UNSPECIFIED_:
                    RetVal = GetUnspecifiedValue("Enum_TransportState");
                    break;
            }
            return(RetVal);
        }
        public enum Enum_TransportState
        {
            _UNSPECIFIED_,
            STOPPED,
            PAUSED_PLAYBACK,
            PAUSED_RECORDING,
            PLAYING,
            RECORDING,
            TRANSITIONING,
            NO_MEDIA_PRESENT,
        }
        public Enum_TransportState TransportState
        {
            get
            {
               Enum_TransportState RetVal = 0;
               string v = (string)_S.GetStateVariable("TransportState");
               switch(v)
               {
                  case "STOPPED":
                     RetVal = Enum_TransportState.STOPPED;
                     break;
                  case "PAUSED_PLAYBACK":
                     RetVal = Enum_TransportState.PAUSED_PLAYBACK;
                     break;
                  case "PAUSED_RECORDING":
                     RetVal = Enum_TransportState.PAUSED_RECORDING;
                     break;
                  case "PLAYING":
                     RetVal = Enum_TransportState.PLAYING;
                     break;
                  case "RECORDING":
                     RetVal = Enum_TransportState.RECORDING;
                     break;
                  case "TRANSITIONING":
                     RetVal = Enum_TransportState.TRANSITIONING;
                     break;
                  case "NO_MEDIA_PRESENT":
                     RetVal = Enum_TransportState.NO_MEDIA_PRESENT;
                     break;
                  default:
                     RetVal = Enum_TransportState._UNSPECIFIED_;
                     SetUnspecifiedValue("Enum_TransportState", v);
                     break;
               }
               return(RetVal);
           }
        }
        public string[] Values_RecordMediumWriteStatus
        {
            get
            {
                UPnPStateVariable sv = _S.GetStateVariableObject("RecordMediumWriteStatus");
                return(sv.AllowedStringValues);
            }
        }
        public string Enum_RecordMediumWriteStatus_ToString(Enum_RecordMediumWriteStatus en)
        {
            string RetVal = "";
            switch(en)
            {
                case Enum_RecordMediumWriteStatus.WRITABLE:
                    RetVal = "WRITABLE";
                    break;
                case Enum_RecordMediumWriteStatus.PROTECTED:
                    RetVal = "PROTECTED";
                    break;
                case Enum_RecordMediumWriteStatus.NOT_WRITABLE:
                    RetVal = "NOT_WRITABLE";
                    break;
                case Enum_RecordMediumWriteStatus.UNKNOWN:
                    RetVal = "UNKNOWN";
                    break;
                case Enum_RecordMediumWriteStatus.NOT_IMPLEMENTED:
                    RetVal = "NOT_IMPLEMENTED";
                    break;
                case Enum_RecordMediumWriteStatus._UNSPECIFIED_:
                    RetVal = GetUnspecifiedValue("Enum_RecordMediumWriteStatus");
                    break;
            }
            return(RetVal);
        }
        public enum Enum_RecordMediumWriteStatus
        {
            _UNSPECIFIED_,
            WRITABLE,
            PROTECTED,
            NOT_WRITABLE,
            UNKNOWN,
            NOT_IMPLEMENTED,
        }
        public Enum_RecordMediumWriteStatus RecordMediumWriteStatus
        {
            get
            {
               Enum_RecordMediumWriteStatus RetVal = 0;
               string v = (string)_S.GetStateVariable("RecordMediumWriteStatus");
               switch(v)
               {
                  case "WRITABLE":
                     RetVal = Enum_RecordMediumWriteStatus.WRITABLE;
                     break;
                  case "PROTECTED":
                     RetVal = Enum_RecordMediumWriteStatus.PROTECTED;
                     break;
                  case "NOT_WRITABLE":
                     RetVal = Enum_RecordMediumWriteStatus.NOT_WRITABLE;
                     break;
                  case "UNKNOWN":
                     RetVal = Enum_RecordMediumWriteStatus.UNKNOWN;
                     break;
                  case "NOT_IMPLEMENTED":
                     RetVal = Enum_RecordMediumWriteStatus.NOT_IMPLEMENTED;
                     break;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?