From d020a48f69f1acd8d97fc15372e19cde7779d934 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期一, 15 十一月 2021 10:46:43 +0800
Subject: [PATCH] 绑定source面板
---
HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs | 427 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 288 insertions(+), 139 deletions(-)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
index 6c88a70..01c7106 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
@@ -3,8 +3,6 @@
using Shared;
using Shared.IO;
using System.Net;
-using HDL_ON.Entity;
-
namespace HDL_ON.UI.Music
{
public class MusicMain : FrameLayout
@@ -58,22 +56,19 @@
/// <summary>
/// 鏄剧ず鍔犺浇鐣岄潰
/// </summary>
- public static Loading loading = new Loading();
+ public static Loading loading = new Loading();
/// <summary>
/// 瀹氫箟鍏ㄥ眬瀵硅薄
/// </summary>
VerticalRefreshLayout verticalRefresh;
- /// <summary>
- /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄
- /// </summary>
- MusicView musicView = new MusicView();
public void Show()
{
+
#region 鐣岄潰甯冨眬
this.BackgroundColor = MusicColor.ViewColor;
var topView = new TopView();
this.AddChidren(topView.TopFLayoutView());
- topView.topNameBtn.TextID = StringId.a31Music;
+ topView.topNameBtn.TextID =StringId.a31Music;
topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
RemoveFromParent();
@@ -89,71 +84,200 @@
verticalRefresh.BeginHeaderRefreshingAction += () =>
{
- SeachMusic();
+ SeachMusic(false);
+
};
this.AddChidren(loading);
- SeachMusic();
+ if (A31MusicModel.A31MusicModelList.Count == 0)
+ {
+ SeachMusic(true);
+ }
+ else
+ {
+ clearA31Threads();
+ //verticalRefresh.RemoveAll();
+ for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+ {
+ var a31player = A31MusicModel.A31MusicModelList[i];
+ ///杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
+ if (!a31player.IsCanShow)
+ {
+ continue;
+ }
+ if (A31MusicModel.A31MusicModelList.Count - 1 == i)
+ {
+ a31player.IsEnd = true;
+ }
+ else
+ {
+ a31player.IsEnd = false;
+ }
+ ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎
+ ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵��
+ a31player.IsOnLine = false;
+ MusicListView(a31player);
+ }
+ ///璇诲彇姝g‘鐨勪俊鎭紝鍖呮嫭IP鍜岀鍙e強鍚嶇О
+ SendMethod.Seach((obj) =>
+ {
+ try
+ {
+ if (obj == null)
+ {
+ ///杩欓噷瑕佽鍙栦富浠庡叧绯�
+ readServerOrClientMode();
+ A31MusicModel.Save();
+ return;
+ }
+ var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => music.UniqueDeviceName == obj.UniqueDeviceName);
+ if (a31MusicModel != null)
+ {
+ a31MusicModel.IPAddress = obj.IPAddress;
+ a31MusicModel.Port = obj.Port;
+ a31MusicModel.Name = obj.Name;
+ a31MusicModel.IsCanShow = true;
+ a31MusicModel.IsOnLine = true;
+ }
+ }
+ catch (Exception e) { MainPage.Log(e.Message); }
+ });
+ }
}
/// <summary>
/// 鍒锋柊鎾斁鍣ㄥ垪琛�
/// </summary>
- void SeachMusic()
+ /// <param name="Yes">鏄惁鏄剧ず鍒锋柊鍥炬爣</param>
+ void SeachMusic(bool Yes = false)
{
- Application.RunOnMainThread(() =>
+ for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
{
- verticalRefresh.RemoveAll();
- for (int i = 0; i < SendMethod.sendMethod.GetMusicList.Count; i++)
+ var a31player = A31MusicModel.A31MusicModelList[i];
+ a31player.IsCanShow = false;
+ a31player.IsOnLine = false;
+ }
+ if (Yes)
+ {
+ //涓轰簡绗竴娆¤繘鏉og涓�涓�;
+ loading.Start();
+ }
+ SendMethod.Seach((obj) =>
+ {
+ if (obj == null)
{
- var playerFunction = SendMethod.sendMethod.GetMusicList[i];
- if (!playerFunction.online)
+ readServerOrClientMode();
+ A31MusicModel.Save();
+ if (!Yes)
{
- //杩囨护鎺変笉鍦ㄧ嚎鐨勯煶涔愭挱鏀惧櫒
- continue;
+ ///绛夊緟璺戝畬鍦ㄥ叧闂�
+ verticalRefresh.EndHeaderRefreshing();
}
- MusicListView(playerFunction);
- }
+ Application.RunOnMainThread(() =>
+ {
+ if (Yes)
+ {
+ //涓轰簡绗竴娆¤繘鏉og涓�涓�;
+ loading.Hide();
+ }
+ verticalRefresh.RemoveAll();
+ for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+ {
+ var a31player = A31MusicModel.A31MusicModelList[i];
+ //杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
+ if (!a31player.IsCanShow)
+ {
+ continue;
+ }
+ if (A31MusicModel.A31MusicModelList.Count - 1 == i)
+ {
+ a31player.IsEnd = true;
+ }
+ else
+ {
+ a31player.IsEnd = false;
+ }
+ MusicListView(a31player);
+ }
+ //A31MusicModel.ReadMusicStates();
+ });
+ return;
+ }
+ var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => { return music.UniqueDeviceName == obj.UniqueDeviceName; });
+ if (a31MusicModel == null)
+ {
+ //涓嶆槸鎴戜滑鏀寔鐨勫搧鐗屼笉鏀寔
+ if (obj.Name != null)
+ {
+ obj.sid = "030101123456780909020123AABB" + obj.UniqueDeviceName;
+ A31MusicModel.A31MusicModelList.Add(obj);
+ }
+ }
+ else
+ {
+ a31MusicModel.IPAddress = obj.IPAddress;
+ a31MusicModel.Port = obj.Port;
+ a31MusicModel.Name = obj.Name;
+ a31MusicModel.IsCanShow = true;
+ a31MusicModel.IsOnLine = true;
+ }
});
}
/// <summary>
/// 鏄剧ず闊充箰鍒楄〃鐨勬柟娉�
/// </summary>
- void MusicListView(Function player)
+ void MusicListView(A31MusicModel a31player)
{
+ MusicView musicView = new MusicView();
musicView.View(verticalRefresh);
- musicView.singerBtn.Text = player.GetAttrState("song_name");
- musicView.songNameBtn.Text = player.GetAttrState("song_name");
- musicView.musicNameBtn.Text = player.name;
- //if (player.IsEnd)
- //{
- // musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
- //}
+ musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
+ musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
+ musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
+ if (a31player.IsEnd)
+ {
+ musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
+ }
musicView.collectIconBtn.MouseUpEventHandler += (sender, e) =>
{
musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected;
- if (musicView.collectIconBtn.IsSelected)
+ if (a31player.ServerClientType == 1)
{
- player.collect = true;
+ if (musicView.collectIconBtn.IsSelected)
+ {
+ a31player.MainPlayCollection = true;
+ }
+ else
+ {
+ a31player.MainPlayCollection = false;
+ }
}
else
{
- player.collect = false;
+ if (musicView.collectIconBtn.IsSelected)
+ {
+ a31player.collect = true;
+ }
+ else
+ {
+ a31player.collect = false;
+ }
}
+ A31MusicModel.Save();
};
EventHandler<MouseEventArgs> clickMergence = (sender, e) =>
{
- //if (player.ServerClientType == 0)
- //{
- // new View.DialogView { }.PlayMergence(player);
- //}
- //else if (player.ServerClientType == 1)
- //{
- // new View.DialogView { }.DetachPlayMergence(player);
- //}
+ if (a31player.ServerClientType == 0)
+ {
+ new View.DialogView { }.PlayMergence(a31player);
+ }
+ else if (a31player.ServerClientType == 1)
+ {
+ new View.DialogView { }.DetachPlayMergence(a31player);
+
+ }
};
musicView.mergeBjBtn.MouseUpEventHandler += clickMergence;
musicView.mergeBtn.MouseUpEventHandler += clickMergence;
@@ -161,6 +285,7 @@
EventHandler<MouseEventArgs> clickPlayView = (sender, e) =>
{
+ A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣�
var a31PlayMusicPage = new A31PlayMusicPage();
MainPage.BasePageView.AddChidren(a31PlayMusicPage);
a31PlayMusicPage.Show();
@@ -177,9 +302,7 @@
musicView.prevBtn.MouseDownEventHandler += (sender, e) =>
{
musicView.prevBtn.IsSelected = true;
- Dictionary<string, string> dic = new Dictionary<string, string>();
- dic.Add("song_step", "up");
- SendMethod.sendMethod.SendControlCommand(player, dic);
+ SendMethod.Previous(a31player);
};
musicView.prevBtn.MouseUpEventHandler += (sender, e) =>
{
@@ -188,28 +311,24 @@
///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
musicView.playBtn.MouseDownEventHandler += (sender, e) =>
{
- string status = "off";
if (musicView.playBtn.IsSelected)
{
musicView.playBtn.IsSelected = false;
- status = "off";
+ SendMethod.Pause(a31player);
+ a31player.A31PlayStatus.status = "pause";
}
else
{
musicView.playBtn.IsSelected = true;
- status = "on";
+ SendMethod.Play(a31player);
+ a31player.A31PlayStatus.status = "play";
}
- Dictionary<string, string> dic = new Dictionary<string, string>();
- dic.Add("on_off", status);
- SendMethod.sendMethod.SendControlCommand(player, dic);
};
///涓嬩竴鏇茬偣鍑讳簨浠�
musicView.nextBtn.MouseDownEventHandler += (sender, e) =>
{
musicView.nextBtn.IsSelected = true;
- Dictionary<string, string> dic = new Dictionary<string, string>();
- dic.Add("song_step", "down");
- SendMethod.sendMethod.SendControlCommand(player, dic);
+ SendMethod.Next(a31player);
};
musicView.nextBtn.MouseUpEventHandler += (sender, e) =>
{
@@ -221,49 +340,47 @@
while (true)
{
System.Threading.Thread.Sleep(1000);
- if (!player.online)
+ if (!a31player.IsOnLine)
{
continue;
}
- //SendMethod.ReadStatus(player);
- SendMethod.sendMethod.RefreshDeviceStatus(player,new List<string> { player.deviceId });
-
+ SendMethod.ReadStatus(a31player);
Application.RunOnMainThread(() =>
{
- //musicView.singerBtn.Text = player.A31PlayStatus.Artist;
- //musicView.songNameBtn.Text = player.A31PlayStatus.Title;
- //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player);
- //if (player.A31PlayStatus.status == "play")
- //{
- // musicView.playBtn.IsSelected = true;
- //}
- //else
- //{
- // musicView.playBtn.IsSelected = false;
- //}
- //musicView.regionBtn.Text = player.GetRoomListName();
- //if (player.ServerClientType == 1)
- //{
- // if (player.MainPlayCollection)
- // {
- // musicView.collectIconBtn.IsSelected = true;
- // }
- // else
- // {
- // musicView.collectIconBtn.IsSelected = false;
- // }
- //}
- //else
- //{
- // if (player.collect)
- // {
- // musicView.collectIconBtn.IsSelected = true;
- // }
- // else
- // {
- // musicView.collectIconBtn.IsSelected = false;
- // }
- //}
+ musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
+ musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
+ musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
+ if (a31player.A31PlayStatus.status == "play")
+ {
+ musicView.playBtn.IsSelected = true;
+ }
+ else
+ {
+ musicView.playBtn.IsSelected = false;
+ }
+ musicView.regionBtn.Text = a31player.GetRoomListName();
+ if (a31player.ServerClientType == 1)
+ {
+ if (a31player.MainPlayCollection)
+ {
+ musicView.collectIconBtn.IsSelected = true;
+ }
+ else
+ {
+ musicView.collectIconBtn.IsSelected = false;
+ }
+ }
+ else
+ {
+ if (a31player.collect)
+ {
+ musicView.collectIconBtn.IsSelected = true;
+ }
+ else
+ {
+ musicView.collectIconBtn.IsSelected = false;
+ }
+ }
});
}
})
@@ -271,67 +388,99 @@
musicThread.Start();
threadLists.Add(musicThread);
}
-
/// <summary>
- ///鎸囧畾鍒锋柊鐣岄潰
+ /// 璇诲彇涓讳粠鍏崇郴
/// </summary>
- /// <param name="strView">鍒ゆ柇瀛楃</param>
- public void RefreshView(string strView)
+ void readServerOrClientMode()
{
- Application.RunOnMainThread(() =>
+ try
{
- try
+ for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
{
-
- for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
+ var a31player = A31MusicModel.A31MusicModelList[i];
+ if (!a31player.IsOnLine)
{
- var view = MainPage.BasePageView.GetChildren(i);
- if (strView == view.Tag.ToString())
+ continue;
+ }
+ try
+ {
+ a31player.ServerClientType = 0;
+ var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
+ if (result == null && result == "Failed")
{
- if (view.GetType() == typeof(MusicMain))
- {
- //musicView.singerBtn.Text = player.A31PlayStatus.Artist;
- //musicView.songNameBtn.Text = player.A31PlayStatus.Title;
- //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player);
- //if (player.A31PlayStatus.status == "play")
- //{
- // musicView.playBtn.IsSelected = true;
- //}
- //else
- //{
- // musicView.playBtn.IsSelected = false;
- //}
- //musicView.regionBtn.Text = player.GetRoomListName();
- //if (player.ServerClientType == 1)
- //{
- // if (player.MainPlayCollection)
- // {
- // musicView.collectIconBtn.IsSelected = true;
- // }
- // else
- // {
- // musicView.collectIconBtn.IsSelected = false;
- // }
- //}
- //else
- //{
- // if (player.collect)
- // {
- // musicView.collectIconBtn.IsSelected = true;
- // }
- // else
- // {
- // musicView.collectIconBtn.IsSelected = false;
- // }
- //}
- }
+ result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
}
-
+ if (result != null && result != "Failed")
+ {
+ a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
+ }
+ }
+ catch (Exception e)
+ {
+ var d = e.Message;
}
}
- catch { }
- });
+
+ //鍒嗘瀽涓讳粠鍏崇郴
+ for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+ {
+ var a31player = A31MusicModel.A31MusicModelList[i];
+ if (!a31player.IsOnLine)
+ {
+ continue;
+ }
+ try
+ {
+ if (a31player.Slave != null && "0" != a31player.Slave.slaves)
+ {
+ a31player.ServerClientType = 1;//涓荤殑
+ string str = a31player.Name;
+ for (int j = 0; j < a31player.Slave.slave_list.Count; j++)
+ {
+
+ var slave = a31player.Slave.slave_list[j];
+ str = str + "+" + slave.name;
+ var tempA31Player = A31MusicModel.A31MusicModelList.Find((obj) => slave.uuid.Replace("uuid:", "") == obj.UniqueDeviceName);
+ if (tempA31Player == null)
+ {
+ A31MusicModel.A31MusicModelList.Add(new A31MusicModel
+ {
+ sid = "030101123456780909020123AABB" + slave.uuid.Replace("uuid:", ""),
+ ServerClientType = -1,//浠庣殑
+ IPAddress = slave.ip,
+ MainPlayIP = a31player.IPAddress,
+ UniqueDeviceName = slave.uuid.Replace("uuid:", ""),
+ Name = slave.name,
+ IsCanShow = false,
+ IsOnLine = false,//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
+ });
+ }
+ //濡傛灉鎵惧埌灏辨洿鏂颁负浠庣殑
+ else
+ {
+ tempA31Player.ServerClientType = -1;//浠庣殑
+ tempA31Player.IPAddress = slave.ip;
+ tempA31Player.MainPlayIP = a31player.IPAddress;
+ tempA31Player.Name = slave.name;
+ tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", "");
+ tempA31Player.IsCanShow = false;
+ tempA31Player.IsOnLine = false;//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
+
+ }
+ }
+ a31player.MainPlayName = str;
+ }
+ }
+ catch (Exception e)
+ {
+ var ss = e.Message;
+ }
+ }
+
+ }
+ catch { }
}
+
}
}
--
Gitblit v1.8.0