public ChannelMapEntry(int number, string callsign, ModulationType modulation, ChannelNumber physicalChannel) { number_ = number; callsign_ = callsign; modulation_ = modulation; physical_channel_ = physicalChannel; }
internal readonly FileTools.BinaryWriter2 binaryWriter; // the one of the Formatter when multiplexed. internal ChannelInfos( SerializationFormatter Formatter, Stream stream, #if DEBUG string NameForDebugging, #endif ChannelNumber ChannelNumber ) { this.stream = stream; #if DEBUG this.NameForDebugging = NameForDebugging; #endif this.ChannelNumber = ChannelNumber; this.streamWriterForText = Formatter.IsStringFormatter ? (Formatter.parameters.TheStreamingMode == StreamingModes.SetOfStreams ? new StreamWriter(stream) : Formatter.streamWriter) : null; this.binaryWriter = !Formatter.IsStringFormatter ? (Formatter.parameters.TheStreamingMode == StreamingModes.SetOfStreams ? new FileTools.BinaryWriter2(stream, Encoding.UTF8) : Formatter.binaryWriter) : null; }
private static int CompareNumbers(ChannelNumber cn1, ChannelNumber cn2) { int val = cn1.Number - cn2.Number; if (val != 0) { return(val); } return(cn1.SubNumber - cn2.SubNumber); }
public override void Parse(byte[] data, int offset) { base.Parse(data, offset); for (int offset2 = offset + 2; offset2 < offset + this.DescriptorLength - 1; offset2 += 4) { ChannelNumber lcn = new ChannelNumber(); lcn.ServiceID = (ushort)((data[offset2] << 8) | (data[offset2 + 1])); lcn.VisibleServiceFlag = (((data[offset2 + 2] >> 7) & 0x01)) != 0;; lcn.Reserved = (byte)(data[offset2 + 2] >> 2 & 0x1F); lcn.LogicalChannelNumber = (ushort)(((data[offset2 + 2] & 0x02) << 8) | (data[offset2 + 3])); this.hdSimulcastlogicalChannelNumbers.Add(lcn); } }
public static void FindAndRemoveCableCARDEIAChannel(Lineup cablecard_lineup, ChannelNumber EIA) { foreach (Channel ch in cablecard_lineup.GetChannels()) { if (ch.TuningInfos != null && !ch.TuningInfos.Empty) { ChannelTuningInfo tuning_info = (ChannelTuningInfo)ch.TuningInfos.First; if (tuning_info.PhysicalNumber == EIA.Number && tuning_info.SubNumber == EIA.SubNumber) { DeleteChannel(ch); } } } }
private void btnCH5_Click(object sender, EventArgs e) { inputSelected = false; UpdateInputLabels(); if (activeChannel == ChannelNumber.CH5) { StopControllerInput(); } else { activeChannel = ChannelNumber.CH5; label5.BackColor = Color.Blue; UpdatePreviousState(); StartControllerInput(); } }
static internal Dictionary <int, ChannelMapEntry> ParseXmlChannelMap(XmlDocument xml_channel_map) { Console.WriteLine("Parsing XML channel map"); Dictionary <int, ChannelMapEntry> channel_map = new Dictionary <int, ChannelMapEntry>(); XmlNodeList channel_nodes = xml_channel_map.SelectNodes("channels/channel"); foreach (XmlNode channel_node in channel_nodes) { string callsign = Encoding.UTF8.GetString( Convert.FromBase64String(channel_node.SelectSingleNode("name/text()").Value)); int number = int.Parse(channel_node.SelectSingleNode("number/text()").Value); string modulation_string = channel_node.SelectSingleNode("modulation/text()").Value; ModulationType modulation; switch (modulation_string) { case "QAM256": modulation = ModulationType.BDA_MOD_256QAM; break; case "QAM64": modulation = ModulationType.BDA_MOD_64QAM; break; case "8VSB": modulation = ModulationType.BDA_MOD_8VSB; break; default: modulation = ModulationType.BDA_MOD_MAX; break; } string physical_channel_string = channel_node.SelectSingleNode("eia/text()").Value; string[] physical_channel_parts = physical_channel_string.Split(new char[] { '.' }); ChannelNumber physical_channel = new ChannelNumber( int.Parse(physical_channel_parts[0]), int.Parse(physical_channel_parts[1])); ChannelMapEntry entry = new ChannelMapEntry(number, callsign, modulation, physical_channel); channel_map[number] = entry; } return(channel_map); }
private void SyncButton_Click(object sender, EventArgs e) { foreach (Channel ch in selected_wmi_lineup.GetChannels()) { ChannelNumber channel_number = ch.ChannelNumber; Channel merged_channel = selected_merged_lineup.GetChannelFromNumber(channel_number.Number, channel_number.SubNumber); if (merged_channel == null) { // missing channel switch ((MissingChannelOptions)MissingChannelOptionsComboBox.SelectedIndex) { case MissingChannelOptions.AddMissingChannels: AppendDebugLine("Adding channel " + channel_number.ToString() + " callsign: " + ch.CallSign); Channel user_channel = ChannelEditing.AddUserChannelToLineupWithoutMerge( selected_scanned_lineup, ch.CallSign, channel_number.Number, channel_number.SubNumber, ModulationType.BDA_MOD_NOT_SET, ch.Service, selected_scanned_lineup.ScanDevices, ChannelType.CalculatedScanned); user_channel.Update(); MergedChannel new_merged_channel = ChannelEditing.CreateMergedChannelFromChannels( new List <Channel>(new Channel[] { user_channel }), channel_number.Number, channel_number.SubNumber, ChannelType.AutoMapped); new_merged_channel.Update(); break; case MissingChannelOptions.SkipMissingChannels: break; } } else { // existing channel switch ((ExistingChannelOptions)ExistingChannelOptionsComboBox.SelectedIndex) { case ExistingChannelOptions.ReplaceListing: if (merged_channel.Service.IsSameAs(ch.Service)) { AppendDebugLine("Channel " + channel_number.ToString() + " already good!"); break; } AppendDebugLine("Replacing listing on channel " + channel_number.ToString() + " old callsign: " + merged_channel.CallSign + " new callsign: " + ch.CallSign); merged_channel.Service = ch.Service; merged_channel.Update(); break; case ExistingChannelOptions.SkipExistingChannels: break; } } } foreach (Channel ch in selected_merged_lineup.GetChannels().ToArray()) { ChannelNumber channel_number = ch.ChannelNumber; Channel wmi_channel = selected_wmi_lineup.GetChannelFromNumber(channel_number.Number, channel_number.SubNumber); if (channel_number == null) { // extra channel switch ((ExtraChannelOptions)ExtraChannelOptionsComboBox.SelectedIndex) { case ExtraChannelOptions.KeepExtraChannels: break; case ExtraChannelOptions.RemoveExtraChannels: AppendDebugLine("Removing Extra channel " + channel_number.ToString() + " callsign: " + ch.CallSign); ChannelEditing.DeleteChannel(ch); break; } } } }
private static bool ChannelNumbersEquivalent(ChannelNumber cn1, ChannelNumber cn2) { return cn1.Number == cn2.Number && cn1.SubNumber == cn2.SubNumber; }
internal static Dictionary<int, ChannelMapEntry> ParseXmlChannelMap(XmlDocument xml_channel_map) { Console.WriteLine("Parsing XML channel map"); Dictionary<int, ChannelMapEntry> channel_map = new Dictionary<int, ChannelMapEntry>(); XmlNodeList channel_nodes = xml_channel_map.SelectNodes("channels/channel"); foreach (XmlNode channel_node in channel_nodes) { string callsign = Encoding.UTF8.GetString( Convert.FromBase64String(channel_node.SelectSingleNode("name/text()").Value)); int number = int.Parse(channel_node.SelectSingleNode("number/text()").Value); string modulation_string = channel_node.SelectSingleNode("modulation/text()").Value; ModulationType modulation; switch (modulation_string) { case "QAM256": modulation = ModulationType.BDA_MOD_256QAM; break; case "QAM64": modulation = ModulationType.BDA_MOD_64QAM; break; case "8VSB": modulation = ModulationType.BDA_MOD_8VSB; break; default: modulation = ModulationType.BDA_MOD_MAX; break; } string physical_channel_string = channel_node.SelectSingleNode("eia/text()").Value; string[] physical_channel_parts = physical_channel_string.Split(new char[] { '.' }); ChannelNumber physical_channel = new ChannelNumber( int.Parse(physical_channel_parts[0]), int.Parse(physical_channel_parts[1])); ChannelMapEntry entry = new ChannelMapEntry(number, callsign, modulation, physical_channel); channel_map[number] = entry; } return channel_map; }
public TV(bool state, ChannelNumber channel, StereoSystem sSystem) : base(state) { Channel = channel; StereoSystem = sSystem; }
public override void Parse(byte[] data, int offset) { base.Parse(data, offset); for (int offset2 = offset + 2; offset2 < offset + this.DescriptorLength - 1; offset2 += 4) { ChannelNumber lcn = new ChannelNumber(); lcn.ServiceID = (ushort)((data[offset2]<<8) | (data[offset2+1])); lcn.VisibleServiceFlag = (((data[offset2 + 2]>>7) & 0x01) ) != 0; ; lcn.Reserved = (byte)(data[offset2+2] >> 2 & 0x1F); lcn.LogicalChannelNumber = (ushort)(((data[offset2+2] & 0x02 )<< 8) | (data[offset2+3])); this.logicalChannelNumbers.Add(lcn); } }
public ChannelNumberConfig(ChannelNumber channel_number) { number = channel_number.Number; subNumber = channel_number.SubNumber; }
internal void SendTransfer(Delivery delivery) { delivery.DeliveryId = nextOutgoingId++; var transfer = new Transfer() { Handle = delivery.Link.LocalHandle, DeliveryId = delivery.DeliveryId, DeliveryTag = delivery.DeliveryTag, MessageFormat = 0, Settled = delivery.Settled, More = false, }; if (!delivery.Settled) { outgoingUnsettledMap.Add(delivery); } while (delivery.PayloadBuffer.LengthAvailableToRead > 0) { var buffer = new ByteBuffer((int)Connection.MaxFrameSize, false); var bufferStartOffset = buffer.WriteOffset; transfer.More = false; AmqpCodec.EncodeFrame(buffer, transfer, ChannelNumber); // encode to get space available for payload int frameSize = buffer.LengthAvailableToRead; int payloadBufferSpaceAvailable = (int)Connection.MaxFrameSize - frameSize; int payloadSize = delivery.PayloadBuffer.LengthAvailableToRead; // payload is too big, need to split into multiple transfers if (payloadSize > payloadBufferSpaceAvailable) { transfer.More = true; // payloadBufferSpaceAvailable should not change after encoding again buffer.ResetReadWrite(); AmqpCodec.EncodeFrame(buffer, transfer, ChannelNumber); // re-encode with correct value. TODO: is there a way to estimate instead of encoding, testing, and reencoding? frameSize = buffer.LengthAvailableToRead; payloadSize = payloadBufferSpaceAvailable; // max size } // copy payload to buffer to write AmqpBitConverter.WriteBytes(buffer, delivery.PayloadBuffer.Buffer, delivery.PayloadBuffer.ReadOffset, payloadSize); delivery.PayloadBuffer.CompleteRead(payloadSize); // rewrite frame size AmqpBitConverter.WriteInt(buffer.Buffer, bufferStartOffset, frameSize + payloadSize); if (Trace.IsDebugEnabled) { trace.Debug("SEND CH({0}) {1} Payload {2} Bytes", ChannelNumber.ToString(), transfer.ToString(), payloadSize.ToString()); } Connection.SendBuffer(buffer); // following fields may be null on subsequent transfers transfer.DeliveryId = null; transfer.DeliveryTag = null; transfer.MessageFormat = null; transfer.Settled = null; } }
public ChannelService(Service service, ChannelNumber number) { service_ = service; number_ = number; }
private static int ChannelNumberToInt(ChannelNumber channel_number) { return ChannelNumberToInt(channel_number.Number, channel_number.SubNumber); }
private static IEnumerable<MergedChannel> GetMergedChannelsByQAM(ChannelNumber physical_number) { int key = ChannelNumberToInt(physical_number); List<MergedChannel> merged_channels = new List<MergedChannel>(); foreach (Channel ch in qam_channels_by_num[key]) merged_channels.AddRange(ChannelEditing.GetReferencingMergedChannels(ch)); return merged_channels.Distinct(); }
private static MergedChannel GetFirstMergedQAMChannel(ChannelNumber physical_number) { int channel_key = ChannelNumberToInt(physical_number); foreach (Channel ch in qam_channels_by_num[channel_key]) { List<MergedChannel> referencing_channels = ChannelEditing.GetReferencingMergedChannels(ch); if (referencing_channels.Count > 0) return referencing_channels.First(); } return null; }