From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 17:25:59 +0800
Subject: [PATCH] 2024年07月25日17:24:45

---
 HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs |  322 +++++++++++++++++++++++------------------------------
 1 files changed, 141 insertions(+), 181 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
index 13991b2..fdf19dd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31MusicModel.cs
@@ -7,88 +7,24 @@
 {
 
     [System.Serializable]
-    public class A31MusicModel : Function
+    public class A31MusicModel
     {
         public static List<A31MusicModel> A31MusicModelList = new List<A31MusicModel> { };
         static readonly string a31MusiceModeListFilePath = "A31MusiceModeListFilePath";
         static A31MusicModel()
         {
-            Refresh();
+            //Refresh();
         }
 
-        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;
-            }
-        }
+        public Function functionMusic = new Function();
+
+
+
+
         /// <summary>
         ///淇濆瓨褰撳墠闊充箰鍒楄〃
         /// </summary>
@@ -116,99 +52,48 @@
             A31MusicModelList.RemoveAll((obj) => obj == null);
         }
 
-        /// <summary>
-        /// 闊充箰鎾斁鍣ㄥ悕绉�
-        /// </summary>
-        public string Name = string.Empty;
+
         /// <summary>
         /// 涓婁竴娆℃洿鏂扮殑鏃堕棿
-        /// 璁板綍鏁版嵁鍙嶉鐨勬椂闂�(鍥犱负鏈夋椂闂寸綉缁滃樊鏁版嵁涓嶅洖澶嶏紝瀵艰嚧鍒锋柊褰撳墠鎾斁闊充箰鏃堕棿涓嶆纭�)
+        /// 璁板綍鏁版嵁鍙嶉鐨勬椂闂�(鍥犱负鏈夋椂鍊欑綉缁滃樊鏁版嵁涓嶅洖澶嶏紝瀵艰嚧鍒锋柊褰撳墠鎾斁闊充箰鏃堕棿涓嶆纭�)
         /// ((褰撳墠鏃堕棿)DateTime.Now - (璁板綍鏃堕棿)LastDateTimeLastDateTime).TotalSeconds=璇樊鏃堕棿(绉�)
         /// </summary>
         public DateTime LastDateTime;
         /// <summary>
-        /// IP鍦板潃
+        /// 璁板綍婊戝姩闊抽噺鏉℃椂闂�<鐢ㄦ潵澶勭悊闊抽噺璺冲姩>
         /// </summary>
-        public string IPAddress = "192.168.1.100";
+        public static DateTime ProgressDateTime = DateTime.MinValue;
 
-        /// <summary>
-        /// 绔彛
-        /// </summary>
-        public int Port = 49153;
-
-        /// <summary>
-        /// 鏄惁鏄挱鏀惧櫒鍒楄〃鏈�鍚庝竴涓�(true)
-        /// </summary>
-        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>
-        /// 褰撳墠鎾斁鐘舵��
-        /// </summary>
-        public A31PlayStatus A31PlayStatus = new A31PlayStatus();
 
         public MusicInfo CurrentMusic = new MusicInfo();
 
-        /// <summary>
-        ///褰撳墠鎾斁鐨勫垪琛ㄤ俊鎭�
-        /// </summary>
-        public List<MusicInfo> CurrentPlayMusicInfoList = new List<MusicInfo>();
 
         /// <summary>
         /// 鏄惁鍏佽鏄剧ず
         /// </summary>
         public bool IsCanShow = true;
-
+       
         /// <summary>
-        /// 鏄惁鍦ㄧ嚎锛屽鏋滃湪绾垮氨鍏佽璇诲彇淇℃伅
+        /// 褰撳墠鎾斁姝屾洸鍒楄〃
         /// </summary>
-        public bool IsOnLine = true;
-
+        public List<SongList> CurrentPlayMusicInfoList = new List<SongList>();
         /// <summary>
         ///  鍠滅埍闊充箰鍒楄〃
         /// </summary>
-        public List<MusicInfo> LoveMusicInfoList = new List<MusicInfo>();
-
+        public List<SongInfo> LoveMusicInfoList = new List<SongInfo>();
         /// <summary>
-        /// DLNA鎵�鏈夊垪琛�
+        /// 鎵�鏈夈�愰煶涔愬垪琛ㄣ��
         /// </summary>
-        public List<MusicInfo> dlnaMusicInfoLists = new List<MusicInfo>();
-
+        public List<SongList> AllMusicLists = new List<SongList>();
         /// <summary>
-        ///  鐢靛彴鎵�鏈夊垪琛�
+        /// 鎵�鏈夈�愰煶涔愭簮銆戠殑鍒楄〃
         /// </summary>
-        public List<MusicInfo> CnRadioInfoList = new List<MusicInfo>();
-
-        /// <summary>
-        ///  vTuner鐢靛彴鎵�鏈夊垪琛�
-        /// </summary>
-        public List<MusicInfo> vTunerList = new List<MusicInfo>();
-
-        /// <summary>
-        ///  鍠滅埍鐢靛彴鍒楄〃
-        /// </summary>
-        public List<MusicInfo> LoveRadioInfoList = new List<MusicInfo>();
-
-        /// <summary>
-        /// Pandora鐢靛彴鎵�鏈夊垪琛�
-        /// </summary>
-        public List<MusicInfo> PanRadioInfoList = new List<MusicInfo>();
-        /// <summary>
-        /// usb鍒楄〃
-        /// </summary>
-        public List<MusicInfo> USBList = new List<MusicInfo>();
-        /// <summary>
-        /// Tidal鍠滅埍鍒楄〃
-        /// </summary>
-        public List<MusicInfo> TidalLikelist = new List<MusicInfo>();
+        public List<GroupList> AllSourceGroupList = new List<GroupList>(); 
         /// <summary>
         ///鍒涘缓闊充箰鏂囦欢鍒楄〃
         /// </summary>
@@ -218,60 +103,31 @@
         /// </summary>
         public static A31MusicModel Current;
 
-        public int _ServerClientType;
-        /// <summary>
-        /// -1琛ㄧず浠庣殑0琛ㄧず榛樿1琛ㄧず涓荤殑
-        /// </summary>
-        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
+        /// <returns></returns>
+        public List<SongInfo> GetSongList(string listName)
         {
-            get
+            var list = CurrentPlayMusicInfoList.Find((o) => o.group == listName);
+            if (list == null)
             {
-                return _MainPlayName;
+                return new List<SongInfo>();
             }
-            set
-            {
-                _MainPlayName = value;
-                if(ServerClientType == 1)
-                {
-                    name = value;
-                }
-            }
+            return list.songs;
         }
-        /// <summary>
-        /// 璁板綍涓绘挱鏀惧櫒鏄惁琚敹钘�(绉�妗″畾涔夌殑)
-        /// </summary>
-        public bool MainPlayCollection = false;
+
 
         public Slaves Slave = new Slaves();
-        /// <summary>
-        /// 璁板綍鏃堕棿
-        /// </summary>
-        public static DateTime ProgressDateTime = DateTime.Now;
 
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鏄痡son鏁版嵁
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
         public static bool IsJson(string json)
         {
             try
@@ -310,7 +166,7 @@
         /// <summary>
         ///  鍒楄〃姝屾洸淇℃伅
         /// </summary>
-        public List<MusicInfo> MusicInfoList = new List<MusicInfo>();
+        public List<SongInfo> MusicInfoList = new List<SongInfo>();
     }
     [System.Serializable]
     public class TidalMusicInfo : MusicInfo
@@ -340,4 +196,108 @@
         public string uuid = string.Empty;
     }
 
+    [System.Serializable]
+    /// <summary>
+    /// 鏀寔澶氫釜闊充箰
+    /// </summary>
+    public class PalyerSongListInfo
+    { 
+        /// <summary>
+        /// 闊充箰sid
+        /// </summary>
+        public string sid = string.Empty;
+        /// <summary>
+        /// 闊充箰婧�
+        /// </summary>
+        public string source = string.Empty;
+        /// <summary>
+        ///  鍒楄〃淇℃伅
+        /// </summary>
+        public List<SongList> playlist = new List<SongList>(); 
+    }
+
+    [System.Serializable]
+    /// <summary>
+    /// 鍒楄〃淇℃伅
+    /// </summary>
+    public class SongList
+    {
+        /// <summary>
+        /// 鍒楄〃鍚�
+        /// </summary>
+        public string group = string.Empty;
+        /// <summary>
+        /// 鑷繁瀹氫箟鐨�(鐢ㄨ瘑鍒槸閭d釜闊充箰婧愮殑鍒楄〃)
+        /// </summary>
+        public string source = string.Empty;
+        /// <summary>
+        ///  鍒楄〃姝屾洸淇℃伅
+        /// </summary>
+        public List<SongInfo> songs = new List<SongInfo>();
+    }
+    [System.Serializable]
+    public class SongInfo : MusicInfo 
+    {
+        /// <summary>
+        /// 姝屾洸鍚嶇О
+        /// </summary>
+        public string name = string.Empty;
+        /// <summary>
+        /// 澶у皬
+        /// </summary>
+        public string size = string.Empty;
+        /// <summary>
+        /// 鏃堕暱
+        /// </summary>
+        public string time = string.Empty;
+        /// <summary>
+        /// 姝屾洸鍦板潃
+        /// </summary>
+        public string url = string.Empty;
+        /// <summary>
+        /// 绫诲瀷<鑷繁鐢�>
+        /// </summary>
+        public string type = string.Empty;
+        /// <summary>
+        /// 鍒楄〃鍚嶅拰group缁勫悕鏄竴鏍风殑
+        /// </summary>
+        public string listName = string.Empty;
+    }
+
+
+    [System.Serializable]
+    /// <summary>
+    /// 鍒楄〃鍚嶅垪琛�
+    /// </summary>
+    public class GroupList
+    {
+        /// <summary>
+        ///璁惧sid
+        /// </summary>
+        public string sid = string.Empty;
+        /// <summary>
+        /// 闊充箰婧�
+        /// </summary>
+        public string source = string.Empty;
+        /// <summary>
+        /// 鍒楄〃鍚嶉泦鍚�
+        /// </summary>
+        public List<ListName> groupList = new List<ListName>();
+
+    }
+    [System.Serializable]
+    /// <summary>
+    /// 鍒楄〃鍚�
+    /// </summary>
+    public class ListName
+    {
+        /// <summary>
+        /// 缁勫悕=鍒楄〃鍚�
+        /// </summary>
+        public string group = string.Empty;
+
+    }
+
+   
+
 }
\ No newline at end of file

--
Gitblit v1.8.0