From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 04 十一月 2020 14:58:15 +0800
Subject: [PATCH] 20201104

---
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs |  153 +++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 131 insertions(+), 22 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
index d845d8d..69ebfbe 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
@@ -1,8 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
-using System.Text;
-using HDL_ON.Entity;
 using Shared;
+using HDL_ON.Entity;
 
 namespace HDL_ON.UI.Music
 {
@@ -15,7 +14,80 @@
         static A31MusicModel()
         {
             Refresh();
-            //Type = DeviceType.A31MusicModel;
+        }
+
+        static List<System.Threading.Thread> updataMusicStatesListThread = new List<System.Threading.Thread>();
+        /// <summary>
+        /// 璇诲彇闊充箰鐘舵��
+        /// </summary>
+        public static void ReadMusicStates()
+        {
+            RemoveListThread();
+            if (GetCollection)
+            {
+                for (int i = 0; i < A31MusicModelList.Count; i++)
+                {
+                    var a31player = A31MusicModelList[i];
+                    var musicThread = new System.Threading.Thread(() =>
+                    {
+                        while (true)
+                        {
+                            System.Threading.Thread.Sleep(1000);
+                            if (!a31player.IsOnLine)
+                            {
+                                continue;
+                            }
+                            SendMethod.ReadStatus(a31player);
+                        }
+                    })
+                    { IsBackground = true, Name = "A31" };
+                    musicThread.Start();
+                    updataMusicStatesListThread.Add(musicThread);
+                }
+            }
+        }
+        
+        /// <summary>
+        /// 绉婚櫎涔嬪墠鐨勭嚎绋�
+        /// </summary>
+        public static void RemoveListThread() {
+            for (int i = 0; i < updataMusicStatesListThread.Count;)
+            {
+                try
+                {                    
+                    var thread = updataMusicStatesListThread[i];
+                    if (thread.IsAlive)
+                    {
+                        thread.Abort();
+                    }
+                    updataMusicStatesListThread.Remove(thread);
+                }
+                catch (Exception e)
+                {
+                    MainPage.Log("clearA31Threads error : " + e.Message);
+                }
+                finally
+                {
+                    MainPage.Log("clearA31Threads over");
+                }
+            }
+        }
+        /// <summary>
+        /// 闊充箰鍒楄〃閲屾槸鍚︽湁闊充箰琚敹钘忚繃
+        /// </summary>
+        static bool GetCollection
+        {
+            get
+            {
+                for (int i = 0; i < A31MusicModelList.Count; i++)
+                {
+                    if (A31MusicModelList[i].collection)
+                    {
+                        return true; //鏌ヨ鏄惁鏈夐煶涔愯鏀惰棌杩�
+                    }
+                }
+                return false;
+            }
         }
         /// <summary>
         ///淇濆瓨褰撳墠闊充箰鍒楄〃
@@ -47,7 +119,7 @@
         /// <summary>
         /// 闊充箰鎾斁鍣ㄥ悕绉�
         /// </summary>
-        public string Name=string.Empty;
+        public string Name = string.Empty;
         /// <summary>
         /// 涓婁竴娆℃洿鏂扮殑鏃堕棿
         /// 璁板綍鏁版嵁鍙嶉鐨勬椂闂�(鍥犱负鏈夋椂闂寸綉缁滃樊鏁版嵁涓嶅洖澶嶏紝瀵艰嚧鍒锋柊褰撳墠鎾斁闊充箰鏃堕棿涓嶆纭�)
@@ -67,12 +139,15 @@
         /// <summary>
         /// 鏄惁鏄挱鏀惧櫒鍒楄〃鏈�鍚庝竴涓�(true)
         /// </summary>
-        public bool IsEnd=false;
+        public bool IsEnd = false;
 
         public int A31DeviceType;
 
         //public string a31Source = "wifi";
         //public string a31Source = string.Empty;
+        /// <summary>
+        /// 闊充箰鎾斁鍣↖D
+        /// </summary>
         public string UniqueDeviceName = string.Empty;
 
         /// <summary>
@@ -129,7 +204,7 @@
         /// <summary>
         /// usb鍒楄〃
         /// </summary>
-        public List<MusicInfo> USBList= new List<MusicInfo>();
+        public List<MusicInfo> USBList = new List<MusicInfo>();
         /// <summary>
         /// Tidal鍠滅埍鍒楄〃
         /// </summary>
@@ -137,31 +212,65 @@
         /// <summary>
         ///鍒涘缓闊充箰鏂囦欢鍒楄〃
         /// </summary>
-        public List<FileListInfo> FileLists= new List<FileListInfo>();
+        public List<FileListInfo> FileLists = new List<FileListInfo>();
         /// <summary>
         /// 褰撳墠鐨凙31闊充箰鎾斁鍣�
         /// </summary>
         public static A31MusicModel Current;
 
+        public int _ServerClientType;
         /// <summary>
         /// -1琛ㄧず浠庣殑0琛ㄧず榛樿1琛ㄧず涓荤殑
         /// </summary>
-        public int ServerClientType;
+        public int ServerClientType
+        {
+            get
+            {
+                return _ServerClientType;
+            }
+            set
+            {
+                _ServerClientType = value;
+                if(value == 0)
+                {
+                    name = Name;
+                }
+            }
+        }
         /// <summary>
         /// 璁板綍涓绘挱鏀惧櫒IP
         /// </summary>
         public string MainPlayIP = string.Empty;
+
+        public string _MainPlayName = string.Empty;
         /// <summary>
         /// 璁板綍涓绘挱鏀惧櫒鍚嶇О
         /// </summary>
-        public string MainPlayName = string.Empty;
+        public string MainPlayName
+        {
+            get
+            {
+                return _MainPlayName;
+            }
+            set
+            {
+                _MainPlayName = value;
+                if(ServerClientType == 1)
+                {
+                    name = value;
+                }
+            }
+        }
+        /// <summary>
+        /// 璁板綍涓绘挱鏀惧櫒鏄惁琚敹钘�(绉�妗″畾涔夌殑)
+        /// </summary>
+        public bool MainPlayCollection = false;
 
         public Slaves Slave = new Slaves();
-
+        /// <summary>
+        /// 璁板綍鏃堕棿
+        /// </summary>
         public static DateTime ProgressDateTime = DateTime.Now;
-        //static System.Threading.Tasks.Task task;
-        //闊抽噺鍒楄〃
-        //static List<int> volumeCommandList = new List<int> ();
 
         public static bool IsJson(string json)
         {
@@ -178,12 +287,14 @@
                 return false;
             }
         }
-
-
-        #region 缁勫悎灞炴��
-
-
-        #endregion
+        /// <summary>
+        /// 鑷畾涔夋棩蹇楄緭鍑�
+        /// </summary>
+        public static void LogMusic(string str)
+        {
+            var time = DateTime.Now;
+            Console.WriteLine(time + str);
+        }
 
     }
     [System.Serializable]
@@ -229,6 +340,4 @@
         public string uuid = string.Empty;
     }
 
-
-
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0