summaryrefslogtreecommitdiff
path: root/tvapi/libtv/audio/audio_android.h (plain)
blob: 621fa1a84dcc1bafbecdf29c3d9b177d002be12c
1#ifndef __TV_AUDIO_ANDROID_H__
2#define __TV_AUDIO_ANDROID_H__
3
4#define CC_FLAG_CREATE_RECORD (0x0001)
5#define CC_FLAG_CREATE_TRACK (0x0002)
6#include "audio_alsa.h"
7#include <media/AudioRecord.h>
8#include <media/AudioTrack.h>
9
10using namespace android;
11
12
13class CAndroidAudio
14{
15public:
16 CAndroidAudio(CAudioAlsa *);
17 ~CAndroidAudio();
18 int amAndroidInit(int tm_sleep, int init_flag, int recordSr, int trackSr,
19 bool enable_noise_gat);
20 int amAndroidUninit(int tm_sleep);
21 int amAndroidSetRecorderSr(int sr);
22 int amAndroidSetTrackerSr(int sr);
23 int amAndroidSetDumpDataFlag(int tmp_flag);
24 int amAndroidGetDumpDataFlag();
25 void amAndroidSetNoiseGateThreshold(int thresh);
26 void reset_system_framesize(int input_sample_rate, int output_sample_rate);
27
28private:
29 void DoDumpData(void *data_buf, int size);
30 void noise_filter_init();
31 int noise_filter_left(int);
32 int noise_filter_right(int);
33 void DeleteAudioRecorder();
34 void FreeAudioRecorder();
35 void DeleteAudioTracker();
36 void FreeAudioTracker();
37 int InitTempBuffer();
38 void FreeTempBuffer();
39 void ResetRecordWritePointer();
40 void ResetPlaybackReadPointer();
41 void ResetPointer();
42 short int clip(int);
43 int upsample(short int *, short int *, unsigned int, unsigned int, unsigned int);
44 int downsample(short int *, short int *, unsigned int, unsigned int, unsigned int);
45 int GetWriteSpace(volatile short int *, volatile short int *);
46 int GetReadSpace(volatile short int *, volatile short int *);
47 void recorderCallback(int, void *, void *);
48 void trackerCallback(int, void *, void *);
49 int initAudioTracker(int);
50 int initAudioRecorder(int);
51
52 CAudioAlsa *mpAudioAlsa;
53 int mDumpDataFlag;
54 int mDumpDataFd;
55 AudioRecord *mlpRecorder;
56 AudioTrack *mlpTracker;
57
58#if ANDROID_PLATFORM_SDK_VERSION >= 19
59 sp<AudioTrack> mmpAudioTracker;
60 sp<AudioRecord> mmpAudioRecorder;
61#endif
62
63 short *temp_buffer;
64 short *end_temp_buffer;
65 short volatile *record_write_pointer;
66 short volatile *playback_read_pointer;
67
68 ///////////////////////////////////////////////////////////////////////////////
69 // Helpers for the noise gate.
70 bool gEnableNoiseGate;
71 bool gUserSetEnableNoiseGate;
72 unsigned zero_count_left;
73 unsigned zero_count_right;
74 unsigned NOISE_HIS;
75 signed gNoiseGateThresh;
76};
77
78
79#endif //__TV_AUDIO_ANDROID_H__
80