mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 06:05:47 -04:00
Initial community commit
This commit is contained in:
55
Src/Plugins/Input/in_wmvdrm/SeekLayer.h
Normal file
55
Src/Plugins/Input/in_wmvdrm/SeekLayer.h
Normal file
@ -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
|
Reference in New Issue
Block a user