using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Dvb.DataBroadcasting.SkyscraperVfs;
using skyscraper5.Dvb.Descriptors;
using skyscraper8.DvbNip;
using skyscraper8.Experimentals.NdsSsu;
using skyscraper8.Ietf.FLUTE;
using skyscraper8.SimpleServiceDiscoveryProtocol;
using skyscraper8.Skyscraper.Drawing;

namespace skyscraper8.Skyscraper.Scraper.Storage
{
	public class NullObjectStorage : ObjectStorage
	{
		public bool ObjectCarouselFileArrival(VfsFile vfsFile, int transportStreamId, int networkId)
		{
			throw new NotImplementedException();
		}

		public void DataCarouselModuleArrival(int currentNetworkId, int currentTransportStreamId, int elementaryPid,
			ushort moduleModuleId, byte moduleModuleVersion, Stream result)
		{
			throw new NotImplementedException();
		}

		public bool IsDsmCcModuleWanted(int currentNetworkId, int currentTransportStreamId, int elementaryPid, ushort moduleId,
			byte moduleVersion)
		{
			return false;
		}

		public bool TestForFramegrab(int currentNetworkId, int transportStreamId, ushort mappingProgramNumber,
			int mappingStreamElementaryPid)
		{
			throw new NotImplementedException();
		}

		public void StoreFramegrab(int currentNetworkId, int transportStreamId, ushort mappingProgramNumber, ushort pid,
			byte[] imageData)
		{
			throw new NotImplementedException();
		}

		public void WaitForCompletion()
		{
			throw new NotImplementedException();
		}

		public void UiSetVersion(int version)
		{
			throw new NotImplementedException();
		}

		public class NullToken
		{

		}

		public object[] GetPluginConnector()
		{
			return new object[1]
			{
				new NullToken()
			};
		}

		public void Ping()
		{
			throw new NotImplementedException();
		}

		public bool DvbNipTestForFile(string announcedFileContentLocation)
		{
			return true;
		}

		public void DvbNipFileArrival(NipActualCarrierInformation carrier, FluteListener listener)
		{
		}

		public void StoreIqGraph(Guid jobGuid, long frequency, char polarity, IqChartData plot)
		{
			throw new NotImplementedException();
		}

		public void StoreRfSpectrum(Guid jobGuid, RfSpectrumData rfSpectrum)
		{
			throw new NotImplementedException();
		}

		public void DeleteIqGraph(Guid selectedGuid, int frequencyItem1, SatelliteDeliverySystemDescriptor.PolarizationEnum frequencyItem2)
		{
			throw new NotImplementedException();
		}

		public void DeleteRfSpectrum(Guid selectedGuid)
		{
			throw new NotImplementedException();
		}

		public bool OtvSsuTestFile(int? currentNetworkId, int? currentTransportStreamId, int sourcePid, ushort tableIdExtension,
			uint fileId, uint unknown1, uint length)
		{
			throw new NotImplementedException();
		}

		public void OnOtvSsuComplete(int? currentNetworkId, int? currentTransportStreamId, int sourcePid, Stream getStream,
			ushort tableIdExtension, uint fileId, uint unknown1, uint length)
		{
			throw new NotImplementedException();
		}

		public void OnNdsSsuComplete(int? currentNetworkId, int? currentTransportStreamId, int pid, ushort tableIdExtension,
			NdsSsuDataMap dataMap)
		{
			dataMap.Dispose();
		}

		public bool NdsSsuTestFile(int? currentNetworkId, int? currentTransportStreamId, int pid, ushort tableIdExtension)
		{
			return true;
		}

		public bool SsdpDeviceKnown(SsdpDevice ssdpDevice)
		{
			return false;
		}

		public void SsdpStoreMetadata(SsdpDevice ssdpDevice, byte[] ssdpMetadataByteArray)
		{
			
		}

		public byte[] SsdpGetMetadata(SsdpDevice ssdpDevice)
		{
			throw new NotImplementedException();
		}

        public bool TestForSisDsaci(int value1, int value2, ushort groupId, int versionNumber)
        {
			return true;
        }

        public void StoreSisDsaci(int value1, int value2, ushort currentDsaGroupId, int versionNumber, Stream dsaci)
        {
            throw new NotImplementedException();
        }

		public bool TestForObjectCarouselFileArrival(string vfsFile, int transportStreamId, int pid, int networkId)
		{
			throw new NotImplementedException();
		}

		public byte[] GetObjectCarouselFileArrival(string vfsFile, int transportStreamId, int pid, int networkId)
		{
			throw new NotImplementedException();
		}

		public byte[] DvbNipGetFile(string path)
		{
			return new byte[0] { };
		}

		public RfSpectrumData GetRfSpectrum(Guid selectedGuid)
		{
			throw new NotImplementedException();
		}

        public bool TestForWneStory(uint sessionId, string filename)
        {
			return true;
        }

        public void StoreWneStory(uint sessionId, string filename, Stream value)
        {
            throw new NotImplementedException();
        }
    }
}
