示例#1
0
 public void ClientDataChanged(bool listenAgainAfterDisconnect)
 {
     if (m_Network.ClientConnected)
     {
         Messages.AddMessage(Ares.Players.MessageType.Info, String.Format(Resources.GetString(Resource.String.connected_with), m_Network.ClientName));
         m_Network.InformClientOfEverything(m_PlayingControl.GlobalVolume, m_PlayingControl.MusicVolume,
                                            m_PlayingControl.SoundVolume, m_PlayingControl.CurrentMode, MusicInfo.GetInfo(m_PlayingControl.CurrentMusicElement),
                                            m_PlayingControl.CurrentModeElements, m_Project,
                                            m_PlayingControl.CurrentMusicList, m_PlayingControl.MusicRepeat,
                                            m_TagLanguageId, new System.Collections.Generic.List <int>(m_PlayingControl.GetCurrentMusicTags()), m_PlayingControl.GetMusicTagCategoriesCombination(),
                                            Settings.Settings.Instance.TagMusicFadeTime, Settings.Settings.Instance.TagMusicFadeOnlyOnChange,
                                            Settings.Settings.Instance.PlayMusicOnAllSpeakers,
                                            Settings.Settings.Instance.ButtonMusicFadeMode, Settings.Settings.Instance.ButtonMusicFadeTime);
         UpdateNotification(false);
         InformActivity();
     }
     else
     {
         Messages.AddMessage(Ares.Players.MessageType.Info, Resources.GetString(Resource.String.not_connected));
         if (listenAgainAfterDisconnect)
         {
             m_Network.StartUdpBroadcast();
             UpdateNotification(false);
             InformActivity();
         }
     }
 }
示例#2
0
        private void Initialize()
        {
            m_PlayingControl = new PlayingControl();
            ReadSettings();
            Settings.Settings.Instance.MessageFilterLevel = 1;
            Messages.Instance.MessageReceived            += new MessageReceivedHandler(MessageReceived);
            if (Ares.Settings.Settings.Instance.RecentFiles.GetFiles().Count > 0)
            {
                OpenProject(Ares.Settings.FolderFactory.CreateFile(Ares.Settings.Settings.Instance.RecentFiles.GetFiles()[0].FilePath), false);
            }
            bool   foundAddress     = false;
            bool   foundIPv4Address = false;
            String ipv4Address      = String.Empty;
            String ipAddress        = String.Empty;

            foreach (System.Net.IPAddress address in System.Net.Dns.GetHostAddresses(String.Empty))
            {
                //if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
                //    continue;
                if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    foundIPv4Address = true;
                    ipv4Address      = address.ToString();
                }
                String s = address.ToString();
                if (s == Settings.Settings.Instance.IPAddress)
                {
                    foundAddress = true;
                    ipAddress    = s;
                }
                else if (!foundAddress)
                {
                    ipAddress = s;                     // take first one
                }
            }
            if (!foundAddress && foundIPv4Address)
            {
                ipAddress = ipv4Address;                 // prefer v4
            }
            if (!String.IsNullOrEmpty(ipAddress))
            {
                Settings.Settings.Instance.IPAddress = ipAddress;
            }
            else
            {
                Toast.MakeText(this, Resource.String.no_ip_address, ToastLength.Long).Show();
                return;
            }
            m_Network = new Networks(this, Settings.Settings.Instance.UseLegacyNetwork, Settings.Settings.Instance.UseWebNetwork);
            m_Network.InitConnectionData();
            m_Network.StartUdpBroadcast();
            m_BroadcastTimer          = new System.Timers.Timer(50);
            m_BroadcastTimer.Elapsed += new System.Timers.ElapsedEventHandler(m_BroadcastTimer_Elapsed);
            m_BroadcastTimer.Enabled  = true;
            m_Network.ListenForClient();
        }
示例#3
0
 public void ClientDataChanged(bool listenAgainAfterDisconnect)
 {
     if (m_Network.ClientConnected)
     {
         Messages.AddMessage(MessageType.Info, StringResources.ConnectedWith + m_Network.ClientName);
         m_Network.InformClientOfEverything(m_PlayingControl.GlobalVolume, m_PlayingControl.MusicVolume,
                                            m_PlayingControl.SoundVolume, m_PlayingControl.CurrentMode, MusicInfo.GetInfo(m_PlayingControl.CurrentMusicElement),
                                            m_PlayingControl.CurrentModeElements, m_Project,
                                            m_PlayingControl.CurrentMusicList, m_PlayingControl.MusicRepeat,
                                            m_TagLanguageId, new List <int>(m_PlayingControl.GetCurrentMusicTags()), m_PlayingControl.GetMusicTagCategoriesCombination(),
                                            Settings.Settings.Instance.TagMusicFadeTime, Settings.Settings.Instance.TagMusicFadeOnlyOnChange,
                                            Settings.Settings.Instance.PlayMusicOnAllSpeakers,
                                            Settings.Settings.Instance.ButtonMusicFadeMode, Settings.Settings.Instance.ButtonMusicFadeTime);
     }
     else
     {
         Messages.AddMessage(MessageType.Info, StringResources.NotConnected);
         if (m_NonInteractiveWaitEvent != null)
         {
             if (!m_IsDaemon)
             {
                 lock (m_LockObject)
                 {
                     m_Shutdown = true;
                 }
                 m_NonInteractiveWaitEvent.Set();
             }
             else if (listenAgainAfterDisconnect)
             {
                 m_Network.StartUdpBroadcast();
             }
         }
         else if (listenAgainAfterDisconnect)
         {
             m_Network.StartUdpBroadcast();
         }
     }
 }
示例#4
0
        private int Initialize(PlayerOptions options)
        {
            m_BasicSettings = new BasicSettings();
            ReadSettings();
            if (options.MessageFilterLevel != -1)
            {
                Settings.Settings.Instance.MessageFilterLevel = options.MessageFilterLevel;
            }
            Messages.Instance.MessageReceived += new MessageReceivedHandler(MessageReceived);
            if (options.UdpPort != -1)
            {
                Settings.Settings.Instance.UdpPort = options.UdpPort;
            }
            if (options.LegacyTcpPort > 0)
            {
                Settings.Settings.Instance.TcpPort          = options.LegacyTcpPort;
                Settings.Settings.Instance.UseLegacyNetwork = true;
            }
            else
            {
                Settings.Settings.Instance.UseLegacyNetwork = (options.LegacyTcpPort != -1);
            }
            if (options.WebTcpPort != -1)
            {
                if (!IsLinux && options.WebTcpPort != Settings.Settings.Instance.WebTcpPort)
                {
                    String args = String.Format("ChangePort {0} {1}", Settings.Settings.Instance.WebTcpPort, options.WebTcpPort);
                    ChangeSecuritySettings(args);
                }
                Settings.Settings.Instance.WebTcpPort    = options.WebTcpPort;
                Settings.Settings.Instance.UseWebNetwork = true;
            }
            else
            {
                Settings.Settings.Instance.UseWebNetwork = false;
            }
            if (options.OutputDevice == 0)
            {
                int outputDevice = Settings.Settings.Instance.OutputDeviceIndex;
                if (outputDevice != -1)
                {
                    try
                    {
                        m_BassInit.SwitchDevice(outputDevice);
                    }
                    catch (Ares.Playing.BassInitException)
                    {
                        Console.WriteLine(StringResources.DeviceInitError);
                    }
                }
            }
            else
            {
                Settings.Settings.Instance.OutputDeviceIndex = options.OutputDevice;
            }
            if (!String.IsNullOrEmpty(options.InitialProject))
            {
                if (options.InitialProject.EndsWith(".apkg", StringComparison.InvariantCultureIgnoreCase))
                {
                    ImportProject(options.InitialProject, false);
                }
                else
                {
                    OpenProject(options.InitialProject, false);
                }
            }
            else if (Ares.Settings.Settings.Instance.RecentFiles.GetFiles().Count > 0)
            {
                OpenProject(Ares.Settings.Settings.Instance.RecentFiles.GetFiles()[0].FilePath, false);
            }
            else
            {
                Console.WriteLine(StringResources.NoOpenedProject);
            }
            bool   foundAddress     = false;
            bool   foundIPv4Address = false;
            String ipv4Address      = String.Empty;
            String ipAddress        = String.Empty;

            foreach (System.Net.IPAddress address in System.Net.Dns.GetHostAddresses(String.Empty))
            {
                //if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
                //    continue;
                if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    foundIPv4Address = true;
                    ipv4Address      = address.ToString();
                }
                String s = address.ToString();
                if (s == Settings.Settings.Instance.IPAddress)
                {
                    foundAddress = true;
                    ipAddress    = s;
                }
                else if (!foundAddress)
                {
                    ipAddress = s; // take first one
                }
            }
            if (!foundAddress && foundIPv4Address)
            {
                ipAddress = ipv4Address; // prefer v4
            }
            if (!String.IsNullOrEmpty(ipAddress))
            {
                Settings.Settings.Instance.IPAddress = ipAddress;
            }
            else
            {
                Console.WriteLine(StringResources.NoIpAddress);
                return(2);
            }
            m_Network = new Networks(this, Settings.Settings.Instance.UseLegacyNetwork, Settings.Settings.Instance.UseWebNetwork);
            m_Network.InitConnectionData();
            m_Network.StartUdpBroadcast();
            m_BroadcastTimer          = new System.Timers.Timer(50);
            m_BroadcastTimer.Elapsed += new System.Timers.ElapsedEventHandler(m_BroadcastTimer_Elapsed);
            m_BroadcastTimer.Enabled  = true;
            m_Network.ListenForClient();
            return(0);
        }