Mercurial > sdl-ios-xcode
view src/audio/symbian/streamplayer.h @ 5079:8c88cae7911e SDL-1.2
Michael Bicha to Sam
I came across further issues with SDL 1.2.14 on win32 in combination
with touch screens.
When you touched the screen older SDLs reported
SDL_MOUSEMOTION to the touch position
SDL_MOUSEBUTTONDOWN at the touch position
1.2.14 reports
SDL_MOUSEBUTTONDOWN at the last mouse position before the touch
and then a
SDL_MOUSEMOTION to the touch position
I found that to fix it in the file SDL_sysevents.c i had to put back the
following lines from 1.2.12 to get it working correctly again:
if ( mouse_relative ) {
/* RJR: March 28, 2000
report internal mouse position if in relative mode */
x = 0; y = 0;
} else {
x = (Sint16)LOWORD(lParam);
y = (Sint16)HIWORD(lParam);
#ifdef _WIN32_WCE
if (SDL_VideoSurface)
GapiTransform(this->hidden->userOrientation,
this->hidden->hiresFix, &x, &y);
#endif
}
posted = SDL_PrivateMouseButton(
state, button, x, y);
where there was only
posted = SDL_PrivateMouseButton(
state, button, 0, 0);
in 1.2.14 (appx. line 484)
please feel free to put that change into any SDL lib you like in any way
you like and thanks for your great work !
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 23 Jan 2011 21:02:02 -0800 |
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