summaryrefslogtreecommitdiffstats
path: root/core/Manager.h
blob: 8aa6cec3a0f754fb8181fdb59e288c1845c9b0f6 (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
56
57
58
59
60
61
/* $Id: Manager.h,v 1.27 2003/09/30 21:21:32 titer Exp $

   This file is part of the HandBrake source code.
   Homepage: <http://beos.titer.org/handbrake/>.
   It may be used under the terms of the GNU General Public License. */

#ifndef HB_MANAGER_H
#define HB_MANAGER_H

#include "Common.h"
#include "Thread.h"

class HBManager : public HBThread
{
    public:
                      HBManager( bool debug = false );
                      ~HBManager();
        void          DoWork();

        /* Methods called by the interface */
        bool          NeedUpdate();
        HBStatus      GetStatus();
        void          ScanVolumes( char * device );
        void          StartRip( HBTitle * title, HBAudio * audio1,
                                HBAudio * audio2, char * file );
        void          SuspendRip();
        void          ResumeRip();
        void          StopRip();
        uint8_t     * GetPreview( HBTitle * title, uint32_t image );

        /* Methods called by the working threads */
        int           GetPid();
        void          Scanning( char * volume, int title );
        void          ScanDone( HBList * titleList );
        void          Done();
        void          Error();
        void          SetPosition( float pos );

    private:
        void          FixPictureSettings( HBTitle * title );

        int           fPid;

        /* Booleans used in DoWork() */
        bool          fStopScan;
        volatile bool fStopRip;
        bool          fRipDone;
        bool          fError;

        /* Scanner thread */
        HBScanner   * fScanner;

        /* Status infos */
        bool          fNeedUpdate;
        HBStatus      fStatus;
        HBTitle     * fCurTitle;
        HBAudio     * fCurAudio1;
        HBAudio     * fCurAudio2;
};

#endif