#ifndef AUDIO_CTL_H
#define AUDIO_CTL_H
#ifdef __cplusplus
extern "C" {
#endif
* INCLUDES
*********************/
#include <audioutils/nxaudio.h>
#include <pthread.h>
enum {
AUDIO_CTL_STATE_NOP,
AUDIO_CTL_STATE_INIT,
AUDIO_CTL_STATE_START,
AUDIO_CTL_STATE_PAUSE,
AUDIO_CTL_STATE_STOP,
};
typedef struct wav_riff {
char chunkID[4];
uint32_t chunksize;
char format[4];
} riff_s;
typedef struct wav_fmt {
char subchunk1ID[4];
uint32_t subchunk1size;
uint16_t audioformat;
uint16_t numchannels;
uint32_t samplerate;
uint32_t byterate;
uint16_t blockalign;
uint16_t bitspersample;
} fmt_s;
typedef struct wav_data {
char subchunk2ID[4];
uint32_t subchunk2size;
} data_s;
typedef struct wav_fotmat {
riff_s riff;
fmt_s fmt;
data_s data;
} wav_s;
typedef struct audioctl {
struct nxaudio_s nxaudio;
wav_s wav;
int fd;
int state;
pthread_t pid;
int seek;
uint32_t seek_position;
uint32_t file_position;
} audioctl_s;
FAR audioctl_s *audio_ctl_init_nxaudio(FAR const char *arg);
int audio_ctl_start(FAR audioctl_s *ctl);
int audio_ctl_pause(FAR audioctl_s *ctl);
int audio_ctl_resume(FAR audioctl_s *ctl);
int audio_ctl_seek(FAR audioctl_s *ctl, unsigned ms);
int audio_ctl_stop(FAR audioctl_s *ctl);
int audio_ctl_set_volume(FAR audioctl_s *ctl, uint16_t vol);
int audio_ctl_get_position(FAR audioctl_s *ctl);
int audio_ctl_uninit_nxaudio(FAR audioctl_s *ctl);
#ifdef __cplusplus
}
#endif
#endif