Networking/NetworkManager.WirelessAdapter.cs
namespace sGBA;

public sealed partial class NetworkManager
{
	private GbaWirelessAdapter Adapter => _emulator?.Core?.Io?.WirelessAdapter;
	private GbaWirelessAdapter _wiredAdapter;

	private void TryWireAdapter()
	{
		var adapter = Adapter;
		if ( adapter is null )
			return;
		adapter.Network = this;
		_wiredAdapter = adapter;
	}

	private void WireAdapterIfNeeded()
	{
		var adapter = Adapter;
		if ( adapter is null || ReferenceEquals( adapter, _wiredAdapter ) )
			return;

		adapter.Network = this;
		_wiredAdapter = adapter;
	}

	private void RouteWirelessPacket( int senderIndex, byte[] payload )
	{
		Adapter?.EnqueueReceive( senderIndex, payload, payload.Length );
	}
}