OSDN Git Service

[MOVIE_LOADER][PX7] Sound Laser Disc, but not be smooth.
[csp-qt/common_source_project-fm7.git] / source / src / qt / osd.h
1 /*
2         Skelton for retropc emulator
3
4         Author : K.Ohta <whatisthis.sowhat _at_ gmail.com>
5         Date   : 2015.11.30-
6
7         [ Qt dependent ]
8 */
9
10 #ifndef _QT_OSD_H_
11 #define _QT_OSD_H_
12
13
14 #include <QObject>
15 #include <QString>
16 #include <QImage>
17
18 #include <SDL.h>
19 #include "osd_base.h"
20
21 class GLDrawClass;
22 class EmuThreadClass;
23 class DrawThreadClass;
24 class Ui_MainWindow;
25 class EMU;
26 class VM;
27 class FIFO;
28 class USING_FLAGS;
29 class CSP_KeyTables;
30 class MOVIE_LOADER;
31
32 QT_BEGIN_NAMESPACE
33 class OSD : public OSD_BASE
34 {
35         Q_OBJECT
36 protected:
37         void vm_draw_screen(void);
38         Sint16* create_sound(int *extra_frames);
39         bool get_use_socket(void);
40         bool get_support_variable_timing(void);
41         bool get_notify_key_down(void);
42         bool get_notify_key_down_lr_shift(void);
43         bool get_notify_key_down_lr_control(void);
44         bool get_notify_key_down_lr_menu(void);
45         bool get_use_shift_numpad_key(void);
46         bool get_use_auto_key(void);
47         bool get_dont_keeep_key_pressed(void);
48         bool get_one_board_micro_computer(void);
49         bool get_use_screen_rotate(void);
50         bool get_use_movie_player(void);
51         bool get_use_video_capture(void);
52         void vm_key_down(int code, bool flag);
53         void vm_key_up(int code);
54         void vm_reset(void);
55         void update_buttons(bool press_flag, bool release_flag);
56         int get_screen_width(void);
57         int get_screen_height(void);
58         int get_vm_buttons_code(int num);
59         MOVIE_LOADER *movie_loader;
60
61 public:
62         OSD(USING_FLAGS *p);
63         ~OSD();
64         void initialize(int rate, int samples);
65         void release();
66         void power_off();
67
68         // Wrapper
69         void lock_vm(void);
70         void unlock_vm(void);
71         void force_unlock_vm(void);
72         bool is_vm_locked(void);
73         void set_draw_thread(DrawThreadClass *handler);
74         void initialize_screen();
75         void release_screen();
76         int get_window_mode_width(int mode);
77         int get_window_mode_height(int mode);
78         QString get_vm_config_name(void);
79         double vm_frame_rate(void);
80         void get_video_buffer();
81         
82         void initialize_video();
83         void release_video();
84         bool open_movie_file(const _TCHAR* file_path);
85         void close_movie_file();
86         uint32_t get_cur_movie_frame();
87         int get_movie_sound_rate();
88
89 public slots:
90         void do_decode_movie(int frames);
91         void do_run_movie_audio_callback(uint8_t *data, long len);
92
93 };
94 QT_END_NAMESPACE
95
96 #endif