summaryrefslogtreecommitdiffstats
path: root/HBManager.h
blob: c1cabca15694e1e8621db3034be4e11c815ef7ea (plain)
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
/* $Id: HBManager.h,v 1.25 2003/08/24 13:55:18 titer Exp $ */

#ifndef _HB_MANAGER_H
#define _HB_MANAGER_H

#include <Looper.h>

class HBWindow;
class HBPictureWin;
class HBFifo;

class HBManager : public BLooper
{
    public:
        HBManager( HBWindow * window );
        ~HBManager();
        virtual void MessageReceived( BMessage * message );
        
        /* Methods called by the interface */
        void     Start( HBVolumeInfo   * volumeInfo,
                        HBTitleInfo    * titleInfo,
                        HBAudioInfo    * audio1Info,
                        HBAudioInfo    * audio2Info,
                        char           * file );
        void     Suspend();
        void     Resume();
        bool     Cancel();
        
        /* Methods called by the working threads */
        void     SetPosition( float position );
        void     SetFrameRate( float current, float average );
        void     Done();
        void     Error();
    
    private:
        void     Stop();
        void     DetectVolumes();
    
        /* Interface */
        HBWindow     * fWindow;

        /* Fifos & threads */
        BList        * fThreadList;
        BList        * fFifoList;
        
        /* DVD infos */
        BList        * fVolumeList;
        
        /* Status infos */
        float          fPosition;
        float          fCurrentFrameRate;
        float          fAverageFrameRate;
};

#endif