webOS TV Native APIs
cgl_audio.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <stddef.h>
9 
10 enum CGL_AUDIO_FMT_T {
11  CGL_AUDIO_FMT_PCM = 1,
12  CGL_AUDIO_FMT_AC3 = 2,
13  CGL_AUDIO_FMT_AAC = 3,
14  CGL_AUDIO_FMT_MP3 = 4,
15 };
16 
17 typedef enum CGL_AUDIO_FMT_T CGL_AUDIO_FMT_T;
18 
19 typedef enum CGL_AUDIO_CHANNEL_T {
20  CGL_AUDIO_CH_INDEX_MAIN = 0,
21  CGL_AUDIO_CH_INDEX_SUB = 1,
22 } CGL_AUDIO_CHANNEL_T;
23 
28  CGL_AUDIO_SAMPLING_FREQ_NONE = 0,
29  CGL_AUDIO_SAMPLING_FREQ_4KHZ = 1,
30  CGL_AUDIO_SAMPLING_FREQ_8KHZ = 2,
31  CGL_AUDIO_SAMPLING_FREQ_11KHZ = 3,
32  CGL_AUDIO_SAMPLING_FREQ_12KHZ = 4,
33  CGL_AUDIO_SAMPLING_FREQ_16KHZ = 5,
34  CGL_AUDIO_SAMPLING_FREQ_22KHZ = 6,
35  CGL_AUDIO_SAMPLING_FREQ_24KHZ = 7,
36  CGL_AUDIO_SAMPLING_FREQ_32KHZ = 8,
37  CGL_AUDIO_SAMPLING_FREQ_44KHZ = 9,
38  CGL_AUDIO_SAMPLING_FREQ_48KHZ = 10,
40 
47  switch (hertz) {
48  case 4000:
49  return CGL_AUDIO_SAMPLING_FREQ_4KHZ;
50  case 8000:
51  return CGL_AUDIO_SAMPLING_FREQ_8KHZ;
52  case 11025:
53  return CGL_AUDIO_SAMPLING_FREQ_11KHZ;
54  case 12000:
55  return CGL_AUDIO_SAMPLING_FREQ_12KHZ;
56  case 16000:
57  return CGL_AUDIO_SAMPLING_FREQ_16KHZ;
58  case 22050:
59  return CGL_AUDIO_SAMPLING_FREQ_22KHZ;
60  case 24000:
61  return CGL_AUDIO_SAMPLING_FREQ_24KHZ;
62  case 32000:
63  return CGL_AUDIO_SAMPLING_FREQ_32KHZ;
64  case 44100:
65  return CGL_AUDIO_SAMPLING_FREQ_44KHZ;
66  case 48000:
67  return CGL_AUDIO_SAMPLING_FREQ_48KHZ;
68  default:
69  return CGL_AUDIO_SAMPLING_FREQ_NONE;
70  }
71 }
72 
76 typedef struct CGL_AUDIO_INFO_T {
77  CGL_AUDIO_FMT_T codec;
81  CGL_AUDIO_CHANNEL_T channel;
82  CGL_AUDIO_SAMPLING_FREQ_T samplingFreq;
83  unsigned int numberOfChannel;
84  unsigned int bitPerSample;
86 
92 int CGL_OpenAudio(const CGL_AUDIO_INFO_T *info);
93 
100 int CGL_PlayAudio(const void *data, size_t size);
101 
106 int CGL_CloseAudio();
static CGL_AUDIO_SAMPLING_FREQ_T CGL_AUDIO_SAMPLING_FREQ_OF(int hertz)
Helper function to get enum for certain sampling frequency.
Definition: cgl_audio.h:46
int CGL_PlayAudio(const void *data, size_t size)
Feed and play audio data.
struct CGL_AUDIO_INFO_T CGL_AUDIO_INFO_T
Audio information.
int CGL_CloseAudio()
Closes audio playback.
Definition: cgl.c:13
CGL_AUDIO_SAMPLING_FREQ_T
Sampling frequency enum definitions.
Definition: cgl_audio.h:27
int CGL_OpenAudio(const CGL_AUDIO_INFO_T *info)
Opens audio playback.
Definition: cgl.c:9
Audio information.
Definition: cgl_audio.h:76
CGL_AUDIO_CHANNEL_T channel
Usually set to CGL_AUDIO_CH_INDEX_MAIN.
Definition: cgl_audio.h:81