using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using Shared.SimpleControl.Phone;
|
using Shared;
|
using Shared.SimpleControl.R;
|
using SmartHome.UI.SimpleControl.Phone.Music;
|
namespace Shared.SimpleControl.Phone.Music
|
{
|
/// <summary>
|
///源选择界面
|
/// </summary>
|
class SourcePage : Shared.FrameLayout
|
{
|
/// <summary>
|
/// 显示出当前界面
|
/// </summary>
|
/// <param name="musicModel"></param>
|
public void Show(MusicModel musicModel)
|
{
|
AddChidren(new Button()
|
{
|
Height = Application.GetRealHeight(36),
|
BackgroundColor = SkinStyle.Current.MusicTopFrameLayout,
|
});
|
|
var topFrameLayout = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(100),
|
Y = Application.GetRealHeight(36),
|
BackgroundColor = SkinStyle.Current.MusicTopFrameLayout,
|
};
|
AddChidren(topFrameLayout);
|
|
var back = new Button
|
{
|
Width = Application.GetMinRealAverage(72),
|
Height = Application.GetMinRealAverage(89),
|
X = Application.GetRealWidth(10),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "MusicIcon/PlayBack.png",
|
};
|
topFrameLayout.AddChidren(back);
|
back.MouseDownEventHandler += (sender, o) =>
|
{
|
RemoveFromParent();
|
};
|
|
//源标题
|
var titleBtn = new Button
|
{
|
Width = Application.GetRealWidth(200),
|
Height = Application.GetRealHeight(150),
|
TextID = MyInternationalizationString.MusicSource,
|
Gravity = Gravity.Center,
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
topFrameLayout.AddChidren(titleBtn);
|
|
//中间滑动栏
|
var frameLayout = new FrameLayout();
|
frameLayout.Y = Application.GetRealHeight(136);
|
frameLayout.Height= Application.GetRealHeight (Application.DesignHeight-136);
|
//frameLayout.BackgroundImagePath = "MusicIcon/HomepageBackgroun.png";
|
frameLayout.BackgroundColor = SkinStyle.Current.MusicVerticalScrolViewLayout;
|
this.AddChidren(frameLayout);
|
|
var middle = new VerticalScrolViewLayout ();
|
frameLayout.AddChidren (middle);
|
|
#region SD
|
var rowSD = new RowLayout
|
{
|
Height = Application.GetRealHeight(100),
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
};
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
|
};
|
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 =SkinStyle.Current.MusicMiddleBackgroundColor,
|
};
|
|
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),
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
};
|
sdContentSD.AddChidren(rowLa);
|
|
var number = new Button
|
{
|
Width = LayoutParams.MatchParent,
|
Height = LayoutParams.MatchParent,
|
Text = musicModel.SDCardListList[i].name,
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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);
|
};
|
|
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);
|
|
};
|
}
|
|
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
|
{
|
|
Height = Application.GetRealHeight(100),
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
};
|
sdContentSD.AddChidren(rowLa);
|
|
var number = new Button
|
{
|
Width = LayoutParams.MatchParent,
|
Height = LayoutParams.MatchParent,
|
Text = musicModel.SDCardListList[i].name,
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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);
|
};
|
|
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);
|
|
};
|
}
|
sdContentSD.Height = Application.GetRealHeight(musicModel.SDCardListList.Count * 100);
|
}
|
|
else
|
{
|
readSDList.IsSelected = false;
|
sdContentSD.Height = 0;
|
}
|
|
};
|
|
middle.AddChidren(sdContentSD);
|
#endregion
|
|
#region Nas
|
var nasrowlayout = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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 = SkinStyle.Current.MusicMiddleBackgroundColor,
|
};
|
|
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),
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
};
|
sdContentNAS.AddChidren(NASrowLayout);
|
|
var listNSA = new Button
|
{
|
Width = LayoutParams.MatchParent,
|
Height = LayoutParams.MatchParent,
|
X = Application.GetRealWidth(30),
|
Text = musicModel.NASListList[i].name,
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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);
|
};
|
|
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);
|
|
};
|
}
|
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
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
Height = Application.GetRealHeight(100),
|
};
|
sdContentNAS.AddChidren(rowLa);
|
|
var number = new Button
|
{
|
Width = LayoutParams.MatchParent,
|
Height = LayoutParams.MatchParent,
|
Text = musicModel.NASListList[i].name,
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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);
|
};
|
|
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);
|
|
};
|
}
|
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;
|
});
|
});
|
};
|
#endregion
|
|
#region 蓝牙
|
var bluetoothrowlayout = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
Height = Application.GetRealHeight(100),
|
};
|
middle.AddChidren(bluetoothrowlayout);
|
|
var bluetoothhoto = new Button
|
{
|
Width = Application.GetRealWidth(61),
|
Height = Application.GetRealHeight(81),
|
UnSelectedImagePath = "MusicIcon/bluetooth.png",
|
SelectedImagePath = "MusicIcon/bluetoothselected.png",
|
TextAlignment = TextAlignment.CenterLeft,
|
X = Application.GetRealWidth(40),
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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<KeyAndValue>());
|
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<KeyAndValue>());
|
playPage.SourceId = 8;
|
};
|
#endregion
|
|
#region FM收音机
|
var FMowlayout = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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);
|
};
|
|
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);
|
};
|
#endregion
|
|
#region CD
|
var CDrowlayout = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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<KeyAndValue>());
|
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<KeyAndValue>());
|
playPage.SourceId = 6;
|
};
|
#endregion
|
|
#region FD光纤
|
var FDrowlayout = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
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),
|
TextColor = SkinStyle.Current.MusicTextColor,
|
};
|
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<KeyAndValue>());
|
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<KeyAndValue>());
|
playPage.SourceId = 9;
|
};
|
#endregion
|
|
#region 我的最爱
|
var rowList = new RowLayout
|
{
|
LineColor = SkinStyle.Current.MusicRowLayoutLineColor,
|
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);
|
|
};
|
|
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);
|
};
|
#endregion
|
}
|
|
/// <summary>
|
/// 读取列表
|
/// </summary>
|
/// <param name="musicModel">音乐对象</param>
|
/// <param name="sourceID">源号</param>
|
void readPlayList(MusicModel musicModel, int sourceID)
|
{
|
List<KeyAndValue> listMusicTypeName = new List<KeyAndValue>();
|
List<KeyAndValue> listMusicListName = new List<KeyAndValue>();
|
List<KeyAndValue> listMusicSongName = new List<KeyAndValue>();
|
|
#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)));
|
}
|
}
|
}
|
|