1#ifndef SINE_SOURCE_H_
2
3#define SINE_SOURCE_H_
4
5#include <media/stagefright/MediaSource.h>
6
7namespace android {
8
9struct MediaBufferGroup;
10
11struct SineSource : public MediaSource {
12    SineSource(int32_t sampleRate, int32_t numChannels);
13
14    virtual status_t start(MetaData *params);
15    virtual status_t stop();
16
17    virtual sp<MetaData> getFormat();
18
19    virtual status_t read(
20            MediaBuffer **out, const ReadOptions *options = NULL);
21
22protected:
23    virtual ~SineSource();
24
25private:
26    enum { kBufferSize = 8192 };
27    static const double kFrequency = 500.0;
28
29    bool mStarted;
30    int32_t mSampleRate;
31    int32_t mNumChannels;
32    size_t mPhase;
33
34    MediaBufferGroup *mGroup;
35};
36
37}  // namespace android
38
39#endif // SINE_SOURCE_H_
40