blob: 7b896845da3ae5a4a3e9647e1bd1f093ad1ac724 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
|