using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.T2MI.Packets;
using skyscraper8.T2MI.Packets;

namespace skyscraper5.T2MI
{
    internal interface T2MIEventHandler
    {
        void OnT2MiPacketLoss(int pid, byte expectedPacket, T2MIHeader header);
        void OnT2MiPacket(int pid, byte basebandFramePlpId, byte[] basebandPacket);
        void OnT2MiTimestamp(int pid, _0x20_DvbT2Timestamp t2Timestamp);
        void OnT2MiIqData(int relatedPid, _0x31_IqData iqData);
        void OnT2MiIqData(int relatedPid, _0x01_IqData iqData2);
        void OnT2MiError(int relatedPid, int skyscraperErrorCode);
        void OnT2MiL1Current(int relatedPid, _0x10_L1Current l1Current);
        void OnT2MiArbitraryCellInsertion(int relatedPid, _0x02_ArbitraryCellInsertion arbitraryCellInsertion);
        void OnT2MiBalancingCells(int relatedPid, byte frameIndex, uint numActiveBiasCellsPerP2);
        void OnT2MiL1Future(int relatedPid, _0x11_L1Future l1Future);
        void OnT2MiIndividualAddressing(int relatedPid, _0x21_IndividualAddressing individualAddressing);
        void OnFramingAndTimingInformation(int relatedPid, _0xF0_FramingTimingInformation fti);
    }
}
