private void OnSubscriptionsUpdated()
        {
            List <Subscription> SubscriptionList = new List <Subscription>();

            Array.ForEach(SSDPs, SSDPComponent => SubscriptionList.Add(SSDPComponent.SearchSubscription));
            Subscriptions = SubscriptionList.ToArray();
            SubscriptionsUpdated?.Invoke();
        }
        private void buttonSave_Click(object sender, EventArgs e)
        {
            List <Subscription> resultPlaylists = listBoxPlaylists.Items.Cast <Subscription>().ToList();

            SubscriptionsUpdated.Invoke(resultPlaylists);

            this.Close();
        }
Example #3
0
        private void OnSubscriptionsUpdated()
        {
            List <Subscription> SubscriptionList = new List <Subscription>();

            Array.ForEach(SocketClients, s => SubscriptionList.AddRange(s.WriteSubscriptions));
            Array.ForEach(SocketEndpoints, s => SubscriptionList.AddRange(s.WriteSubscriptions));
            Subscriptions = SubscriptionList.ToArray();
            SubscriptionsUpdated?.Invoke();
        }
        private void ConstructSubscriptions()
        {
            var SubscriptionsList = new List <Subscription>();

            SubscriptionsList.Add(Discovery.Properties.DiscoverySubscription);
            Array.ForEach(Devices, Device => SubscriptionsList.AddRange(Device.Subscriptions));
            Subscriptions = SubscriptionsList.ToArray();
            SubscriptionsUpdated?.Invoke(this, Subscriptions);
        }
Example #5
0
        private void ConstructSubscriptions()
        {
            var list = new List <Subscription>();

            list.Add(ConnectButtonSubscription);
            list.Add(RestartButtonSubscription);
            list.AddRange(Outputs.SelectMany(o => o.Subscriptions));
            m_Subscriptions = list.ToArray();
            SubscriptionsUpdated?.Invoke(this, EventArgs.Empty);
        }
        internal void RemoveSubcription(string theSubcriptionGuid)
        {
            Subscription Search = WriteSubscriptions.FirstOrDefault(s => s.Guid == theSubcriptionGuid);

            if (Search != null)
            {
                var list = WriteSubscriptions.ToList();
                list.Remove(Search);
                WriteSubscriptions = list.ToArray();

                SubscriptionsUpdated?.Invoke();
            }
        }
Example #7
0
        public void UpdateProperties(SSDPProperties theProperties)
        {
            bool EventUpdatedFlag        = false;
            bool SubscriptionUpdatedFlag = false;

            if (theProperties.DiscoveryEvent.Id != DiscoveryEvent.Id)
            {
                DiscoveryEvent.Id = theProperties.DiscoveryEvent.Id;
                EventUpdatedFlag  = true;
            }

            if (theProperties.DiscoveryEvent.Description != DiscoveryEvent.Description)
            {
                DiscoveryEvent.Description = theProperties.DiscoveryEvent.Description;
                EventUpdatedFlag           = true;
            }

            if (theProperties.DiscoveryTarget != DiscoveryTarget)
            {
                DiscoveryTarget = theProperties.DiscoveryTarget;
            }

            if (theProperties.SearchSubscription != null && theProperties.SearchSubscription.Id != SearchSubscription.Id)
            {
                SearchSubscription.Id   = theProperties.SearchSubscription.Id;
                SubscriptionUpdatedFlag = true;
            }



            ///
            /// ...
            ///

            if (EventUpdatedFlag)
            {
                EventsUpdated?.Invoke();
            }

            if (SubscriptionUpdatedFlag)
            {
                SubscriptionsUpdated?.Invoke();
            }
        }
        internal void UpdateProperties(SocketEndpointProperties theNewProperties)
        {
            bool SubscriptionsUpdatedFlag = false;
            bool EventsUpdatedFlag        = false;
            bool ForceInitialise          = false;

            if (theNewProperties.Guid == null || theNewProperties.Guid != Guid)
            {
                return;
            }

            if (theNewProperties.ReadEvent != null)
            {
                if (Event.Merge(ReadEvent, theNewProperties.ReadEvent))
                {
                    EventsUpdatedFlag = true;
                }
            }

            if (theNewProperties.IPAddress != null && theNewProperties.IPAddress != IPAddress)
            {
                IPAddress       = theNewProperties.IPAddress;
                ForceInitialise = true;
            }

            if (theNewProperties.Port != -1 && theNewProperties.Port != Port)
            {
                Port            = theNewProperties.Port;
                ForceInitialise = true;
            }

            if (theNewProperties.Backlog != -1 && theNewProperties.Backlog != Backlog)
            {
                Backlog         = theNewProperties.Backlog;
                ForceInitialise = true;
            }

            if (theNewProperties.LoggingLevel != -1 && theNewProperties.LoggingLevel != LoggingLevel)
            {
                LoggingLevel = theNewProperties.LoggingLevel;
            }

            if (theNewProperties.NICIndex != -1 && theNewProperties.NICIndex != NICIndex)
            {
                NICIndex = theNewProperties.NICIndex;
            }

            int NICIndexSearch = LocalIPAddressList.GetIndex(IPAddress);

            if (NICIndexSearch != -1)
            {
                NICIndex = NICIndexSearch;
            }

            if (theNewProperties.WriteSubscriptions != null)
            {
                List <Subscription> NewSubscriptions = new List <Subscription>();

                foreach (Subscription Subscription in theNewProperties.WriteSubscriptions)
                {
                    Subscription Search = WriteSubscriptions.FirstOrDefault(ne => ne.Guid == Subscription.Guid);

                    if (Search == null)
                    {
                        NewSubscriptions.Add(Subscription);
                    }
                    else
                    {
                        if (Subscription.Merge(Search, Subscription))
                        {
                            SubscriptionsUpdatedFlag = true;
                        }
                    }
                }

                if (NewSubscriptions.Count() > 0)
                {
                    SubscriptionsUpdatedFlag = true;
                }

                foreach (Subscription Subscription in NewSubscriptions)
                {
                    Subscription.Guid   = System.Guid.NewGuid().ToString();
                    Subscription.Event += m_Listener.OnSubscriptionEvent;
                }

                List <Subscription> List = WriteSubscriptions == null ? new List <Subscription>() : WriteSubscriptions.ToList();

                List.AddRange(NewSubscriptions);
                WriteSubscriptions = List.ToArray();
            }

            if (EventsUpdatedFlag)
            {
                EventsUpdated?.Invoke();
            }

            if (SubscriptionsUpdatedFlag)
            {
                SubscriptionsUpdated?.Invoke();
            }

            if (ForceInitialise)
            {
                InitialiseSetup();
            }
        }
Example #9
0
        internal void UpdateProperties(SocketClientProperties theNewProperties)
        {
            bool SubscriptionsUpdatedFlag = false;
            bool EventsUpdatedFlag        = false;

            bool ForceInitialise = false;

            if (theNewProperties.Guid == null || theNewProperties.Guid != Guid)
            {
                return;
            }

            if (theNewProperties.ReadEvent != null)
            {
                if (Event.Merge(ReadEvent, theNewProperties.ReadEvent))
                {
                    EventsUpdatedFlag = true;
                }
            }

            if (theNewProperties.HostName != null && theNewProperties.HostName != HostName)
            {
                HostName        = theNewProperties.HostName;
                ForceInitialise = true;
            }
            if (theNewProperties.Port != -1 && theNewProperties.Port != Port)
            {
                Port            = theNewProperties.Port;
                ForceInitialise = true;
            }

            if (theNewProperties.LoggingLevel != -1 && theNewProperties.LoggingLevel != LoggingLevel)
            {
                LoggingLevel = theNewProperties.LoggingLevel;
            }

            if (theNewProperties.WriteSubscriptions != null)
            {
                List <Subscription> NewSubscriptions = new List <Subscription>();

                foreach (Subscription Subscription in theNewProperties.WriteSubscriptions)
                {
                    Subscription Search = WriteSubscriptions.FirstOrDefault(ne => ne.Guid == Subscription.Guid);

                    if (Search == null)
                    {
                        NewSubscriptions.Add(Subscription);
                    }
                    else
                    {
                        if (Subscription.Merge(Search, Subscription))
                        {
                            SubscriptionsUpdatedFlag = true;
                        }
                    }
                }

                if (NewSubscriptions.Count() > 0)
                {
                    SubscriptionsUpdatedFlag = true;
                }

                foreach (Subscription Subscription in NewSubscriptions)
                {
                    Subscription.Guid   = System.Guid.NewGuid().ToString();
                    Subscription.Event += OnSubscriptionEvent;
                }

                List <Subscription> List = WriteSubscriptions == null ? new List <Subscription>() : WriteSubscriptions.ToList();

                List.AddRange(NewSubscriptions);
                WriteSubscriptions = List.ToArray();
            }

            if (EventsUpdatedFlag)
            {
                EventsUpdated?.Invoke();
            }

            if (SubscriptionsUpdatedFlag)
            {
                SubscriptionsUpdated?.Invoke();
            }

            if (ForceInitialise)
            {
                InitialiseSetup();
            }
        }