-#define MINIAUDIO_IMPLEMENTATION
-#include "../miniaudio.h"
-
-#include <stdio.h>
-
-void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount)
-{
- ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData;
- if (pDecoder == NULL) {
- return;
- }
-
- ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount);
-
- (void)pInput;
-}
-
-int main(int argc, char** argv)
-{
- ma_result result;
- ma_decoder decoder;
- ma_device_config deviceConfig;
- ma_device device;
-
- if (argc < 2) {
- printf("No input file.\n");
- return -1;
- }
-
- result = ma_decoder_init_file(argv[1], NULL, &decoder);
- if (result != MA_SUCCESS) {
- return -2;
- }
-
- deviceConfig = ma_device_config_init(ma_device_type_playback);
- deviceConfig.playback.format = decoder.outputFormat;
- deviceConfig.playback.channels = decoder.outputChannels;
- deviceConfig.sampleRate = decoder.outputSampleRate;
- deviceConfig.dataCallback = data_callback;
- deviceConfig.pUserData = &decoder;
-
- if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) {
- printf("Failed to open playback device.\n");
- ma_decoder_uninit(&decoder);
- return -3;
- }
-
- if (ma_device_start(&device) != MA_SUCCESS) {
- printf("Failed to start playback device.\n");
- ma_device_uninit(&device);
- ma_decoder_uninit(&decoder);
- return -4;
- }
-
- printf("Press Enter to quit...");
- getchar();
-
- ma_device_uninit(&device);
- ma_decoder_uninit(&decoder);
-
- return 0;
-}
-