public static ChannelInfo ParseRawChannelData(JsonObject channelRawData) { string channelName = null; string channelId = null; var minorNumber = 0; var majorNumber = 0; var channelInfo = new ChannelInfo {RawData = channelRawData}; try { if (!channelRawData.ContainsKey("channelName")) channelName = channelRawData.GetNamedString("channelName"); if (!channelRawData.ContainsKey("channelId")) channelId = channelRawData.GetNamedString("channelId"); if (!channelRawData.ContainsKey("majorNumber")) majorNumber = (int)channelRawData.GetNamedNumber("majorNumber"); if (!channelRawData.ContainsKey("minorNumber")) minorNumber = (int)channelRawData.GetNamedNumber("minorNumber"); var channelNumber = !channelRawData.ContainsKey("channelNumber") ? channelRawData.GetNamedString("channelNumber") : string.Format("{0}-{1}", majorNumber, minorNumber); channelInfo.Name = channelName; channelInfo.Id = channelId; channelInfo.Number = channelNumber; channelInfo.MajorNumber = majorNumber; channelInfo.MinorNumber = minorNumber; } catch (Exception e) { //TODO: get some analysis here throw new Exception("There was an error parsin the channel information", e); } return channelInfo; }
public void SetChannel(ChannelInfo channelInfo, ResponseListener listener) { var responseListener = new ResponseListener ( loadEventArg => { //((ConnectSdk.Windows.Service.Capability.Listeners.LoadEventArgs)(o)).Load.payload var loa = loadEventArg as LoadEventArgs; if (loa != null) { var channelList = loa.Load.GetPayload() as List<ChannelInfo>; if (channelList != null) { var requestUrl = GetUdapRequestUrl(UdapPathCommand); var ps = new Dictionary<string, string>(); foreach (var ch in channelList) { //var rawData = ch.RawData; var major = channelInfo.MajorNumber; var minor = channelInfo.MinorNumber; var majorNumber = ch.MajorNumber; var minorNumber = ch.MinorNumber; if (major != majorNumber || minor != minorNumber) continue; ps.Add("name", "HandleChannelChange"); ps.Add("major", major.ToString()); ps.Add("minor", minor.ToString()); break; } var httpMessage = GetUdapMessageBody(UdapApiCommand, ps); var request = new ServiceCommand(this, requestUrl, httpMessage, listener); request.Send(); } else { Util.PostError(listener, new ServiceCommandError(500, "Could not retrieve channel list")); } } else { Util.PostError(listener, new ServiceCommandError(500, "Could not retrieve channel list")); } }, serviceCommandError => Util.PostError(listener, serviceCommandError) ); GetChannelList(responseListener); }
private ChannelInfo ParseRawChannelData(JsonObject channelRawData) { string channelName = null; string channelId = null; var channelInfo = new ChannelInfo(); channelInfo.RawData = channelRawData; try { if (channelRawData.ContainsKey("channelName")) channelName = channelRawData.GetNamedString("channelName",""); if (channelRawData.ContainsKey("channelId")) channelId = channelRawData.GetNamedString("channelId", ""); string channelNumber = channelRawData.GetNamedString("channelNumber", ""); int majorNumber; if (channelRawData.ContainsKey("majorNumber")) majorNumber = (int)channelRawData.GetNamedNumber("majorNumber"); else majorNumber = ParseMajorNumber(channelNumber); int minorNumber; if (channelRawData.ContainsKey("minorNumber")) minorNumber = (int)channelRawData.GetNamedNumber("minorNumber"); else minorNumber = ParseMinorNumber(channelNumber); channelInfo.Name = channelName; channelInfo.Id = channelId; channelInfo.Number = channelNumber; channelInfo.MajorNumber = majorNumber; channelInfo.MinorNumber = minorNumber; } catch (Exception e) { throw e; } return channelInfo; }
public void SetChannel(ChannelInfo channelInfo, ResponseListener listener) { const string uri = "ssap://tv/openChannel"; var payload = new JsonObject(); try { payload.Add("channelNumber", JsonValue.CreateStringValue(channelInfo.Number)); } catch (Exception) { } var request = new ServiceCommand(this, uri, payload, listener); request.Send(); }
public ProgramList(ChannelInfo channel, JsonArray programList) { Channel = channel; ProgramsList = programList; }
private void ChangeChannel(ChannelInfo channelInfo) { tvControl.SetChannel(channelInfo, null); }
/// <summary> /// Compares two ChannelInfo objects. /// </summary> /// <param name="other">ChannelInfo object to compare.</param> /// <returns>YES if both ChannelInfo number & name values are equal</returns> protected bool Equals(ChannelInfo other) { return string.Equals(Name, other.Name) && string.Equals(Id, other.Id) && string.Equals(Number, other.Number) && MinorNumber == other.MinorNumber && MajorNumber == other.MajorNumber && Equals(RawData, other.RawData); }