aboutsummaryrefslogtreecommitdiff
path: root/Src/replicant/audio/ifc_audio_decoder_packet.h
blob: cd9298993cf396bb0f71bc7537b7912fcfa547ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once
#include "foundation/dispatch.h"
#include "nx/nxuri.h"
#include "metadata/ifc_metadata.h"

class ifc_audio_decoder_packet : public Wasabi2::Dispatchable
{
protected:
	ifc_audio_decoder_packet() : Dispatchable(DISPATCHABLE_VERSION) {}
	~ifc_audio_decoder_packet() {}
public:

	int GetMetadata(ifc_metadata **metadata) { return AudioDecoderPacket_GetMetadata(metadata); }
	int Decode(void **out_packet, size_t *frames_available) { return AudioDecoderPacket_Decode(out_packet, frames_available); }

	enum
	{
		DISPATCHABLE_VERSION=0,
	};
private:
	virtual int WASABICALL AudioDecoderPacket_GetMetadata(ifc_metadata **metadata)=0;
	virtual int WASABICALL AudioDecoderPacket_Decode(void **out_packet, size_t *frames_available)=0;
};