using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Dvb.Psi.Model;
using skyscraper5.Mpeg2;
using skyscraper5.Nordig.Descriptor;
using skyscraper5.Skyscraper;
using skyscraper5.Skyscraper.Plugins;

namespace skyscraper5.PrivateDataSpecifiers.Nordig
{
	internal class NordigBatHook : DescriptorPluginBatHandler
	{
		public void HandleBat(BatTransportStream outputTs, TsDescriptor unpackedDescriptor)
		{
			byte descId = unpackedDescriptor.GetDescriptorId();
			switch (descId)
			{
				case 0x83:
					LogicalChannelDescriptor lcd = (LogicalChannelDescriptor)unpackedDescriptor;
					if (outputTs.LCNs == null)
						outputTs.LCNs = new List<BaseLcn>();
					outputTs.LCNs.AddRange(lcd.LogicalChannels);
					break;
				default:
					throw new NotImplementedException(String.Format("{0:X2}", descId));
			}
		}
	}
}
