Mercurial > sdl-ios-xcode
view src/audio/symbian/streamplayer.h @ 4431:d660ca4f7b1f SDL-1.2
Fixed bug 944
Tatu Kilappa 2010-02-11 12:13:20 PST
When compiling with -Wconversion, gcc complains about a cast in SDL_endian.h
that might change the result as we are casting from an int into an Uint16. This
is of course not visible unless we are on a non-x86 platform where the
assembler is not available.
While it's not really an error, the warning is really annoying. To fix, change
SDL_endian.h line 87 to:
return(Uint16)((x<<8)|(x>>8));
Thank you.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 13 Apr 2010 21:46:10 -0700 |
parents | e85e65aec22f |
children |
line wrap: on
line source
#ifndef STREAMPLAYER_H #define STREAMPLAYER_H #include<MdaAudioOutputStream.h> const TInt KSilenceBuffer = 256; class MStreamObs { public: enum { EInit, EPlay, EWrite, EClose, }; virtual void Complete(TInt aState, TInt aError) = 0; }; class MStreamProvider { public: virtual TPtrC8 Data() = 0; }; NONSHARABLE_CLASS(CStreamPlayer) : public CBase, public MMdaAudioOutputStreamCallback { public: CStreamPlayer(MStreamProvider& aProvider, MStreamObs& aObs); ~CStreamPlayer(); void ConstructL(); static TInt ClosestSupportedRate(TInt aRate); TInt OpenStream(TInt aRate, TInt aChannels, TUint32 aType = KMMFFourCCCodePCM16); void SetVolume(TInt aNew); TInt Volume() const; TInt MaxVolume() const; void Stop(); void Start(); void Open(); void Close(); TBool Playing() const; TBool Closed() const; private: void MaoscOpenComplete(TInt aError) ; void MaoscBufferCopied(TInt aError, const TDesC8& aBuffer); void MaoscPlayComplete(TInt aError); private: void Request(); void SetCapsL(); private: MStreamProvider& iProvider; MStreamObs& iObs; TInt iVolume; CMdaAudioOutputStream* iStream; TInt iRate; TInt iChannels; TUint32 iType; enum { ENone = 0, EInited = 0x1, EStarted = 0x2, EStopped = 0x4, EVolumeChange = 0x8, EDied = 0x10 }; TInt iState; TBuf8<KSilenceBuffer> iSilence; TPtrC8 iPtr; }; #endif