package allg5 /* #define ALLEGRO_KCM_AUDIO_SRC #include */ import "C" type Recorder struct { recorder *C.ALLEGRO_AUDIO_RECORDER Frequency int Depth int } func NewRecorder(fragments, samples, frequency, depth int) *Recorder { var depthC C.ALLEGRO_AUDIO_DEPTH switch depth { case 16: depthC = C.ALLEGRO_AUDIO_DEPTH_INT16 default: depthC = C.ALLEGRO_AUDIO_DEPTH_UINT8 } var rec = C.al_create_audio_recorder(C.size_t(fragments), C.uint(samples), C.uint(frequency), depthC, C.ALLEGRO_CHANNEL_CONF_1) if rec == nil { return nil } return &Recorder{rec, frequency, depth} } func (r *Recorder) Start() { C.al_start_audio_recorder(r.recorder) } func (r *Recorder) Destroy() { C.al_destroy_audio_recorder(r.recorder) }