コード例 #1
0
 public UPnPServerWatcher()
 {
   CPData cpData = new CPData();
   _networkTracker = new UPnPNetworkTracker(cpData);
   _networkTracker.RootDeviceAdded += OnUPnPRootDeviceAdded;
   _networkTracker.RootDeviceRemoved += OnUPnPRootDeviceRemoved;
 }
コード例 #2
0
 public UPnPServerControlPoint()
 {
   CPData cpData = new CPData();
   _networkTracker = new UPnPNetworkTracker(cpData);
   _controlPoint = new UPnPControlPoint(_networkTracker);
   _networkTracker.RootDeviceAdded += OnUPnPRootDeviceAdded;
   _networkTracker.RootDeviceRemoved += OnUPnPRootDeviceRemoved;
 }
コード例 #3
0
 public UPnPClientControlPoint(string homeServerSystemId)
 {
   _homeServerSystemId = homeServerSystemId;
   CPData cpData = new CPData();
   _networkTracker = new UPnPNetworkTracker(cpData);
   _controlPoint = new UPnPControlPoint(_networkTracker);
   _networkTracker.RootDeviceAdded += OnUPnPRootDeviceAdded;
 }
コード例 #4
0
 /// <summary>
 /// Creates a new <see cref="DeviceConnection"/> to the UPnP device contained in the given
 /// <paramref name="rootDescriptor"/> with the given <paramref name="deviceUuid"/>.
 /// </summary>
 /// <param name="controlPoint">Control point hosting the new device connection instance.</param>
 /// <param name="rootDescriptor">Root descriptor containing the description of the UPnP device to connect.</param>
 /// <param name="deviceUuid">UUID of the UPnP device to connect.</param>
 /// <param name="cpData">Shared control point data structure.</param>
 /// <param name="dataTypeResolver">Delegate method to resolve extended datatypes.</param>
 public DeviceConnection(UPnPControlPoint controlPoint, RootDescriptor rootDescriptor, string deviceUuid,
                         CPData cpData, DataTypeResolverDlgt dataTypeResolver)
 {
     _controlPoint         = controlPoint;
     _cpData               = cpData;
     _rootDescriptor       = rootDescriptor;
     _deviceUUID           = deviceUuid;
     _genaClientController = new GENAClientController(_cpData, this, rootDescriptor.SSDPRootEntry.PreferredLink.Endpoint, rootDescriptor.SSDPRootEntry.UPnPVersion);
     BuildDeviceProxy(rootDescriptor, deviceUuid, dataTypeResolver);
     _genaClientController.Start();
 }
コード例 #5
0
ファイル: FormDeviceSpy.cs プロジェクト: davinx/MediaPortal-2
 public FormDeviceSpy()
 {
   InitializeComponent();
   CPData cpData = new CPData();
   _networkTracker = new UPnPNetworkTracker(cpData);
 }
コード例 #6
0
 /// <summary>
 /// Creates a new <see cref="DeviceConnection"/> to the UPnP device contained in the given
 /// <paramref name="rootDescriptor"/> with the given <paramref name="deviceUuid"/>.
 /// </summary>
 /// <param name="controlPoint">Control point hosting the new device connection instance.</param>
 /// <param name="rootDescriptor">Root descriptor containing the description of the UPnP device to connect.</param>
 /// <param name="deviceUuid">UUID of the UPnP device to connect.</param>
 /// <param name="cpData">Shared control point data structure.</param>
 /// <param name="dataTypeResolver">Delegate method to resolve extended datatypes.</param>
 /// <param name="useHttpKeepAlive"><c>True</c> to set the HTTP keep-alive header in action requests sent over the connection, otherwise <c>false</c>.</param>
 public DeviceConnection(UPnPControlPoint controlPoint, RootDescriptor rootDescriptor, string deviceUuid,
     CPData cpData, DataTypeResolverDlgt dataTypeResolver, bool useHttpKeepAlive = true)
 {
   _controlPoint = controlPoint;
   _cpData = cpData;
   _rootDescriptor = rootDescriptor;
   _deviceUUID = deviceUuid;
   _useHttpKeepAlive = useHttpKeepAlive;
   _genaClientController = new GENAClientController(_cpData, this, rootDescriptor.SSDPRootEntry.PreferredLink.Endpoint, rootDescriptor.SSDPRootEntry.UPnPVersion);
   BuildDeviceProxy(rootDescriptor, deviceUuid, dataTypeResolver);
   _genaClientController.Start();
 }
コード例 #7
0
 /// <summary>
 /// Creates a new instance of <see cref="UPnPControlPoint"/>.
 /// </summary>
 /// <remarks>
 /// The specified <paramref name="networkTracker"/> must be controlled independently from this control point, i.e.
 /// it must be explicitly started and stopped. See the docs of this class for an example code sequence.
 /// </remarks>
 /// <param name="networkTracker">Network tracker instance used to collect UPnP network device descriptions.</param>
 public UPnPControlPoint(UPnPNetworkTracker networkTracker)
 {
   _cpData = networkTracker.SharedControlPointData;
   _networkTracker = networkTracker;
 }
コード例 #8
0
 /// <summary>
 /// Creates a new UPnP network tracker instance.
 /// </summary>
 /// <param name="cpData">Shared control point data instance.</param>
 public UPnPNetworkTracker(CPData cpData)
 {
     _cpData = cpData;
 }
コード例 #9
0
 /// <summary>
 /// Creates a new instance of <see cref="UPnPControlPoint"/>.
 /// </summary>
 /// <remarks>
 /// The specified <paramref name="networkTracker"/> must be controlled independently from this control point, i.e.
 /// it must be explicitly started and stopped. See the docs of this class for an example code sequence.
 /// </remarks>
 /// <param name="networkTracker">Network tracker instance used to collect UPnP network device descriptions.</param>
 public UPnPControlPoint(UPnPNetworkTracker networkTracker)
 {
     _cpData         = networkTracker.SharedControlPointData;
     _networkTracker = networkTracker;
 }
コード例 #10
0
    /// <summary>
    /// Constructor.
    /// </summary>
    /// <param name="listener">A listener that wishes to be notified about device events.</param>
    public DeviceDetector(IDeviceEventListener listener)
    {
      _deviceEventListener = listener;

      // Setup UPnP device detection.
      UPnPConfiguration.LOGGER = new Tve3Logger();
      _upnpControlPointData = new CPData();
      _upnpAgent = new UPnPNetworkTracker(_upnpControlPointData);
      _upnpAgent.RootDeviceAdded += OnUpnpRootDeviceAdded;
      _upnpAgent.RootDeviceRemoved += OnUpnpRootDeviceRemoved;
      _upnpControlPoint = new UPnPControlPoint(_upnpAgent);

      // Setup other (BDA, PBDA, WDM) device detection.
      try
      {
        InitBdaDetectionGraph();
      }
      catch (Exception ex)
      {
        Log.Log.Error("Failed to initialise the BDA device detection graph!\r\n{0}", ex);
        throw;
      }
      _systemDeviceChangeEventWatcher = new ManagementEventWatcher();
      // EventType 2 and 3 are device arrival and removal. See:
      // http://msdn.microsoft.com/en-us/library/windows/desktop/aa394124%28v=vs.85%29.aspx
      _systemDeviceChangeEventWatcher.Query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 OR EventType = 3");
      _systemDeviceChangeEventWatcher.EventArrived += OnSystemDeviceConnectedOrDisconnected;
    }
コード例 #11
0
 /// <summary>
 /// Creates a new UPnP network tracker instance.
 /// </summary>
 /// <param name="cpData">Shared control point data instance.</param>
 public UPnPNetworkTracker(CPData cpData)
 {
   _cpData = cpData;
 }