From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 01 十二月 2021 16:32:57 +0800
Subject: [PATCH] 2021-12-01-01

---
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs |  158 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 135 insertions(+), 23 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
index 7d510c8..13991b2 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
@@ -1,32 +1,105 @@
 锘縰sing System;
 using System.Collections.Generic;
-using System.Text;
 using Shared;
+using HDL_ON.Entity;
 
 namespace HDL_ON.UI.Music
 {
 
     [System.Serializable]
-    public class A31MusicModel
+    public class A31MusicModel : Function
     {
         public static List<A31MusicModel> A31MusicModelList = new List<A31MusicModel> { };
         static readonly string a31MusiceModeListFilePath = "A31MusiceModeListFilePath";
         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].collect)
+                    {
+                        return true; //鏌ヨ鏄惁鏈夐煶涔愯鏀惰棌杩�
+                    }
+                }
+                return false;
+            }
         }
         /// <summary>
         ///淇濆瓨褰撳墠闊充箰鍒楄〃
         /// </summary>
         public static void Save()
         {
-            FileUtils.WriteFileByBytes(a31MusiceModeListFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModelList)));
+            Common.FileUtlis.Files.WriteFileByBytes(a31MusiceModeListFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModelList)));
         }
 
         public static void Refresh()
         {
-            if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile(a31MusiceModeListFilePath))))
+            if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(Common.FileUtlis.Files.ReadFile(a31MusiceModeListFilePath))))
             {
                 A31MusicModelList = new List<A31MusicModel> { };
                 //鍒濆鍖栨埧闂村垪琛�
@@ -34,7 +107,7 @@
             }
             else
             {
-                A31MusicModelList = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile(a31MusiceModeListFilePath)));
+                A31MusicModelList = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(Common.FileUtlis.Files.ReadFile(a31MusiceModeListFilePath)));
             }
             if (A31MusicModelList == null)
             {
@@ -42,12 +115,11 @@
             }
             A31MusicModelList.RemoveAll((obj) => obj == null);
         }
-      
 
         /// <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,10 +287,15 @@
                 return false;
             }
         }
+        /// <summary>
+        /// 鑷畾涔夋棩蹇楄緭鍑�
+        /// </summary>
+        public static void LogMusic(string str)
+        {
+            var time = DateTime.Now;
+            Console.WriteLine(time + str);
+        }
 
-       
-
-        
     }
     [System.Serializable]
     /// <summary>
@@ -226,6 +340,4 @@
         public string uuid = string.Empty;
     }
 
-
-
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0