From 7cf82866bff8144dd89746beecb8d185f7f8595e Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期四, 04 六月 2020 13:06:44 +0800
Subject: [PATCH] 2020-06-04-1

---
 HDL_ON/UI/Music/View/DialogView.cs |  120 ++++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 84 insertions(+), 36 deletions(-)

diff --git a/HDL_ON/UI/Music/View/DialogView.cs b/HDL_ON/UI/Music/View/DialogView.cs
index 3b45ea7..ed6f4de 100644
--- a/HDL_ON/UI/Music/View/DialogView.cs
+++ b/HDL_ON/UI/Music/View/DialogView.cs
@@ -11,6 +11,7 @@
         /// <param name="musicInfo"></param>
         public void FieListView(MusicInfo musicInfo)
         {
+            #region
             //涓绘帶浠�
             Dialog dialog = new Dialog()
             {
@@ -85,7 +86,7 @@
             };
             topFra.AddChidren(addIconBtn);
 
-
+            #endregion
             VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
             {
                 Y = Application.GetRealHeight(70),
@@ -227,6 +228,9 @@
         /// </summary>
         public void PlayMergence()
         {
+
+            #region
+
             //涓绘帶浠�
             Dialog dialog = new Dialog()
             {
@@ -394,40 +398,50 @@
                 };
                 PlayRow.AddChidren(lineBtn);
             }
+            #endregion
             confirmBtn.MouseUpEventHandler += (sender, e) =>
             {
-             
 
                 if (playList1.Count <= 1)
                 {
                     new PublicAssmebly().TipMsgAutoClose("鑷冲皯閫変腑涓や釜浠ヤ笂鎾斁鍣�", false);
                     return;
                 }
-
-                var playList2 = new List<A31MusicModel>();
-                for (int i = 0; i < playList1.Count; i++)
+                ///鏌ヨ鏄惁宸茬粡瀛樺湪涓绘挱鏀�;
+                var host_Music_If = playList1.Find((c) => c.ServerClientType == 1);
+                if (host_Music_If == null)
                 {
-                    var musics = playList1[i];
-                    if (musics.A31PlayStatus.playSource == "play")
+
+                    var playList2 = new List<A31MusicModel>();
+                    for (int i = 0; i < playList1.Count; i++)
                     {
-                        playList2.Add(musics);
+                        var musics = playList1[i];
+                        if (musics.A31PlayStatus.playSource == "play")
+                        {
+                            playList2.Add(musics);
+                        }
+
                     }
 
-                }
-
-                if (playList2.Count == 0)
-                {
-                    SelectedPlayerView(dialog, playList1, playList1);
-                }
-                else if (playList2.Count == 1)
-                {
-                    dialog.Close();
-                    var player = playList2[0];
-                    Threading(player, playList1);
+                    if (playList2.Count == 0)
+                    {
+                        SelectedPlayerView(dialog, playList1, playList1);
+                    }
+                    else if (playList2.Count == 1)
+                    {
+                        //鍙湁涓�涓挱鏀惧櫒鍦ㄦ挱鏀�,榛樿涓轰富鎾彂鍣�;
+                        dialog.Close();
+                        var player = playList2[0];
+                        Threading(player, playList1);
+                    }
+                    else
+                    {
+                        SelectedPlayerView(dialog, playList1, playList2);
+                    }
                 }
                 else
                 {
-                    SelectedPlayerView(dialog, playList1, playList2);
+                    Threading(host_Music_If, playList1);
                 }
             };
         }
@@ -438,7 +452,7 @@
         ///  /// <param name="musicList2">鏄剧ず鍦ㄦ挱鏀鹃煶涔愭挱鏀惧櫒鍒楄〃</param>
         void SelectedPlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
         {
-
+            #region
             //涓绘帶浠�
             Dialog dialog = new Dialog()
             {
@@ -584,7 +598,7 @@
                 };
                 addFlieRow.AddChidren(lineBtn);
             }
-
+            #endregion
             confirmBtn.MouseUpEventHandler += (sender, e) =>
             {
                 if (selectedBtn.Name.ToString() == "No")
@@ -643,6 +657,7 @@
                             continue;
                         }
                         System.Threading.Thread.Sleep(1000);//绛夊緟涓�绉掑啀鍙戞暟鎹�
+                        var dd = SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid);
                         if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
                         {
                             if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
@@ -725,6 +740,8 @@
         /// </summary>
         public void DetachPlayMergence(A31MusicModel a31player)
         {
+
+            #region
             //涓绘帶浠�
             Dialog dialog = new Dialog()
             {
@@ -810,10 +827,24 @@
                 Width = Application.GetRealWidth(344),
             };
             dialogFra.AddChidren(verticalScrolViewLayout);
-            var  slaveList= new List<Slave>();
+
+            var playList1 = new List<A31MusicModel>();
+            playList1.Add(a31player);
             for (int i = 0; i < a31player.Slave.slave_list.Count; i++)
             {
                 var slave = a31player.Slave.slave_list[i];
+                var music_If = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == slave.uuid.Replace("uuid:", ""));
+                if (music_If != null)
+                {
+                    playList1.Add(music_If);
+                }
+            }
+
+
+            var playList2 = new List<A31MusicModel>();
+            for (int i = 0; i < playList1.Count; i++)
+            {
+                var player = playList1[i];
                 RowLayout PlayRow = new RowLayout
                 {
                     Height = Application.GetRealHeight(50),
@@ -833,7 +864,7 @@
                     TextColor = Color.TextColor,
                     TextSize = TextSize.Text14,
                     TextAlignment = TextAlignment.CenterLeft,
-                    Text = slave.name,
+                    Text = player.Name,
                 };
                 PlayRow.AddChidren(PlayNameBtn);
 
@@ -854,7 +885,7 @@
                 Button clickBtn = new Button
                 {
                     Height = Application.GetRealHeight(50),
-                    Tag = slave.uuid.Replace("uuid:", ""),
+                    Tag = player.UniqueDeviceName,
                 };
                 PlayRow.AddChidren(clickBtn);
 
@@ -862,19 +893,19 @@
                 {
                     clickBtn.IsSelected = !clickBtn.IsSelected;
                     selectedIconBtn.IsSelected = clickBtn.IsSelected;
-                    var uuid = slaveList.Find((obj) => obj.uuid.Replace("uuid:", "") == clickBtn.Tag.ToString());
+                    var uuid = playList2.Find((obj) => obj.UniqueDeviceName== clickBtn.Tag.ToString());
                     if (selectedIconBtn.IsSelected)
                     {
                         if (uuid == null)
                         {
-                            slaveList.Add(slave);
+                            playList2.Add(player);
                         }
                     }
                     else
                     {
                         if (uuid != null)
                         {
-                            slaveList.Remove(slave);
+                            playList2.Remove(player);
                         }
                     }
                 };
@@ -889,9 +920,10 @@
                 };
                 PlayRow.AddChidren(lineBtn);
             }
+            #endregion
             confirmBtn.MouseUpEventHandler += (sender, e) =>
             {
-                if (slaveList.Count == 0)
+                if (playList1.Count == 0)
                 {
                     new PublicAssmebly().TipMsgAutoClose("杩樻病鏈夐�夋嫨瑙i櫎缁勬挱鏀惧櫒", false);
                     return;
@@ -904,21 +936,37 @@
                 {
                     try
                     {
-                        for (int i = 0; i < slaveList.Count; i++)
+                        var play_If = playList1.Find((obj) => obj.UniqueDeviceName == a31player.UniqueDeviceName);
+                        if (play_If == null)
                         {
-                            var clientMusic = slaveList[i];
-                            if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
+                            //瀛愰煶绠变笌涓婚煶绠辨柇寮�鐨勫懡浠�
+                            for (int i = 0; i < playList1.Count; i++)
                             {
-                                if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
+                                var clientMusic = playList1[i];
+                                if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress))
+                                {
+                                    if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.IPAddress))
+                                    {
+
+                                    }
+                                }
+                                ///姣忚В闄や竴涓挱鏀惧櫒闇�瑕佺瓑寰�3绉�
+                                System.Threading.Thread.Sleep(3000);//绛夊緟3绉掑啀鍙戞暟鎹�
+                            }
+                        }
+                        else
+                        {
+                            //瑙f暎缁勭殑鍛戒护
+                            if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup"))
+                            {
+                                if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:Ungroup"))
                                 {
 
                                 }
                             }
-                            System.Threading.Thread.Sleep(2000);//绛夊緟2绉掑啀鍙戞暟鎹�
-
                         }
                         DateTime dateTime = DateTime.Now;
-                        while ((DateTime.Now - dateTime).TotalMilliseconds < 10 * 1000)
+                        while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000)
                         {
                             System.Threading.Thread.Sleep(1000);
                             try

--
Gitblit v1.8.0