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