2 * UI->Qt->MainWindow : CD ROM Utils.
3 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Mar 20, 2016 : Initial
11 #include "commonclasses.h"
12 #include "mainwidget_base.h"
13 #include "qt_dialogs.h"
14 #include "agar_logger.h"
16 #include "menu_compactdisc.h"
19 void Object_Menu_Control::insert_cdrom(void) {
20 //AGAR_DebugLog(AGAR_LOG_DEBUG, "%d", play);
21 emit sig_insert_cdrom(play);
23 void Object_Menu_Control::eject_cdrom(void) {
24 emit sig_eject_cdrom();
26 void Object_Menu_Control::on_recent_cdrom(){
27 emit sig_recent_cdrom(s_num);
30 void Ui_MainWindowBase::CreateCDROMMenu(void)
32 QString ext_play, desc_play;
35 menu_CDROM = new Menu_CompactDiscClass(emu, menubar, "Object_CDROM_Menu", this, 0);
36 menu_CDROM->setObjectName(QString::fromUtf8("menuCDROM", -1));
38 menu_CDROM->create_pulldown_menu();
40 SETUP_HISTORY(config.recent_compact_disc_path, listCDROM);
41 menu_CDROM->do_update_histories(listCDROM);
42 menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
44 ext_play = "*.ccd *.cue";
45 desc_play = "Compact Disc";
46 menu_CDROM->do_add_media_extension(ext_play, desc_play);
50 void Ui_MainWindowBase::CreateCDROMPulldownMenu(void)
54 void Ui_MainWindowBase::ConfigCDROMMenuSub(void)
59 int Ui_MainWindowBase::set_recent_cdrom(int drv, int num)
62 char path_shadow[PATH_MAX];
64 if((num < 0) || (num >= MAX_HISTORY)) return -1;
66 s_path = QString::fromLocal8Bit(config.recent_compact_disc_path[num]);
67 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
68 UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path, listCDROM);
70 get_parent_dir(path_shadow);
71 strcpy(config.initial_compact_disc_dir, path_shadow);
72 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
73 emit sig_close_cdrom();
74 AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
75 emit sig_open_cdrom(s_path);
76 menu_CDROM->do_update_histories(listCDROM);
77 menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
81 void Ui_MainWindowBase::do_eject_cdrom(int drv)
83 emit sig_close_cdrom();
86 void Ui_MainWindowBase::do_open_cdrom(int drv, QString path)
88 char path_shadow[PATH_MAX];
91 if(path.length() <= 0) return;
92 strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
93 UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path, listCDROM);
94 get_parent_dir(path_shadow);
95 strcpy(config.initial_compact_disc_dir, path_shadow);
96 // Copy filename again.
97 strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
99 emit sig_close_cdrom();
100 AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
101 emit sig_open_cdrom(path);
102 menu_CDROM->do_update_histories(listCDROM);
103 menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
106 void Ui_MainWindowBase::retranslateCDROMMenu(void)
108 if(using_flags->is_use_compact_disc()) {
109 menu_CDROM->retranslateUi();
113 void Ui_MainWindowBase::ConfigCDROMMenu(void)
115 ConfigCDROMMenuSub();