private void mpButton1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(_configuration.Graph.Crossbar.Name))
{
IUser user = new User();
user.CardId = _cardNumber;
AnalogChannel temp = new AnalogChannel();
temp.TunerSource = TunerInputType.Antenna;
temp.VideoSource = AnalogChannel.VideoInputType.Tuner;
temp.AudioSource = AnalogChannel.AudioInputType.Tuner;
temp.IsRadio = false;
temp.IsTv = true;
RemoteControl.Instance.Tune(ref user, temp, -1);
_configuration = Configuration.readConfiguration(_cardNumber, _cardName, _devicePath);
if (string.IsNullOrEmpty(_configuration.Graph.Crossbar.Name))
{
MessageBox.Show(this, "The S-Video channels could not be detected.");
return;
}
ReCheckSettings();
}
TvBusinessLayer layer = new TvBusinessLayer();
Dictionary<AnalogChannel.VideoInputType, int> videoPinMap = _configuration.Graph.Crossbar.VideoPinMap;
AnalogChannel tuningDetail;
Card card = layer.GetCardByDevicePath(RemoteControl.Instance.CardDevice(_cardNumber));
Channel dbChannel;
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.VideoInput1))
{
string channelName = "CVBS#1 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.VideoInput1;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.VideoInput2))
{
string channelName = "CVBS#2 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.VideoInput2;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.VideoInput3))
{
string channelName = "CVBS#3 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.VideoInput3;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.SvhsInput1))
{
string channelName = "S-Video#1 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.SvhsInput1;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.SvhsInput2))
{
string channelName = "S-Video#2 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.SvhsInput2;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.SvhsInput3))
{
string channelName = "S-Video#3 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.SvhsInput3;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.RgbInput1))
{
string channelName = "RGB#1 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.RgbInput1;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.RgbInput2))
{
string channelName = "RGB#2 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.RgbInput2;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.RgbInput3))
{
string channelName = "RGB#3 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.RgbInput3;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.YRYBYInput1))
{
string channelName = "YRYBY#1 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.YRYBYInput1;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.YRYBYInput2))
{
string channelName = "YRYBY#2 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.YRYBYInput2;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.YRYBYInput3))
{
string channelName = "YRYBY#3 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.YRYBYInput3;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.HdmiInput1))
{
string channelName = "HDMI#1 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.HdmiInput1;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.HdmiInput2))
{
string channelName = "HDMI#2 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.HdmiInput2;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
if (videoPinMap.ContainsKey(AnalogChannel.VideoInputType.HdmiInput3))
{
string channelName = "HDMI#3 on " + card.IdCard;
IList<TuningDetail> tuningDetails = layer.GetTuningDetailsByName(channelName, 0);
if (tuningDetails != null && tuningDetails.Count > 0)
{
dbChannel = tuningDetails[0].ReferencedChannel();
}
else
{
dbChannel = layer.AddNewChannel(channelName);
}
dbChannel.IsTv = true;
dbChannel.Persist();
tuningDetail = new AnalogChannel();
tuningDetail.IsTv = true;
tuningDetail.Name = dbChannel.DisplayName;
tuningDetail.VideoSource = AnalogChannel.VideoInputType.HdmiInput3;
layer.AddTuningDetails(dbChannel, tuningDetail);
layer.MapChannelToCard(card, dbChannel, false);
layer.AddChannelToGroup(dbChannel, TvConstants.TvGroupNames.AllChannels);
}
MessageBox.Show(this, "Channels added.");
}