2 * UI->Qt->MainWindow : CMT Utils.
3 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jan 24, 2014 : Moved from some files.
11 #include "commonclasses.h"
12 #include "mainwidget.h"
13 #include "qt_dialogs.h"
15 #include "agar_logger.h"
20 void Object_Menu_Control::start_insert_play_cmt(void) {
21 //AGAR_DebugLog(AGAR_LOG_DEBUG, "%d", play);
22 emit sig_insert_play_cmt(play);
24 void Object_Menu_Control::eject_cmt(void) {
27 void Object_Menu_Control::on_recent_cmt(){
28 emit sig_recent_cmt(s_num);
30 void Object_Menu_Control::do_set_write_protect_cmt(void) {
32 emit sig_set_write_protect_cmt(write_protect);
34 void Object_Menu_Control::do_unset_write_protect_cmt(void) {
35 write_protect = false;
36 emit sig_set_write_protect_cmt(write_protect);
40 void Ui_MainWindow::CreateCMTMenu(void)
49 menu_CMT = new Menu_CMTClass(emu, menubar, "Object_CMT_Menu", this, 0);
50 menu_CMT->setObjectName(QString::fromUtf8("menuCMT", -1));
52 menu_CMT->create_pulldown_menu();
54 SETUP_HISTORY(config.recent_tape_path, listCMT);
55 menu_CMT->do_set_write_protect(false);
56 menu_CMT->do_update_histories(listCMT);
57 menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
59 #if defined(_PC6001) || defined(_PC6001MK2) || defined(_PC6001MK2SR) || defined(_PC6601) || defined(_PC6601SR)
60 ext_play = "*.wav *.p6 *.cas";
61 ext_rec = "*.wav *.p6 *.cas";
62 #elif defined(_PC8001SR) || defined(_PC8801MA) || defined(_PC98DO)
63 ext_play = "*.cas *.cmt *.n80 *.t88";
64 ext_rec = "*.cas *.cmt";
65 #elif defined(_MZ80A) || defined(_MZ80K) || defined(_MZ1200) || defined(_MZ700) || defined(_MZ800) || defined(_MZ1500)
66 ext_play = "*.wav *.cas *.mzt *.m12 *.t77";
67 ext_rec = "*.wav *.cas";
68 #elif defined(_MZ80B) || defined(_MZ2000) || defined(_MZ2200)
69 ext_play = "*.wav *.cas *.mzt *.mti *.mtw *.dat";
70 ext_rec = "*.wav *.cas";
71 #elif defined(_X1) || defined(_X1TWIN) || defined(_X1TURBO) || defined(_X1TURBOZ)
72 ext_play = "*.wav *.cas *.tap *.t77";
73 ext_rec = "*.wav *.cas";
74 #elif defined(_FM8) || defined(_FM7) || defined(_FMNEW7) || defined(_FM77_VARIANTS) || defined(_FM77AV_VARIANTS)
75 ext_play = "*.wav *.t77";
76 ext_rec = "*.wav *.t77";
77 #elif defined(TAPE_BINARY_ONLY)
78 ext_play = "*.cas *.cmt";
79 ext_rec = "*.cas *.cmt";
81 ext_play = "*.wav *.cas";
82 ext_rec = "*.wav *.cas";
84 desc_play = "Data Recorder Tape [Play]";
85 desc_rec = "Data Recorder Tape [Rec]";
87 menu_CMT->do_add_media_extension(ext_play, desc_play);
88 menu_CMT->do_add_rec_media_extension(ext_rec, desc_rec);
92 void Ui_MainWindow::CreateCMTPulldownMenu(void)
98 int Ui_MainWindow::set_recent_cmt(int drv, int num)
101 char path_shadow[PATH_MAX];
103 if((num < 0) || (num >= MAX_HISTORY)) return -1;
105 s_path = QString::fromUtf8(config.recent_tape_path[num]);
106 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
107 UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
109 get_parent_dir(path_shadow);
110 strcpy(config.initial_tape_dir, path_shadow);
111 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
112 AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open READ");
114 emit sig_close_tape();
115 emit sig_play_tape(s_path);
116 menu_CMT->do_update_histories(listCMT);
117 menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
121 void Ui_MainWindow::do_write_protect_cmt(int drv, bool flag)
123 cmt_write_protect = flag;
124 //menu_CMT->do_set_write_protect(flag);
128 # ifdef USE_TAPE_BUTTON
129 void Ui_MainWindow::do_push_play_tape(void)
132 emit sig_cmt_push_play();
135 void Ui_MainWindow::do_push_stop_tape(void)
138 emit sig_cmt_push_stop();
141 void Ui_MainWindow::do_display_tape_play(bool flag)
144 // actionPlay_Start->setChecked(true);
146 // actionPlay_Stop->setChecked(true);
150 void Ui_MainWindow::do_push_fast_forward_tape(void)
153 emit sig_cmt_push_fast_forward();
155 void Ui_MainWindow::do_push_rewind_tape(void)
158 emit sig_cmt_push_fast_rewind();
160 void Ui_MainWindow::do_push_apss_forward_tape(void)
163 emit sig_cmt_push_apss_forward();
165 void Ui_MainWindow::do_push_apss_rewind_tape(void)
168 emit sig_cmt_push_apss_rewind();
174 void Ui_MainWindow::set_wave_shaper(bool f)
177 config.wave_shaper = 1;
179 config.wave_shaper = 0;
183 bool Ui_MainWindow::get_wave_shaper(void)
185 if(config.wave_shaper == 0) return false;
191 void Ui_MainWindow::set_direct_load_from_mzt(bool f)
194 config.direct_load_mzt = 1;
196 config.direct_load_mzt = 0;
200 bool Ui_MainWindow::get_direct_load_mzt(void)
202 if(config.direct_load_mzt == 0) return false;
207 void Ui_MainWindow::_open_cmt(bool mode, const QString path)
211 void Ui_MainWindow::eject_cmt(void)
214 emit sig_close_tape();
218 void Ui_MainWindow::ConfigCMTMenuSub(void)
223 void Ui_MainWindow::do_open_read_cmt(int dummy, QString path)
225 char path_shadow[PATH_MAX];
228 if(path.length() <= 0) return;
229 strncpy(path_shadow, path.toUtf8().constData(), PATH_MAX);
230 UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
231 get_parent_dir(path_shadow);
232 strcpy(config.initial_tape_dir, path_shadow);
233 // Copy filename again.
234 strncpy(path_shadow, path.toUtf8().constData(), PATH_MAX);
236 emit sig_close_tape();
237 AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open READ : filename = %s", path_shadow);
238 emit sig_play_tape(path);
239 menu_CMT->do_update_histories(listCMT);
240 menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
243 void Ui_MainWindow::do_open_write_cmt(QString path)
245 char path_shadow[PATH_MAX];
248 if(path.length() <= 0) return;
249 strncpy(path_shadow, path.toUtf8().constData(), PATH_MAX);
250 UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
251 get_parent_dir(path_shadow);
252 strcpy(config.initial_tape_dir, path_shadow);
253 // Copy filename again.
254 strncpy(path_shadow, path.toUtf8().constData(), PATH_MAX);
256 emit sig_close_tape();
257 if(menu_CMT->getWriteProtect() != false) {
258 AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open READ : filename = %s", path_shadow);
259 emit sig_play_tape(path);
261 AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open Write : filename = %s", path_shadow);
262 emit sig_rec_tape(path);
264 menu_CMT->do_update_histories(listCMT);
265 menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
270 void Ui_MainWindow::retranslateCMTMenu(void)
273 menu_CMT->retranslateUi();
277 void Ui_MainWindow::ConfigCMTMenu(void)
279 #if defined(USE_TAPE)