/// <summary> /// Executes when the ConnectionManager service returns on the subscribe status. /// </summary> /// <param name="sender"></param> /// <param name="success"></param> private void Sink_OnCmServiceSubscribe(CpConnectionManager sender, bool success) { sender.OnSubscribe -= new CpConnectionManager.SubscribeHandler(this.Sink_OnCmServiceSubscribe); string udn = sender.GetUPnPService().ParentDevice.UniqueDeviceName; lock (LockHashes) { InitStatus status = (InitStatus) UdnToInitStatus[udn]; if (status != null) { status.ZeroMeansDone--; status.SubcribeCM = success; this.ProcessInitStatusChange(udn); } } }
/// <summary> /// Executes when the ConnectionManager events for the first time. /// </summary> /// <param name="sender"></param> /// <param name="newVal"></param> private void Sink_OnCmEvented(CpConnectionManager sender, string newVal) { sender.OnStateVariable_SourceProtocolInfo -= new CpConnectionManager.StateVariableModifiedHandler_SourceProtocolInfo(this.Sink_OnCmEvented); string udn = sender.GetUPnPService().ParentDevice.UniqueDeviceName; lock (LockHashes) { InitStatus status = (InitStatus) UdnToInitStatus[udn]; if (status != null) { status.ZeroMeansDone--; status.EventedCM = true; this.ProcessInitStatusChange(udn); } } }