/// <summary> /// Add event handler. /// </summary> /// <param name="handler"></param> public void AddEventHandler(IGXEventHandler handler, object clients) { lock (Handlers) { if (!Handlers.ContainsKey(handler)) { Handlers.Add(handler, clients); } } }
/// <summary> /// Remove event handler. /// </summary> /// <param name="handler"></param> public void RemoveEventHandler(IGXEventHandler handler) { lock(Handlers) { if (Handlers.ContainsKey(handler)) { Handlers.Remove(handler); } } }
/// <summary> /// Remove event handler. /// </summary> /// <param name="handler"></param> public void RemoveEventHandler(IGXEventHandler handler) { m_Server.RemoveEventHandler(handler); }
/// <summary> /// Assigns new media, after media settings are changed. /// </summary> /// <remarks> /// The media must be created before calling this method. /// See methods EnumMedias and SelectMedia. /// Active media is implemented with GetCurrentMedia method. /// AssignMedia closes the active media and selects a new one. /// The protocol settings do not change, when AssignMedia is called. /// After AssignMedia is called, the media must be opened with MediaOpen method. /// The new media is selected with the SelectMedia method. /// </remarks> /// <param name="media">New media component.</param> /// <seealso cref="SelectMedia">SelectMedia</seealso> /// <seealso cref="Properties">Properties</seealso> public void AssignMedia(Gurux.Common.IGXMedia media) { IGXMediaContainer tmp = media as IGXMediaContainer; if (tmp != null) { media = (media as IGXMediaContainer).Media; media.MediaContainer = tmp; } CloseServer(); m_MediaType = ""; if (media != null) { if (media != null) { m_MediaType = media.MediaType; m_MediaSettings = media.Settings; } if (m_MediaSettings != null) { m_MediaSettings = m_MediaSettings.Replace("\r\n", ""); } NotifyLoad(); //Notify that media is changed. NotifyMediaStateChange(MediaState.Changed); m_Server = GXServer.Instance(media, this); //If handler is given before server is up. if (Handler != null) { m_Server.AddEventHandler(Handler, Clients); Handler = null; Clients = null; } //Notify is media is already open. if (media.IsOpen) { NotifyMediaStateChange(MediaState.Open); } } }
/// <summary> /// Add event handler. /// </summary> /// <param name="handler"></param> /// <param name="clients">Collection of clients that this handler can handle</param> public void AddEventHandler(IGXEventHandler handler, object clients) { if (m_Server == null) { Handler = handler; Clients = clients; } else { m_Server.AddEventHandler(handler, clients); } }