using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace skyscraper8.Experimentals.OtvSsu
{
	internal interface OtvSsuHandler
	{
		void OnOtvSsuError(int pid, OtvSsuError offsetOutOfRange);
		void OnOtvSsuFileAnnouncement(int pid, ushort tableIdExtension, uint fileId, uint unknown1, uint length);
		void OnOtvSsuBlock(int pid, ushort tableIdExtension, uint fileId, uint unknown1, uint length);
		void OnOtvSsuComplete(int sourcePid, Stream getStream, ushort tableIdExtension, uint fileId, uint unknown1, uint length);
		bool OnOtvCheckFileAlreadyKnown(int sourcePid, ushort tableIdExtension, uint fileId, uint unknown1, uint length);
	}

	public enum OtvSsuError
	{
		OffsetOutOfRange,
		PacketDeliveredTooMuchData,
		SectionSyntaxIndicatorMissing,
		NdsOverlap,
		FileTooLarge
	}
}
