public UPnP_SinkFunctions(CpAVTransport av, CpConnectionManager cm, CpRenderingControl rc)
        {
            InstanceID = 0;
            _AVTransport = av;
            _ConnectionManager = cm;
            _RenderingControl = rc;
            _channel = "1";
            _speed = "1";

            _RenderingControl.OnResult_GetVolume += RenderingControlOnOnResultGetVolume;
            _ConnectionManager.OnResult_GetIPAddress += ConnectionManagerOnOnResultGetIpAddress;
            _RenderingControl.OnResult_GetPosition += RenderingControlOnOnResultGetPosition;

            _AVTransport.OnStateVariable_TransportState += AvTransportOnOnStateVariableTransportState;
            _AVTransport._subscribe(30);

            Timer subscribeTimer = new Timer();
            subscribeTimer.Elapsed += new ElapsedEventHandler(timerEventFunc);
            subscribeTimer.Interval = 30000;
            subscribeTimer.Enabled = true;
        }
        private void ConnectionManagerOnOnResultGetIpAddress(CpConnectionManager sender, string ipAddress, UPnPInvokeException upnPInvokeException, object tag)
        {
            EventArgsContainer<string> argsContainer = new EventArgsContainer<string>(ipAddress);

            getIPEvent(this, argsContainer);
        }
 /// <summary>
 /// Event that is fired when the IPAddress is returned from the upnp sink after a GetIPAddress call
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="ipAddress"></param>
 /// <param name="upnPInvokeException"></param>
 /// <param name="tag"></param>
 private void ConnectionManagerOnOnResultGetIpAddress(CpConnectionManager sender, string ipAddress, UPnPInvokeException upnPInvokeException, object tag)
 {
     getIPEvent(this, ipAddress);
 }