2 * UI->Qt->MainWindow : Cartridge Utils.
3 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jan 24, 2014 : Moved from some files.
10 #include "mainwidget_base.h"
11 #include "commonclasses.h"
12 #include "menu_cart.h"
13 #include "qt_dialogs.h"
14 #include "agar_logger.h"
16 void Object_Menu_Control::insert_cart(void) {
17 emit sig_insert_cart(getDrive());
19 void Object_Menu_Control::eject_cart(void) {
20 write_protect = false;
21 emit sig_eject_cart(getDrive());
23 void Object_Menu_Control::on_recent_cart(void){
24 emit set_recent_cart(drive, s_num);
27 void Ui_MainWindowBase::_open_cart(int drv, const QString fname)
29 char path_shadow[PATH_MAX];
32 if(fname.length() <= 0) return;
33 strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
34 UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
35 get_parent_dir(path_shadow);
36 strcpy(using_flags->get_config_ptr()->initial_cart_dir, path_shadow);
37 menu_Cart[drv]->do_update_histories(listCARTs[drv]);
38 menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
40 emit sig_close_cart(drv);
41 emit sig_open_cart(drv, fname);
45 void Ui_MainWindowBase::eject_cart(int drv)
47 emit sig_close_cart(drv);
50 void Ui_MainWindowBase::set_recent_cart(int drv, int num)
53 char path_shadow[PATH_MAX];
56 if((num < 0) || (num >= MAX_HISTORY)) return;
58 s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_cart_path[drv][num]);
59 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
60 UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
61 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
63 get_parent_dir(path_shadow);
64 strcpy(using_flags->get_config_ptr()->initial_cart_dir, path_shadow);
65 menu_Cart[drv]->do_update_histories(listCARTs[drv]);
66 menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
69 emit sig_open_cart(drv, s_path);
72 void Ui_MainWindowBase::CreateCartMenu(int drv, int drv_base)
77 QString drv_base_name = QString::number(drv_base);
79 if(using_flags->is_machine_gamegear()) {
80 ext = "*.rom *.bin *.gg *.col";
81 desc = "Game Cartridge";
82 } else if(using_flags->is_machine_mastersystem()) {
83 ext = "*.rom *.bin *.sms";
84 desc = "Game Cartridge";
85 } else if(using_flags->is_machine_pc6001()) {
86 ext = "*.rom *.bin *.60";
87 desc = "Game Cartridge";
88 } else if(using_flags->is_machine_has_pcengine()) {
89 ext = "*.rom *.bin *.pce";
91 } else if(using_flags->is_machine_z80tvgame()) {
92 ext = "*.rom *.bin *.hex";
94 } else if(using_flags->is_machine_sc3000()) {
95 ext = "*.rom *.bin *.sms *.sg";
96 desc = "SC-3000/1000 Game Cartridge";
99 desc = "Game Cartridge";
102 menu_Cart[drv] = new Menu_CartClass(emu, menubar, QString::fromUtf8("Obj_Cart"), using_flags, this, drv);
103 menu_Cart[drv]->create_pulldown_menu();
105 menu_Cart[drv]->do_clear_inner_media();
106 menu_Cart[drv]->do_add_media_extension(ext, desc);
107 SETUP_HISTORY(using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
108 menu_Cart[drv]->do_update_histories(listCARTs[drv]);
109 menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
111 QString name = QString::fromUtf8("Cart");
113 tmpv.setNum(drv_base);
115 menu_Cart[drv]->setTitle(name);
118 void Ui_MainWindowBase::CreateCartPulldownMenu(int drv)
122 void Ui_MainWindowBase::ConfigCartMenuSub(int drv)
126 void Ui_MainWindowBase::retranslateCartMenu(int drv, int basedrv)
128 menu_Cart[drv]->retranslateUi();
131 void Ui_MainWindowBase::ConfigCartMenu(void)
133 for(int i = 0; i > using_flags->get_max_cart(); i++) {
134 ConfigCartMenuSub(0);