using System;
using System.Collections.Generic;
using System.Text;
using Shared.SimpleControl.Phone;
using Shared;
using Shared.SimpleControl.R;
using SmartHome.UI.SimpleControl.Pad.Music;
namespace Shared.SimpleControl.Pad.Music
{
///
///源选择界面
///
class SourcePage : Shared.FrameLayout
{
///
/// 显示出当前界面
///
///
public void Show (MusicModel musicModel, FrameLayout SettingView)
{
//源标题
var titleBtn = new Button {
Height = Application.GetRealHeight (150),
TextID = MyInternationalizationString.MusicSource,
TextSize = 15,
BackgroundColor = 0xFF111111,
TextAlignment = TextAlignment.Center
};
this.AddChidren (titleBtn);
//中间滑动栏
var frameLayout = new FrameLayout ();
frameLayout.Y = Application.GetRealHeight (150);
frameLayout.BackgroundImagePath = "MusicIcon/HomepageBackgroun.png";
this.AddChidren (frameLayout);
var middle = new VerticalScrolViewLayout ();
frameLayout.AddChidren (middle);
var rowSD = new RowLayout {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (rowSD);
var SDhoto = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/card.png",
SelectedImagePath = "MusicIcon/cardSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
rowSD.AddChidren (SDhoto);
//SD卡源图标
var musicSD = new Button {
Height = Application.GetRealHeight (100),
TextID = MyInternationalizationString.SDcard,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
rowSD.AddChidren (musicSD);
//读取SD卡列表
var readSDList = new Button {
Width = Application.GetRealWidth (65),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/Listreading.png",
SelectedImagePath = "MusicIcon/ListreadingSelected.png",
X = Application.GetRealWidth (365),
Gravity = Gravity.CenterVertical,
};
rowSD.AddChidren (readSDList);
//刷新SD卡列表
var refreshSDList = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/refurbish.png",
SelectedImagePath = "MusicIcon/refurbishSelected.png",
X = Application.GetRealWidth (460),
Gravity = Gravity.CenterVertical,
};
rowSD.AddChidren (refreshSDList);
refreshSDList.MouseUpEventHandler += (sender, e) => {
refreshSDList.IsSelected = true;
MainPage.Loading.Start ();
System.Threading.Tasks.Task.Run (() => {
Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*S1UPDATELIST"));
System.Threading.Thread.Sleep (4000);
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
refreshSDList.IsSelected = false;
});
});
};
var nextSD = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Homepagedown.png",
SelectedImagePath = "MusicIcon/HomepagedownSelected.png",
X = Application.GetRealWidth (550),
};
rowSD.AddChidren (nextSD);
var sdContentSD = new VerticalScrolViewLayout {
Width = LayoutParams.MatchParent,
Height = 0,
BackgroundColor = 0x993A3B3B,
};
readSDList.MouseUpEventHandler += (sender, e) => {
readSDList.IsSelected = true;
MainPage.Loading.Start ();
System.Threading.Tasks.Task.Run (() => {
readPlayList (musicModel, 1);
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
readSDList.IsSelected = false;
nextSD.IsSelected = true;
for (int i = 0; i < musicModel.SDCardListList.Count; i++) {
var rowLa = new RowLayout {
Height = Application.GetRealHeight (100),
};
sdContentSD.AddChidren (rowLa);
var number = new Button {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
Text = musicModel.SDCardListList [i].name,
};
rowLa.AddChidren (number);
string typeAndListNumber = musicModel.SDCardListList [i].number;
number.MouseUpEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist { };
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView);
};
var numbernext = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
X = Application.GetRealWidth (550),
Tag = musicModel,
};
rowLa.AddChidren (numbernext);
////歌曲列表
numbernext.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView);
};
}
sdContentSD.Height = Application.GetRealHeight (musicModel.SDCardListList.Count * 100);
});
});
};
nextSD.MouseUpEventHandler += (sender, e) => {
nextSD.IsSelected = !nextSD.IsSelected;
if (nextSD.IsSelected) {
for (int i = 0; i < musicModel.SDCardListList.Count; i++) {
var rowLa = new RowLayout {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
sdContentSD.AddChidren (rowLa);
var number = new Button {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
Text = musicModel.SDCardListList [i].name,
};
rowLa.AddChidren (number);
string typeAndListNumber = musicModel.SDCardListList [i].number;
number.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView);
};
var numbernext = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
X = Application.GetRealWidth (550),
Tag = musicModel,
};
rowLa.AddChidren (numbernext);
//歌曲列表
numbernext.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.SDCardSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 1, SettingView);
};
}
sdContentSD.Height = Application.GetRealHeight (musicModel.SDCardListList.Count * 100);
} else {
readSDList.IsSelected = false;
sdContentSD.Height = 0;
}
};
middle.AddChidren (sdContentSD);
var nasrowlayout = new RowLayout {
LineColor = 0x62818181,
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (nasrowlayout);
var nas = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
//Text = "NAS",
TextID = MyInternationalizationString.NAS,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
nasrowlayout.AddChidren (nas);
var nashoto = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/nas.png",
SelectedImagePath = "MusicIcon/nasSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
nasrowlayout.AddChidren (nashoto);
var readListNAS = new Button {
Width = Application.GetRealWidth (65),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/Listreading.png",
SelectedImagePath = "MusicIcon/ListreadingSelected.png",
X = Application.GetRealWidth (365),
Gravity = Gravity.CenterVertical,
};
nasrowlayout.AddChidren (readListNAS);
var nextnas = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Homepagedown.png",
SelectedImagePath = "MusicIcon/HomepagedownSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (550),
Gravity = Gravity.CenterVertical,
};
nasrowlayout.AddChidren (nextnas);
var sdContentNAS = new VerticalScrolViewLayout {
Height = 0,
BackgroundColor = 0x993A3B3B,
};
readListNAS.MouseUpEventHandler += (sender, e) => {
readListNAS.IsSelected = true;
MainPage.Loading.Start ();
System.Threading.Tasks.Task.Run (() => {
readPlayList (musicModel, 2);
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
readListNAS.IsSelected = false;
nextnas.IsSelected = true;
for (int i = 0; i < musicModel.NASListList.Count; i++) {
var NASrowLayout = new RowLayout {
Height = Application.GetRealHeight (100),
};
sdContentNAS.AddChidren (NASrowLayout);
var listNSA = new Button {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
X = Application.GetRealWidth (30),
Text = musicModel.NASListList [i].name,
};
NASrowLayout.AddChidren (listNSA);
string ListNumberNas = musicModel.NASListList [i].number;
listNSA.MouseUpEventHandler += (sender1, e1) => {
Songlist NASmusic = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (NASmusic);
NASmusic.Show (musicModel.NasSongList.FindAll ((music) => { return music.number.StartsWith (ListNumberNas); }), musicModel, 2, SettingView);
};
var numbernext = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
X = Application.GetRealWidth (550),
Tag = musicModel,
};
NASrowLayout.AddChidren (numbernext);
////歌曲列表
numbernext.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist Nassonglist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (Nassonglist);
Nassonglist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (ListNumberNas); }), musicModel, 2, SettingView);
};
}
sdContentNAS.Height = Application.GetRealHeight (musicModel.NASListList.Count * 100);
});
});
};
nextnas.MouseUpEventHandler += (sender, e) => {
nextnas.IsSelected = !nextnas.IsSelected;
if (nextnas.IsSelected) {
for (int i = 0; i < musicModel.NASListList.Count; i++) {
var rowLa = new RowLayout {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
sdContentNAS.AddChidren (rowLa);
var number = new Button {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
Text = musicModel.NASListList [i].name,
};
rowLa.AddChidren (number);
string typeAndListNumber = musicModel.NASListList [i].number;
number.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 2, SettingView);
};
var numbernext = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
X = Application.GetRealWidth (550),
Tag = musicModel,
};
rowLa.AddChidren (numbernext);
//歌曲列表
numbernext.MouseDownEventHandler += (sender1, e1) => {
Button button = (Button)sender1;
Songlist songlist = new Songlist {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (songlist);
songlist.Show (musicModel.NasSongList.FindAll ((song) => { return song.number.StartsWith (typeAndListNumber); }), musicModel, 2, SettingView);
};
}
sdContentNAS.Height = Application.GetRealHeight (musicModel.NASListList.Count * 100);
} else {
readListNAS.UnSelectedImagePath = "MusicIcon/Listreading.png";
sdContentNAS.Height = 0;
}
};
middle.AddChidren (sdContentNAS);
var refurbishNAS = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/refurbish.png",
SelectedImagePath = "MusicIcon/refurbishSelected.png",
X = Application.GetRealWidth (460),
Gravity = Gravity.CenterVertical,
};
nasrowlayout.AddChidren (refurbishNAS);
refurbishNAS.MouseUpEventHandler += (sender, e) => {
refurbishNAS.IsSelected = true;
MainPage.Loading.Start ();
System.Threading.Tasks.Task.Run (() => {
Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*S2UPDATELIST"));
System.Threading.Thread.Sleep (4000);
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
refurbishNAS.IsSelected = false;
});
});
};
//蓝牙
var bluetoothrowlayout = new RowLayout {
LineColor = 0x62818181,
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (bluetoothrowlayout);
var bluetoothhoto = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/bluetooth.png",
SelectedImagePath = "MusicIcon/bluetoothselected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
bluetoothrowlayout.AddChidren (bluetoothhoto);
var bluetooth = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
TextID = MyInternationalizationString.Musicbluetooth,
TextSize = 15,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
bluetoothrowlayout.AddChidren (bluetooth);
var nextbluetooth = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (550),
Gravity = Gravity.CenterVertical,
};
bluetoothrowlayout.AddChidren (nextbluetooth);
bluetooth.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playPage = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playPage);
playPage.Show (musicModel, new List (), SettingView);
playPage.SourceId = 8;
};
nextbluetooth.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playPage = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playPage);
playPage.Show (musicModel, new List (), SettingView);
playPage.SourceId = 8;
};
//FM收音机
var FMowlayout = new RowLayout {
LineColor = 0x62818181,
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (FMowlayout);
var FM = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/FM.png",
SelectedImagePath = "MusicIcon/FMselected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
FMowlayout.AddChidren (FM);
var FMtooth = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
//Text="收音机",
TextID = MyInternationalizationString.MusicFM,
TextSize = 15,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
FMowlayout.AddChidren (FMtooth);
FMtooth.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID,
MusicModel.MusiceBytes ("*Z1SRC5"));
RadioPage playMusicRadio = new RadioPage {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (playMusicRadio);
playMusicRadio.Show (musicModel, SettingView);
};
var nextFM = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (550),
Gravity = Gravity.CenterVertical,
};
FMowlayout.AddChidren (nextFM);
nextFM.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
Control.ControlBytesSend (Command.ControlMusicModel, musicModel.SubnetID, musicModel.DeviceID,
MusicModel.MusiceBytes ("*Z1SRC5"));
RadioPage playMusicRadio = new RadioPage {
Width = LayoutParams.MatchParent,
Height = LayoutParams.MatchParent,
};
MainPage.MainFrameLayout.AddChidren (playMusicRadio);
playMusicRadio.Show (musicModel, SettingView);
};
var CDrowlayout = new RowLayout {
LineColor = 0x62818181,
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (CDrowlayout);
var CDhoto = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/CD.png",
SelectedImagePath = "MusicIcon/CDSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
CDrowlayout.AddChidren (CDhoto);
var CD = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
//Text = "CD",
TextID = MyInternationalizationString.MusicCD,
TextSize = 15,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
CDrowlayout.AddChidren (CD);
var nextCD = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (550),
Gravity = Gravity.CenterVertical,
};
CDrowlayout.AddChidren (nextCD);
nextCD.MouseUpEventHandler += (sedner, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playMusicCD = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playMusicCD);
playMusicCD.Show (musicModel, new List (), SettingView);
playMusicCD.SourceId = 6;
};
CD.MouseUpEventHandler += (semder, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playPage = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playPage);
playPage.Show (musicModel, new List (), SettingView);
playPage.SourceId = 6;
};
//FD光纤
var FDrowlayout = new RowLayout {
LineColor = 0x62818181,
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
middle.AddChidren (FDrowlayout);
var FDhoto = new Button {
Width = Application.GetRealWidth (80),
Height = Application.GetRealHeight (76),
UnSelectedImagePath = "MusicIcon/FD.png",
SelectedImagePath = "MusicIcon/FDSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (30),
Gravity = Gravity.CenterVertical,
};
FDrowlayout.AddChidren (FDhoto);
var FD = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
//Text = "FD",
TextID = MyInternationalizationString.MusicFD,
TextSize = 15,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
FDrowlayout.AddChidren (FD);
FD.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playPage = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playPage);
playPage.Show (musicModel, new List (), SettingView);
playPage.SourceId = 9;
};
var nextFD = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (550),
Gravity = Gravity.CenterVertical,
};
FDrowlayout.AddChidren (nextFD);
nextFD.MouseUpEventHandler += (sender, e) => {
//先移除当前控件的前面那个控件
this.Parent.RemoveAt (this.Parent.ChildrenCount - 2);
//当前控件界面
this.RemoveFromParent ();
PlayPage playPage = new PlayPage { };
MainPage.MainFrameLayout.AddChidren (playPage);
playPage.Show (musicModel, new List (), SettingView);
playPage.SourceId = 9;
};
//我的最爱
var rowList = new RowLayout {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
};
//middle.AddChidren(rowList);
var likehoto = new Button {
Width = Application.GetRealWidth (105),
Height = Application.GetRealHeight (113),
UnSelectedImagePath = "MusicIcon/like.png",
SelectedImagePath = "MusicIcon/likeSelected.png",
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (20),
Gravity = Gravity.CenterVertical,
};
rowList.AddChidren (likehoto);
var likedList = new Button {
Width = LayoutParams.MatchParent,
Height = Application.GetRealHeight (100),
TextID = MyInternationalizationString.Musiclike,
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth (130),
};
rowList.AddChidren (likedList);
likedList.MouseDownEventHandler += (sender, e) => {
LikeList likeList = new LikeList { };
MainPage.MainFrameLayout.AddChidren (likeList);
likeList.Show (musicModel, SettingView);
};
var nextlike = new Button {
Width = Application.GetRealWidth (87),
Height = Application.GetRealHeight (100),
UnSelectedImagePath = "MusicIcon/Next.png",
X = Application.GetRealWidth (550),
};
rowList.AddChidren (nextlike);
nextlike.MouseDownEventHandler += (sender, e) => {
LikeList likeList = new LikeList { };
MainPage.MainFrameLayout.AddChidren (likeList);
likeList.Show (musicModel, SettingView);
};
}
///
/// 读取列表
///
/// 音乐对象
/// 源号
void readPlayList (MusicModel musicModel, int sourceID)
{
List listMusicTypeName = new List ();
List listMusicListName = new List ();
List listMusicSongName = new List ();
#region 读取类型
//int typeNum = 0;
////读取类型
//while (true)
//{
// typeNum++;
// string typeNumStr = "";
// if (typeNum < 10)
// {
// typeNumStr = "00" + typeNum.ToString();
// }
// else if (typeNum < 100)
// {
// typeNumStr = "0" + typeNum.ToString();
// }
// else
// {
// typeNumStr = typeNumStr.ToString();
// }
// byte[] bytes = Control.ControlBytesSendHasReturn(Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes("*Z011TYPE" + typeNumStr + "1"));
// if (bytes == null)
// {
// return;
// }
// int count = 0;
// for (int i = 15; i < bytes.Length - 1;)
// {
// if (bytes[i] == 0x00 && bytes[i + 1] == 0x03)
// {
// //如果读取到结束符的时候,就退出
// break;
// }
// count += 2;
// //unicode码顺序要对换,要不有乱码
// byte b = bytes[i];
// bytes[i] = bytes[i + 1];
// bytes[i + 1] = b;
// //每个字符有两个byte
// i += 2;
// }
// //反馈回来的类型名
// string content = System.Text.Encoding.Unicode.GetString(bytes, 15, count);
// if (null == listMusicTypeName.Find((kv) => { return kv.number == typeNumStr; }))
// {
// listMusicTypeName.Add(new KeyAndValue { number = typeNumStr, name = content });
// }
// if (bytes[12] == (byte)'1')
// {
// //已经读取完成,退出读取音乐类型
// break;
// }
//}
#endregion
listMusicTypeName.Add (new KeyAndValue { number = "001", name = "Default" });
#region 读取列表
//读取列表
for (int i = 0; i < listMusicTypeName.Count; i++) {
string typeNumberString = listMusicTypeName [i].number;
int listCount = 0;
while (true) {
listCount++;
string listNumberStr = "";
if (listCount < 10) {
listNumberStr = "00" + listCount;
} else if (listCount < 100) {
listNumberStr = "0" + listCount;
} else {
listNumberStr = listCount.ToString ();
}
byte [] bytes = Control.ControlBytesSendHasReturn (Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z01" + sourceID + "LIST" + typeNumberString + listNumberStr + "1"));
if (bytes == null) {
//当前可能是丢包,读取下一条
break;
}
int count = 0;
for (int j = 15 + 3; j < bytes.Length - 1;) {
if (bytes [j] == 0x00 && bytes [j + 1] == 0x03) {
//如果读取到结束符的时候,就退出
break;
}
count += 2;
//unicode码顺序要对换,要不有乱码
byte b = bytes [j];
bytes [j] = bytes [j + 1];
bytes [j + 1] = b;
//每个字符有两个byte
j += 2;
}
//反馈回来的类型名
string content = System.Text.Encoding.Unicode.GetString (bytes, 15 + 3, count);
if (null == listMusicListName.Find ((kv) => { return kv.number == typeNumberString + listNumberStr; })) {
listMusicListName.Add (new KeyAndValue { number = typeNumberString + listNumberStr, name = content });
}
if (bytes [12 + 3] == (byte)'1') {
//已经读取完成,退出读取音乐类型
break;
}
}
}
#endregion
#region 读取音乐
//读取音乐
for (int i = 0; i < listMusicListName.Count; i++) {
string listNumberString = listMusicListName [i].number;
int songCount = 0;
while (true) {
songCount++;
string songNumberStr = "";
if (songCount < 10) {
songNumberStr = "00" + songCount;
} else if (songCount < 100) {
songNumberStr = "0" + songCount;
} else {
songNumberStr = songCount.ToString ();
}
byte [] bytes = Control.ControlBytesSendHasReturn (Command.ControlMusicModel2, musicModel.SubnetID, musicModel.DeviceID, MusicModel.MusiceBytes ("*Z01" + sourceID + "SONG" + listNumberString + songNumberStr + "1"));
if (bytes == null) {
//当前可能是丢包,读取下一条
break;
}
int count = 0;
for (int j = 15 + 3 + 3; j < bytes.Length - 1;) {
if (bytes [j] == 0x00 && bytes [j + 1] == 0x03) {
break;
}
count += 2;
byte b = bytes [j];
bytes [j] = bytes [j + 1];
bytes [j + 1] = b;
j += 2;
}
//反馈回来的类型名
string content = System.Text.Encoding.Unicode.GetString (bytes, 15 + 3 + 3, count);
if (null == listMusicSongName.Find ((kv) => { return kv.number == listNumberString + songNumberStr; })) {
listMusicSongName.Add (new KeyAndValue { number = listNumberString + songNumberStr, name = content });
if (bytes [12 + 3 + 3] == (byte)'1') {
//已经读取完成,退出读取音乐类型
break;
}
}
}
}
#endregion
if (sourceID == 1) {
//SD卡播放列表
musicModel.SDCardTypeList = listMusicTypeName;
musicModel.SDCardListList = listMusicListName;
musicModel.SDCardSongList = listMusicSongName;
} else {
//Nas播放列表
musicModel.NASTypeList = listMusicTypeName;
musicModel.NASListList = listMusicListName;
musicModel.NasSongList = listMusicSongName;
}
//读取列表完成,重新保存起来
string saveRoomUIName = "Room_" + Room.CurrentRoom.Name;
Shared.IO.FileUtils.WriteFileByBytes (saveRoomUIName,
Shared.SimpleControl.CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (Room.CurrentRoom)));
}
}
}