public ChannelMapEntry(int number, string callsign, ModulationType modulation, ChannelNumber physicalChannel)
 {
     number_ = number;
     callsign_ = callsign;
     modulation_ = modulation;
     physical_channel_ = physicalChannel;
 }
Esempio n. 2
0
            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;
            }
Esempio n. 3
0
        private static int CompareNumbers(ChannelNumber cn1, ChannelNumber cn2)
        {
            int val = cn1.Number - cn2.Number;

            if (val != 0)
            {
                return(val);
            }
            return(cn1.SubNumber - cn2.SubNumber);
        }
Esempio n. 4
0
 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);
     }
 }
Esempio n. 5
0
 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);
             }
         }
     }
 }
Esempio n. 6
0
 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();
     }
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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;
 }
Esempio n. 11
0
 public TV(bool state, ChannelNumber channel, StereoSystem sSystem)
     : base(state)
 {
     Channel      = channel;
     StereoSystem = sSystem;
 }
Esempio n. 12
0
        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);

            }
        }
Esempio n. 13
0
 public ChannelMapEntry(int number, string callsign, ModulationType modulation, ChannelNumber physicalChannel)
 {
     number_           = number;
     callsign_         = callsign;
     modulation_       = modulation;
     physical_channel_ = physicalChannel;
 }
Esempio n. 14
0
 public ChannelNumberConfig(ChannelNumber channel_number)
 {
     number = channel_number.Number;
     subNumber = channel_number.SubNumber;
 }
Esempio n. 15
0
        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;
            }
        }
Esempio n. 16
0
 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);
 }
			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 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;
 }