using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using HDL_ON.Entity;
|
using Shared;
|
|
namespace HDL_ON.UI.Music
|
{
|
|
[System.Serializable]
|
public class A31MusicModel : Function
|
{
|
public static List<A31MusicModel> A31MusicModelList = new List<A31MusicModel> { };
|
static readonly string a31MusiceModeListFilePath = "A31MusiceModeListFilePath";
|
static A31MusicModel()
|
{
|
Refresh();
|
//Type = DeviceType.A31MusicModel;
|
}
|
/// <summary>
|
///保存当前音乐列表
|
/// </summary>
|
public static void Save()
|
{
|
FileUtils.WriteFileByBytes(a31MusiceModeListFilePath, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(A31MusicModelList)));
|
}
|
|
public static void Refresh()
|
{
|
if (null == Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile(a31MusiceModeListFilePath))))
|
{
|
A31MusicModelList = new List<A31MusicModel> { };
|
//初始化房间列表
|
Save();
|
}
|
else
|
{
|
A31MusicModelList = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.List<A31MusicModel>>(System.Text.Encoding.UTF8.GetString(FileUtils.ReadFile(a31MusiceModeListFilePath)));
|
}
|
if (A31MusicModelList == null)
|
{
|
A31MusicModelList = new List<A31MusicModel> { };
|
}
|
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";
|
|
/// <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;
|
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;
|
|
/// <summary>
|
/// 喜爱音乐列表
|
/// </summary>
|
public List<MusicInfo> LoveMusicInfoList = new List<MusicInfo>();
|
|
/// <summary>
|
/// DLNA所有列表
|
/// </summary>
|
public List<MusicInfo> dlnaMusicInfoLists = new List<MusicInfo>();
|
|
/// <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>();
|
/// <summary>
|
///创建音乐文件列表
|
/// </summary>
|
public List<FileListInfo> FileLists= new List<FileListInfo>();
|
/// <summary>
|
/// 当前的A31音乐播放器
|
/// </summary>
|
public static A31MusicModel Current;
|
|
/// <summary>
|
/// -1表示从的0表示默认1表示主的
|
/// </summary>
|
public int ServerClientType;
|
/// <summary>
|
/// 记录主播放器IP
|
/// </summary>
|
public string MainPlayIP = string.Empty;
|
/// <summary>
|
/// 记录主播放器名称
|
/// </summary>
|
public string MainPlayName = string.Empty;
|
|
public Slaves Slave = new Slaves();
|
|
public static DateTime ProgressDateTime = DateTime.Now;
|
//static System.Threading.Tasks.Task task;
|
//音量列表
|
//static List<int> volumeCommandList = new List<int> ();
|
|
public static bool IsJson(string json)
|
{
|
try
|
{
|
if (null == Newtonsoft.Json.Linq.JObject.Parse(json))
|
{
|
return false;
|
}
|
return true;
|
}
|
catch
|
{
|
return false;
|
}
|
}
|
|
|
#region 组合属性
|
|
|
#endregion
|
|
}
|
[System.Serializable]
|
/// <summary>
|
/// 自己创建的列表信息
|
/// </summary>
|
public class FileListInfo
|
{
|
/// <summary>
|
/// 列表名
|
/// </summary>
|
public string ListName = string.Empty;
|
/// <summary>
|
/// 列表歌曲信息
|
/// </summary>
|
public List<MusicInfo> MusicInfoList = new List<MusicInfo>();
|
}
|
[System.Serializable]
|
public class TidalMusicInfo : MusicInfo
|
{
|
public MusicInfo MusicInfo;
|
public bool playurl = true;
|
}
|
[System.Serializable]
|
public class Slaves
|
{
|
/// <summary>
|
/// 从播放器值为0
|
/// </summary>
|
public string slaves = "0";
|
public List<Slave> slave_list = new List<Slave>();
|
}
|
[System.Serializable]
|
public class Slave
|
{
|
public string name = string.Empty;
|
public string mask = string.Empty;
|
public string volume = string.Empty;
|
public string mute = string.Empty;
|
public string channel = string.Empty;
|
public string ip = string.Empty;
|
public string version = string.Empty;
|
public string uuid = string.Empty;
|
}
|
|
|
|
}
|