using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.SimpleControl;
|
using Shared.SimpleControl.R;
|
|
namespace Shared
|
{
|
/// <summary>
|
/// 红外发射
|
/// </summary>
|
[System.Serializable]
|
public class InfraredMode : Common
|
{
|
public InfraredMode () : base ()
|
{
|
this.Type = DeviceType.InfraredMode;
|
DeviceTextID = 41; //SimpleControl.R.MyInternationalizationString.TV;
|
}
|
//设备码:DeviceID 0:投影机 1:风扇 2:机顶盒 3:DVD 4:TV 5:空调 6:IPTV
|
public InfraredType InfraredType = InfraredType.NULL;
|
|
public List<InfraredCustomKey> infraredFuntionList = new List<InfraredCustomKey> ();
|
|
public List<InfraredCustomKey> infraredInherentFunctions = new List<InfraredCustomKey> ();
|
|
public string Port = "1";
|
|
/// <summary>
|
/// 是否是通用开关控制
|
/// </summary>
|
public bool IsUniversalSwitch = false;
|
|
/// <summary>
|
/// 虚拟记录当前设备到开关状
|
/// 用来app显示图标到状态
|
/// </summary>
|
public bool isOpen = false;
|
|
/// <summary>
|
/// app初始化默认到红外控制按键
|
/// </summary>
|
public void InitFunction ()
|
{
|
//Confrim,//00021=确定
|
//Up,//00022=上
|
//Left,//00023=左
|
//Right,//00024=右
|
//Down,//00025=下
|
infraredFuntionList = new List<InfraredCustomKey> ();
|
if (InfraredType == InfraredType.TV) {
|
//One,//00008=1
|
//Two,//00009=2
|
//Three,//00010=3
|
//Four,//00011=4
|
//Five,//00012=5
|
//Six,//00013=6
|
//Seven,//00014=7
|
//Eight,//00015=8
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 8,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 9,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 10,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 11,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 12,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 13,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 14,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 15,
|
});
|
//Back,//00020=返回
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 20,
|
});
|
//Nine,//00016=9
|
//Zero,//00018=0
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 16,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 18,
|
});
|
//Menu,//00003=菜单
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 3,
|
});
|
//Power,//00006=电源键
|
//VolDown = 1,
|
//VolUp,//00005=音量+
|
//Mute,//00007=静音
|
//infraredFuntionList.Add (new InfraredCustomKey () {
|
// functionCode = 6,
|
//});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 5,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 1,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 7,
|
});
|
|
//ChannelUp,//00002=频道+
|
//ChannelDown,//00004=频道-
|
//Change,//00017=-/--
|
//AV_TV,//00019=AV/TV
|
//infraredFuntionList.Add (new InfraredCustomKey () {
|
// functionCode = 4,
|
//});
|
//infraredFuntionList.Add (new InfraredCustomKey () {
|
// functionCode = 17,
|
//});
|
//infraredFuntionList.Add (new InfraredCustomKey () {
|
// functionCode = 19,
|
//});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 2,
|
});
|
} else if(InfraredType == InfraredType.STB) {
|
//One,2
|
//Two,3
|
//Three,
|
//Four,
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 2,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 3,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 4,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 5,
|
});
|
//Five,6
|
//Six,7
|
//Seven,8
|
//Eight,9
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 6,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 7,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 8,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 9,
|
});
|
//Back,13
|
//Nine,10
|
//Zero,12
|
//Menu,23
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 13,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 10,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 12,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 23,
|
});
|
//Standby = 1,
|
//HomePage,11
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 1,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 11,
|
});
|
//VolUp,19
|
//VolDown,20
|
//ChannelUp,21
|
//ChannelDown,22
|
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 20,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 19,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 22,
|
});
|
infraredFuntionList.Add (new InfraredCustomKey () {
|
functionCode = 21,
|
});
|
//Up,14
|
//Left,15
|
//Confrim,16
|
//Right,17
|
//Down,18
|
}
|
IO.FileUtils.SaveEquipmentMessage (this, this.LoopID.ToString ());
|
}
|
/// <summary>
|
/// 初始化固有按键
|
/// </summary>
|
public void InitInherentFunction ()
|
{
|
if(InfraredType == InfraredType.TV) {
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Up", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Up});
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Down", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Down});
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Left", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Left});
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Right", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Right});
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "OK", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Confrim});
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Power", universalSwitchId = 0 , functionCode = (byte)InfraredCode_TV.Confrim});
|
}else if (InfraredType == InfraredType.STB) {
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Up", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Up });
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Down", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Down });
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Left", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Left });
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Right", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Right });
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "OK", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Confrim });
|
infraredInherentFunctions.Add (new InfraredCustomKey () { functionName = "Power", universalSwitchId = 0, functionCode = (byte)InfraredCode_STB.Confrim });
|
}
|
}
|
|
public List<InfraredCustomChannel> InfraredCustomChannel = new List<InfraredCustomChannel> ();
|
}
|
/// <summary>
|
/// 红外控制类型
|
/// </summary>
|
public enum InfraredType
|
{
|
STB = 2,
|
TV = 4,
|
AC = 5,
|
NULL = 255,
|
}
|
|
/// <summary>
|
/// 自定义功能
|
/// </summary>
|
[System.Serializable]
|
public class InfraredCustomKey
|
{
|
|
public string functionName = "";
|
/// <summary>
|
/// 按键号、序号
|
/// </summary>
|
public byte functionCode = 254;
|
/// <summary>
|
/// 通用开关号
|
/// </summary>
|
public byte universalSwitchId = 0;
|
|
public byte GetUniversalSwitchId (InfraredType infraredType)
|
{
|
byte id = 254;
|
if(infraredType == InfraredType.TV) {
|
|
}
|
|
return id;
|
}
|
/// <summary>
|
/// 获取选中状态图片
|
/// </summary>
|
public string GetSelectedImagePath (InfraredType infraredType)
|
{
|
string imagePath = "";
|
if (infraredType == InfraredType.TV) {
|
switch (functionCode) {
|
case 1://VolDown = 1,
|
imagePath = "TVIcon/20_On.png";
|
break;
|
case 2:
|
imagePath = "TVIcon/16_On.png";
|
break;
|
case 3:
|
imagePath = "TVIcon/11_On.png";
|
break;
|
case 4:
|
imagePath = "TVIcon/15_On.png";
|
break;
|
case 5:
|
imagePath = "TVIcon/18_On.png";
|
break;
|
case 6:
|
imagePath = "TVIcon/12_On.png";
|
break;
|
case 7:
|
imagePath = "TVIcon/19_On.png";
|
break;
|
case 8:
|
imagePath = "TVIcon/0_On.png";
|
break;
|
case 9:
|
imagePath = "TVIcon/1_On.png";
|
break;
|
case 10:
|
imagePath = "TVIcon/2_On.png";
|
break;
|
case 11:
|
imagePath = "TVIcon/3_On.png";
|
break;
|
case 12:
|
imagePath = "TVIcon/4_On.png";
|
break;
|
case 13:
|
imagePath = "TVIcon/5_On.png";
|
break;
|
case 14:
|
imagePath = "TVIcon/6_On.png";
|
break;
|
case 15:
|
imagePath = "TVIcon/7_On.png";
|
break;
|
case 16:
|
imagePath = "TVIcon/9_On.png";
|
break;
|
case 17:
|
imagePath = "TVIcon/21_On.png";
|
break;
|
case 18:
|
imagePath = "TVIcon/10_On.png";
|
break;
|
case 19:
|
imagePath = "TVIcon/21_On.png";
|
break;
|
case 20:
|
imagePath = "TVIcon/8_On.png";
|
break;
|
case 26:
|
imagePath = "TVIcon/Guide_On.png";
|
break;
|
case 27:
|
imagePath = "TVIcon/Source_On.png";
|
break;
|
case 28:
|
imagePath = "TVIcon/Info_On.png";
|
break;
|
case 29:
|
imagePath = "TVIcon/Exit_On.png";
|
break;
|
case 30:
|
imagePath = "TVIcon/Tools_On.png";
|
break;
|
case 31:
|
imagePath = "TVIcon/SmartHub_On.png";
|
break;
|
case 32:
|
imagePath = "TVIcon/Netflix_On.png";
|
break;
|
}
|
} else if (infraredType == InfraredType.STB) {
|
//Up,14
|
//Left,15
|
//Confrim,16
|
//Right,17
|
//Down,18
|
switch (functionCode) {
|
//VolDown,20
|
case 20:
|
imagePath = "TVIcon/20_On.png";
|
break;
|
//ChannelUp,21
|
case 21:
|
imagePath = "TVIcon/13_On.png";
|
break;
|
//Menu,23
|
case 23:
|
imagePath = "TVIcon/11_On.png";
|
break;
|
//ChannelDown,22
|
case 22:
|
imagePath = "TVIcon/14_On.png";
|
break;
|
//VolUp,19
|
case 19:
|
imagePath = "TVIcon/18_On.png";
|
break;
|
//Standby = 1,
|
case 1:
|
imagePath = "TVIcon/12_On.png";
|
break;
|
//One,
|
case 2:
|
imagePath = "TVIcon/0_On.png";
|
break;
|
//Two,3
|
case 3:
|
imagePath = "TVIcon/1_On.png";
|
break;
|
//Three,4
|
case 4:
|
imagePath = "TVIcon/2_On.png";
|
break;
|
//Four,5
|
case 5:
|
imagePath = "TVIcon/3_On.png";
|
break;
|
//Five,6
|
case 6:
|
imagePath = "TVIcon/4_On.png";
|
break;
|
//Six,7
|
case 7:
|
imagePath = "TVIcon/5_On.png";
|
break;
|
//Seven,8
|
case 8:
|
imagePath = "TVIcon/6_On.png";
|
break;
|
//Eight,9
|
case 9:
|
imagePath = "TVIcon/7_On.png";
|
break;
|
//Back,13
|
case 13:
|
imagePath = "TVIcon/8_On.png";
|
break;
|
//Nine,10
|
case 10:
|
imagePath = "TVIcon/9_On.png";
|
break;
|
case 17://00017=-/--
|
imagePath = "TVIcon/21_On.png";
|
break;
|
//Zero,12
|
case 12:
|
imagePath = "TVIcon/10_On.png";
|
break;
|
//------机顶盒自定义按键
|
case 24:
|
imagePath = "TVIcon/Info_On.png";
|
break;
|
case 25:
|
imagePath = "TVIcon/Guide_On.png";
|
break;
|
case 26:
|
imagePath = "TVIcon/Tools_On.png";
|
break;
|
case 27:
|
imagePath = "TVIcon/Next_On.png";
|
break;
|
case 28:
|
imagePath = "TVIcon/RedKey_On.png";
|
break;
|
case 29:
|
imagePath = "TVIcon/GreenKey_On.png";
|
break;
|
case 30:
|
imagePath = "TVIcon/YellowKey_On.png";
|
break;
|
case 31:
|
imagePath = "TVIcon/BlueKey_On.png";
|
break;
|
case 32:
|
imagePath = "TVIcon/Confirm_On.png";
|
break;
|
case 33:
|
imagePath = "TVIcon/19_On.png";
|
break;
|
//VolDown,20
|
case 11:
|
imagePath = "TVIcon/17_On.png";
|
break;
|
case 34://=-/--
|
imagePath = "TVIcon/21_On.png";
|
break;
|
}
|
}
|
return imagePath;
|
}
|
/// <summary>
|
/// 获取文本
|
/// </summary>
|
public string GetText(InfraredType infraredType)
|
{
|
string str = "";
|
if (infraredType == InfraredType.TV) {
|
switch (functionCode) {
|
case 1://VolDown = 1,
|
str = Language.StringByID (MyInternationalizationString.VolumeDown);
|
break;
|
case 2:
|
str = Language.StringByID (MyInternationalizationString.ChannelUp);
|
break;
|
case 3:
|
str = Language.StringByID (MyInternationalizationString.Menu);
|
break;
|
case 4:
|
str = Language.StringByID (MyInternationalizationString.ChannelDown);
|
break;
|
case 5:
|
str = Language.StringByID (MyInternationalizationString.VolumeUp);
|
break;
|
case 7:
|
str = Language.StringByID (MyInternationalizationString.Mute);
|
break;
|
case 13:
|
str = Language.StringByID (MyInternationalizationString.back);
|
break;
|
case 20:
|
str = Language.StringByID (MyInternationalizationString.back);
|
break;
|
case 26:
|
str = "Guide";
|
break;
|
case 27:
|
str = "Source";
|
break;
|
case 28:
|
str = "Info";
|
break;
|
case 29:
|
str = "Exit";
|
break;
|
case 30:
|
str = "Tools";
|
break;
|
case 31:
|
str = "SmartHub";
|
break;
|
case 32:
|
str = "Netflix";
|
break;
|
}
|
} else if (infraredType == InfraredType.STB) {
|
switch (functionCode) {
|
//VolUp,19
|
//VolDown,20
|
//ChannelUp,21
|
//ChannelDown,22
|
//Menu,23
|
case 20://VolDown = 1,
|
str = Language.StringByID (MyInternationalizationString.Volume);
|
break;
|
case 19:
|
str = Language.StringByID (MyInternationalizationString.Volume);
|
break;
|
case 23:
|
str = Language.StringByID (MyInternationalizationString.Menu);
|
break;
|
case 22:
|
str = Language.StringByID (MyInternationalizationString.Channel);
|
break;
|
case 21:
|
str = Language.StringByID (MyInternationalizationString.Channel);
|
break;
|
//------机顶盒自定义按键
|
case 24:
|
str = "Info";
|
break;
|
case 25:
|
str = "Guide";
|
break;
|
case 26:
|
str = "Tools";
|
break;
|
case 27:
|
str = "Next";
|
break;
|
case 32:
|
str = "Confirm";
|
break;
|
case 33:
|
str = "Mute";
|
break;
|
case 11:
|
str = "Home";
|
break;
|
case 13:
|
str = Language.StringByID (MyInternationalizationString.back);
|
break;
|
case 34://=-/--
|
str = @"AV/TV";
|
break;
|
}
|
}
|
return str;
|
}
|
/// <summary>
|
/// 获取未选中状态图片
|
/// </summary>
|
public string GetUnSelectedImagePath(InfraredType infraredType)
|
{
|
string imagePath = "";
|
if (infraredType == InfraredType.TV) {
|
switch (functionCode) {
|
case 1://VolDown = 1,
|
imagePath = "TVIcon/20.png";
|
break;
|
case 2://00002=频道+
|
imagePath = "TVIcon/16.png";
|
break;
|
case 3://00003=菜单
|
imagePath = "TVIcon/11.png";
|
break;
|
case 4://00004=频道-
|
imagePath = "TVIcon/15.png";
|
break;
|
case 5://00005=音量+
|
imagePath = "TVIcon/18.png";
|
break;
|
case 6://00006=电源键
|
imagePath = "TVIcon/12.png";
|
break;
|
case 7://00007=静音
|
imagePath = "TVIcon/19.png";
|
break;
|
case 8://00008=1
|
imagePath = "TVIcon/0.png";
|
break;
|
case 9://00009=2
|
imagePath = "TVIcon/1.png";
|
break;
|
case 10://00010=3
|
imagePath = "TVIcon/2.png";
|
break;
|
case 11://00011=4
|
imagePath = "TVIcon/3.png";
|
break;
|
case 12://00012=5
|
imagePath = "TVIcon/4.png";
|
break;
|
case 13://00013=6
|
imagePath = "TVIcon/5.png";
|
break;
|
case 14://00014=7
|
imagePath = "TVIcon/6.png";
|
break;
|
case 15://00015=8
|
imagePath = "TVIcon/7.png";
|
break;
|
case 16://00016=9
|
imagePath = "TVIcon/9.png";
|
break;
|
case 17://00017=-/--
|
imagePath = "TVIcon/21.png";
|
break;
|
case 18://00019=AV/TV
|
imagePath = "TVIcon/10.png";
|
break;
|
case 19://00019=AV/TV
|
imagePath = "TVIcon/21.png";
|
break;
|
case 20://00020=返回
|
imagePath = "TVIcon/8.png";
|
break;
|
//----------
|
case 26:
|
imagePath = "TVIcon/Guide.png";
|
break;
|
case 27:
|
imagePath = "TVIcon/Source.png";
|
break;
|
case 28:
|
imagePath = "TVIcon/Info.png";
|
break;
|
case 29:
|
imagePath = "TVIcon/Exit.png";
|
break;
|
case 30:
|
imagePath = "TVIcon/Tools.png";
|
break;
|
case 31:
|
imagePath = "TVIcon/SmartHub.png";
|
break;
|
case 32:
|
imagePath = "TVIcon/Netflix.png";
|
break;
|
|
}
|
} else if (infraredType == InfraredType.STB) {
|
//Up,14
|
//Left,15
|
//Confrim,16
|
//Right,17
|
//Down,18
|
switch (functionCode) {
|
case 34://=-/--
|
imagePath = "TVIcon/21.png";
|
break;
|
//VolDown,20
|
case 11:
|
imagePath = "TVIcon/17.png";
|
break;
|
case 20:
|
imagePath = "TVIcon/20.png";
|
break;
|
//ChannelUp,21
|
case 21:
|
imagePath = "TVIcon/13.png";
|
break;
|
//Menu,23
|
case 23:
|
imagePath = "TVIcon/11.png";
|
break;
|
//ChannelDown,22
|
case 22:
|
imagePath = "TVIcon/14.png";
|
break;
|
//VolUp,19
|
case 19:
|
imagePath = "TVIcon/18.png";
|
break;
|
//Standby = 1,
|
case 1:
|
imagePath = "TVIcon/12.png";
|
break;
|
//One,
|
case 2:
|
imagePath = "TVIcon/0.png";
|
break;
|
//Two,3
|
case 3:
|
imagePath = "TVIcon/1.png";
|
break;
|
//Three,4
|
case 4:
|
imagePath = "TVIcon/2.png";
|
break;
|
//Four,5
|
case 5:
|
imagePath = "TVIcon/3.png";
|
break;
|
//Five,6
|
case 6:
|
imagePath = "TVIcon/4.png";
|
break;
|
//Six,7
|
case 7:
|
imagePath = "TVIcon/5.png";
|
break;
|
//Seven,8
|
case 8:
|
imagePath = "TVIcon/6.png";
|
break;
|
//Eight,9
|
case 9:
|
imagePath = "TVIcon/7.png";
|
break;
|
//Back,13
|
case 13:
|
imagePath = "TVIcon/8.png";
|
break;
|
//Nine,10
|
case 10:
|
imagePath = "TVIcon/9.png";
|
break;
|
case 17://00017=-/--
|
imagePath = "TVIcon/21.png";
|
break;
|
//Zero,12
|
case 12:
|
imagePath = "TVIcon/10.png";
|
break;
|
//------机顶盒自定义按键
|
case 24:
|
imagePath = "TVIcon/Info.png";
|
break;
|
case 25:
|
imagePath = "TVIcon/Guide.png";
|
break;
|
case 26:
|
imagePath = "TVIcon/Tools.png";
|
break;
|
case 27:
|
imagePath = "TVIcon/Next.png";
|
break;
|
case 28:
|
imagePath = "TVIcon/RedKey.png";
|
break;
|
case 29:
|
imagePath = "TVIcon/GreenKey.png";
|
break;
|
case 30:
|
imagePath = "TVIcon/YellowKey.png";
|
break;
|
case 31:
|
imagePath = "TVIcon/BlueKey.png";
|
break;
|
case 32:
|
imagePath = "TVIcon/Confirm.png";
|
break;
|
case 33:
|
imagePath = "TVIcon/19.png";
|
break;
|
}
|
}
|
return imagePath;
|
}
|
|
}
|
/// <summary>
|
/// 电视按键
|
/// </summary>
|
public enum TVKeys
|
{
|
VolDown = 1,
|
ChannelUp,//00002=频道+
|
Menu,//00003=菜单
|
ChannelDown,//00004=频道-
|
VolUp,//00005=音量+
|
Power,//00006=电源键
|
Mute,//00007=静音
|
One,//00008=1
|
Two,//00009=2
|
Three,//00010=3
|
Four,//00011=4
|
Five,//00012=5
|
Six,//00013=6
|
Seven,//00014=7
|
Eight,//00015=8
|
Nine,//00016=9
|
Change,//00017=-/--
|
Zero,//00018=0
|
AV_TV,//00019=AV/TV
|
Back,//00020=返回
|
OK,//00021=确定
|
Up,//00022=上
|
Left,//00023=左
|
Right,//00024=右
|
Down,//00025=下
|
//------电视自定义按键
|
Guide=26,
|
Source,
|
Info,
|
Exit,
|
Tools,
|
SmartHub,
|
Netflix,
|
}
|
/// <summary>
|
/// 通用开关命令列表
|
/// </summary>
|
public enum STBKeys
|
{
|
Standby = 1,
|
One,
|
Two,
|
Three,
|
Four,
|
Five,
|
Six,
|
Seven,
|
Eight,
|
Nine=10,
|
HomePage,
|
Zero,
|
Back,
|
Up,
|
Left,
|
OK,
|
Right,
|
Down,
|
VolUp,
|
VolDown=20,
|
ChannelUp,
|
ChannelDown,
|
Menu,
|
//------机顶盒自定义按键
|
Info = 24,
|
Guide,
|
Tools,
|
Next,
|
RedKey,
|
GreenKey,
|
YellowKey=30,
|
BlueKey,
|
Confirm,
|
Mute,
|
AV_TV,
|
}
|
|
|
/// <summary>
|
/// 用户自定频道
|
/// </summary>
|
[System.Serializable]
|
public class InfraredCustomChannel
|
{
|
public string ChannelName;
|
public string ChannelNumber;
|
public string BackgroundImagePath = "TV/TV3_4.png";
|
public string ChannelIconPath;
|
public byte loopID;
|
public byte port;
|
|
public void Send (byte subnetID,byte deviceID, InfraredType infraredType, bool isUV)
|
{
|
try {
|
for (int i = 0; i < ChannelNumber.Length; i++) {
|
if (isUV) {
|
byte cn = Convert.ToByte (ChannelNumber.Substring (i, 1));
|
Control.ControlBytesSend (Command.SetCommonSwitch, subnetID, deviceID, new byte [] { cn, 255 });
|
} else {
|
int cn = Convert.ToInt32 (ChannelNumber.Substring (i, 1));
|
int RandKey = new Random ().Next (0, 255);
|
byte codeId = Convert.ToByte (cn + 7);//默认控制电视
|
if (infraredType == InfraredType.STB) {
|
codeId = Convert.ToByte (cn + 7);
|
}
|
Control.ControlBytesSend (Command.InfraredControl, subnetID, deviceID, new byte [] { port, loopID,
|
codeId, 0, 0, (byte)RandKey });
|
}
|
}
|
} catch { }
|
}
|
}
|
}
|