OSDN Git Service

[UI][Qt][PX7] Add GUI side of laserdisc supporting.
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / util_ld.cpp
1 /*
2  * UI->Qt->MainWindow : CD ROM Utils.
3  * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
4  * License: GPLv2
5  *
6  * History:
7  * Mar 20, 2016 : Initial
8  */
9
10
11 #include "commonclasses.h"
12 #include "mainwidget_base.h"
13 #include "qt_dialogs.h"
14 #include "agar_logger.h"
15
16 #include "menu_laserdisc.h"
17
18
19 void Object_Menu_Control::insert_laserdisc(void) {
20         //AGAR_DebugLog(AGAR_LOG_DEBUG, "%d", play);
21         emit sig_insert_laserdisc(play);
22 }
23 void Object_Menu_Control::eject_laserdisc(void) {
24         emit sig_eject_laserdisc();
25 }
26 void Object_Menu_Control::on_recent_laserdisc(){
27         emit sig_recent_laserdisc(s_num);
28 }
29
30 void Ui_MainWindowBase::CreateLaserdiscMenu(void)
31 {
32         QString ext_play, desc_play;
33         
34         listLaserdisc.clear();
35         menu_Laserdisc = new Menu_LaserdiscClass(emu, menubar, "Object_Laserdisc_Menu", using_flags, this, 0);
36         menu_Laserdisc->setObjectName(QString::fromUtf8("menuLaserdisc", -1));
37         
38         menu_Laserdisc->create_pulldown_menu(); 
39         // Translate Menu
40         SETUP_HISTORY(using_flags->get_config_ptr()->recent_laser_disc_path, listLaserdisc);
41         menu_Laserdisc->do_update_histories(listLaserdisc);
42         menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
43         
44         ext_play = "*.ogv *.mp4 *.avi *.mkv";
45         desc_play = "Laserisc";
46         menu_Laserdisc->do_add_media_extension(ext_play, desc_play);
47
48 }
49
50 void Ui_MainWindowBase::CreateLaserdiscPulldownMenu(void)
51 {
52 }
53
54 void Ui_MainWindowBase::ConfigLaserdiscMenuSub(void)
55 {
56         
57 }
58
59 int Ui_MainWindowBase::set_recent_laserdisc(int num) 
60 {
61         QString s_path;
62         char path_shadow[PATH_MAX];
63         int i;
64         if((num < 0) || (num >= MAX_HISTORY)) return -1;
65     
66         s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_laser_disc_path[num]);
67         strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
68         UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_laser_disc_path, listLaserdisc);
69    
70         get_parent_dir(path_shadow);
71         strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, path_shadow);
72         strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
73         emit sig_close_laserdisc();
74         AGAR_DebugLog(AGAR_LOG_DEBUG, "Laserdisc: Open : filename = %s", path_shadow);
75         emit sig_open_laserdisc(s_path);
76         menu_Laserdisc->do_update_histories(listLaserdisc);
77         menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
78         return 0;
79 }
80
81 void Ui_MainWindowBase::do_eject_laserdisc(void) 
82 {
83         emit sig_close_laserdisc();
84 }
85
86 void Ui_MainWindowBase::do_open_laserdisc(QString path) 
87 {
88         char path_shadow[PATH_MAX];
89         int i;
90
91         if(path.length() <= 0) return;
92         strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
93         UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_laser_disc_path, listLaserdisc);
94         get_parent_dir(path_shadow);
95         strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, path_shadow);
96         // Copy filename again.
97         strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
98
99         emit sig_close_laserdisc();
100         AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
101         emit sig_open_laserdisc(path);
102         menu_Laserdisc->do_update_histories(listLaserdisc);
103         menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
104 }
105
106 void Ui_MainWindowBase::retranslateLaserdiscMenu(void)
107 {
108         if(using_flags->is_use_laser_disc()) {
109                 menu_Laserdisc->retranslateUi();
110         }
111 }
112
113 void Ui_MainWindowBase::ConfigLaserdiscMenu(void)
114 {
115         ConfigLaserdiscMenuSub(); 
116 }