diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Input/in_wmvdrm/SeekLayer.h | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Plugins/Input/in_wmvdrm/SeekLayer.h')
-rw-r--r-- | Src/Plugins/Input/in_wmvdrm/SeekLayer.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Src/Plugins/Input/in_wmvdrm/SeekLayer.h b/Src/Plugins/Input/in_wmvdrm/SeekLayer.h new file mode 100644 index 00000000..7b896845 --- /dev/null +++ b/Src/Plugins/Input/in_wmvdrm/SeekLayer.h @@ -0,0 +1,55 @@ +#ifndef NULLSOFT_SEEKLAYERH +#define NULLSOFT_SEEKLAYERH + +#include "WMHandler.h" +#include "../nu/AutoLock.h" +#include "ClockLayer.h" +class SeekLayer : public WMHandler +{ + enum PlayState + { + PLAYSTATE_NONE, + PLAYSTATE_OPENING, + PLAYSTATE_OPENED, + PLAYSTATE_BUFFERING, + PLAYSTATE_STARTED, + PLAYSTATE_STOPPED, + PLAYSTATE_CLOSED, + PLAYSTATE_SEEK, + + }; +public: + SeekLayer(IWMReader *_reader, ClockLayer *_clock); + void SeekTo(long position); + void Pause(); + void Unpause(); + void Stop(); + int Open(const wchar_t *filename, IWMReaderCallback *callback); + +private: + void BufferingStarted(); + void BufferingStopped(); + void Started(); + void Stopped(); + void Closed(); + void Opened(); + void OpenCalled(); + void Connecting(); + void Locating(); + void EndOfFile(); + void OpenFailed(); + void Error(); + +private: + void DoStop(); + bool needPause, paused, needStop; + long seekPos; + Nullsoft::Utility::LockGuard seekGuard; + IWMReader *reader; + IWMReaderAdvanced2 *reader2; + IWMMetadataEditor *metadata; + ClockLayer *clock; + PlayState playState, oldState_buffer; +}; + +#endif |