using System.Collections.Generic;
using QCRPG.Framework;

namespace QCRPG.TSL.FM.Packets;

public class FMPacketList : PacketListBase
{
	private List<PacketBase> packets = new List<PacketBase>();

	public override List<PacketBase> Packets => packets;

	public FMPacketList()
	{
		packets.Add(new ReadRdsProgramServiceResponse());
		packets.Add(new ReadI2cResponse());
		packets.Add(new ReadRdsAlternativeFrequencyResponse());
		packets.Add(new ReadRdsRadioTextResponse());
		packets.Add(new InterruptMask());
		packets.Add(new RadioControl());
		packets.Add(new Tune());
		packets.Add(new StartSearch());
		packets.Add(new StartSearchUsingPty());
		packets.Add(new StartSearchUsingPi());
		packets.Add(new StartSearchUsingAf());
		packets.Add(new StopSearch());
		packets.Add(new IoControl());
		packets.Add(new AudioControl());
		packets.Add(new RdsControl());
		packets.Add(new RdsAdvanceControl());
		packets.Add(new ReadRdsDataGroup());
		packets.Add(new RdsConfig());
		packets.Add(new ReadRdsProgramService());
		packets.Add(new ReadRdsRadioText());
		packets.Add(new ReadRdsAlternativeFrequency());
		packets.Add(new RdsTransmitGroups());
		packets.Add(new RdsTransmitRadioText());
		packets.Add(new RdsTransmitProgramService());
		packets.Add(new ReadInterruptStatus());
		packets.Add(new ReadRadioControl());
		packets.Add(new ReadTuneStatus());
		packets.Add(new ReadIoControl());
		packets.Add(new ReadRdsControl());
		packets.Add(new ReadAdvanceControl());
		packets.Add(new ReadRmssiLevel());
		packets.Add(new ReadI2c());
		packets.Add(new ReadI2cRegister());
		packets.Add(new WriteI2c());
		packets.Add(new WriteI2cRegister());
		packets.Add(new BlockPoke());
		packets.Add(new BlockPeek());
		packets.Add(new MultiplePoke());
		packets.Add(new MultiplePeek());
	}
}
