diff options
Diffstat (limited to 'apps/plugins/sdl/src/audio/symbian/streamplayer.h')
-rw-r--r-- | apps/plugins/sdl/src/audio/symbian/streamplayer.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/apps/plugins/sdl/src/audio/symbian/streamplayer.h b/apps/plugins/sdl/src/audio/symbian/streamplayer.h new file mode 100644 index 0000000000..8c6e74f920 --- /dev/null +++ b/apps/plugins/sdl/src/audio/symbian/streamplayer.h | |||
@@ -0,0 +1,89 @@ | |||
1 | #ifndef STREAMPLAYER_H | ||
2 | #define STREAMPLAYER_H | ||
3 | |||
4 | #include<MdaAudioOutputStream.h> | ||
5 | |||
6 | const TInt KSilenceBuffer = 256; | ||
7 | |||
8 | class MStreamObs | ||
9 | { | ||
10 | public: | ||
11 | enum | ||
12 | { | ||
13 | EInit, | ||
14 | EPlay, | ||
15 | EWrite, | ||
16 | EClose, | ||
17 | }; | ||
18 | virtual void Complete(TInt aState, TInt aError) = 0; | ||
19 | }; | ||
20 | |||
21 | class MStreamProvider | ||
22 | { | ||
23 | public: | ||
24 | virtual TPtrC8 Data() = 0; | ||
25 | }; | ||
26 | |||
27 | NONSHARABLE_CLASS(CStreamPlayer) : public CBase, public MMdaAudioOutputStreamCallback | ||
28 | { | ||
29 | public: | ||
30 | CStreamPlayer(MStreamProvider& aProvider, MStreamObs& aObs); | ||
31 | ~CStreamPlayer(); | ||
32 | void ConstructL(); | ||
33 | |||
34 | static TInt ClosestSupportedRate(TInt aRate); | ||
35 | |||
36 | TInt OpenStream(TInt aRate, TInt aChannels, TUint32 aType = KMMFFourCCCodePCM16); | ||
37 | |||
38 | void SetVolume(TInt aNew); | ||
39 | TInt Volume() const; | ||
40 | TInt MaxVolume() const; | ||
41 | |||
42 | void Stop(); | ||
43 | void Start(); | ||
44 | void Open(); | ||
45 | void Close(); | ||
46 | |||
47 | TBool Playing() const; | ||
48 | TBool Closed() const; | ||
49 | |||
50 | private: | ||
51 | |||
52 | void MaoscOpenComplete(TInt aError) ; | ||
53 | void MaoscBufferCopied(TInt aError, const TDesC8& aBuffer); | ||
54 | void MaoscPlayComplete(TInt aError); | ||
55 | |||
56 | private: | ||
57 | void Request(); | ||
58 | void SetCapsL(); | ||
59 | |||
60 | private: | ||
61 | MStreamProvider& iProvider; | ||
62 | MStreamObs& iObs; | ||
63 | TInt iVolume; | ||
64 | |||
65 | CMdaAudioOutputStream* iStream; | ||
66 | |||
67 | TInt iRate; | ||
68 | TInt iChannels; | ||
69 | TUint32 iType; | ||
70 | |||
71 | enum | ||
72 | { | ||
73 | ENone = 0, | ||
74 | EInited = 0x1, | ||
75 | EStarted = 0x2, | ||
76 | EStopped = 0x4, | ||
77 | EVolumeChange = 0x8, | ||
78 | EDied = 0x10 | ||
79 | }; | ||
80 | |||
81 | TInt iState; | ||
82 | TBuf8<KSilenceBuffer> iSilence; | ||
83 | TPtrC8 iPtr; | ||
84 | |||
85 | }; | ||
86 | |||
87 | |||
88 | #endif | ||
89 | |||