ConfigControlMenu();
ConfigFloppyMenu();
ConfigCMTMenu();
-
+ ConfigSoundMenu();
+
//actionInsert_QD0 = new QAction(MainWindow);
//actionInsert_QD0->setObjectName(QString::fromUtf8("actionInsert_QD0"));
actionAbout = new Action_Control(this);
actionAbout->setObjectName(QString::fromUtf8("actionAbout"));
- action2000Hz = new Action_Control(this);
- action2000Hz->setObjectName(QString::fromUtf8("action2000Hz"));
- action2000Hz->setCheckable(true);
- action4000Hz = new Action_Control(this);
- action4000Hz->setObjectName(QString::fromUtf8("action4000Hz"));
- action4000Hz->setCheckable(true);
- action8000Hz = new Action_Control(this);
- action8000Hz->setObjectName(QString::fromUtf8("action8000Hz"));
- action8000Hz->setCheckable(true);
- action11025Hz = new Action_Control(this);
- action11025Hz->setObjectName(QString::fromUtf8("action11025Hz"));
- action11025Hz->setCheckable(true);
- action22050Hz = new Action_Control(this);
- action22050Hz->setObjectName(QString::fromUtf8("action22050Hz"));
- action22050Hz->setCheckable(true);
- action44100Hz = new Action_Control(this);
- action44100Hz->setObjectName(QString::fromUtf8("action44100Hz"));
- action44100Hz->setCheckable(true);
- action48000Hz = new Action_Control(this);
- action48000Hz->setObjectName(QString::fromUtf8("action48000Hz"));
- action48000Hz->setCheckable(true);
- action96000Hz = new Action_Control(this);
- action96000Hz->setObjectName(QString::fromUtf8("action96000Hz"));
- action96000Hz->setCheckable(true);
- action50ms = new Action_Control(this);
- action50ms->setObjectName(QString::fromUtf8("action50ms"));
- action50ms->setCheckable(true);
- action100ms = new Action_Control(this);
- action100ms->setObjectName(QString::fromUtf8("action100ms"));
- action100ms->setCheckable(true);
- action100ms->setChecked(false);
- action200ms = new Action_Control(this);
- action200ms->setObjectName(QString::fromUtf8("action200ms"));
- action300ms = new Action_Control(this);
- action300ms->setObjectName(QString::fromUtf8("action300ms"));
- action300ms->setCheckable(true);
- action400ms = new Action_Control(this);
- action400ms->setObjectName(QString::fromUtf8("action400ms"));
- action400ms->setCheckable(true);
-
- actionStart_Record = new Action_Control(this);
- actionStart_Record->setObjectName(QString::fromUtf8("actionStart_Record"));
- actionStart_Record->setCheckable(true);
- actionStop_Record = new Action_Control(this);
- actionStop_Record->setObjectName(QString::fromUtf8("actionStop_Record"));
- actionStop_Record->setCheckable(true);
actionStart_Record_Movie = new Action_Control(this);
actionStart_Record_Movie->setObjectName(QString::fromUtf8("actionStart_Record_Movie"));
actionStart_Record_Movie->setCheckable(true);
menuScreen->setObjectName(QString::fromUtf8("menuScreen"));
menuStretch_Mode = new QMenu(menuScreen);
menuStretch_Mode->setObjectName(QString::fromUtf8("menuStretch_Mode"));
- menuSound = new QMenu(menubar);
- menuSound->setObjectName(QString::fromUtf8("menuSound"));
- menuOutput_Frequency = new QMenu(menuSound);
- menuOutput_Frequency->setObjectName(QString::fromUtf8("menuOutput_Frequency"));
- menuSound_Latency = new QMenu(menuSound);
- menuSound_Latency->setObjectName(QString::fromUtf8("menuSound_Latency"));
- menuFrequency = new QMenu(menubar);
- menuFrequency->setObjectName(QString::fromUtf8("menuFrequency"));
- menuRecord = new QMenu(menubar);
- menuRecord->setObjectName(QString::fromUtf8("menuRecord"));
- menuRecord_sound = new QMenu(menuRecord);
- menuRecord_sound->setObjectName(QString::fromUtf8("menuRecord_sound"));
- menuRecoad_as_movie = new QMenu(menuRecord);
- menuRecoad_as_movie->setObjectName(QString::fromUtf8("menuRecoad_as_movie"));
+
+ menuMachine = new QMenu(menubar);
+ menuMachine->setObjectName(QString::fromUtf8("menuMachine"));
+ // menuMachine_SoundDevice = new QMenu(menuScreen);
+ //menuMachine_SoundDevice->setObjectName(QString::fromUtf8("menuMachine_SoundDevice"));
+
+ menuSound = new QMenu(menubar);
+ menuSound->setObjectName(QString::fromUtf8("menuSound"));
+
+// menuRecoad_as_movie = new QMenu(menuRecord);
+// menuRecoad_as_movie->setObjectName(QString::fromUtf8("menuRecoad_as_movie"));
menuEmulator = new QMenu(menubar);
menuEmulator->setObjectName(QString::fromUtf8("menuEmulator"));
menuHELP = new QMenu(menubar);
menubar->addAction(menuFD[1]->menuAction());
// menubar->addAction(menuQD0->menuAction());
menubar->addAction(menuCMT->menuAction());
- menubar->addAction(menuFrequency->menuAction());
+ menubar->addAction(menuMachine->menuAction());
menubar->addAction(menuSound->menuAction());
menubar->addAction(menuScreen->menuAction());
- menubar->addAction(menuRecord->menuAction());
+// menubar->addAction(menuRecord->menuAction());
menubar->addAction(menuEmulator->menuAction());
menubar->addAction(menuHELP->menuAction());
//menuWrite_Protection_QD0->addAction(actionProtection_ON_QD0);
//menuWrite_Protection_QD0->addAction(actionProtection_OFF_QD0);
- menuCMT->addAction(actionInsert_CMT);
- menuCMT->addAction(actionEject_CMT);
- menuCMT->addSeparator();
- menuCMT->addAction(actionPlay_Start);
- menuCMT->addAction(actionPlay_Stop);
- menuCMT->addSeparator();
- menuCMT->addAction(actionRecording);
- menuCMT->addSeparator();
- menuCMT->addAction(menuWrite_Protection_CMT->menuAction());
- menuWrite_Protection_CMT->addAction(actionProtection_ON_CMT);
- menuWrite_Protection_CMT->addAction(actionProtection_OFF_CMT);
+ // menuCMT->addAction(actionInsert_CMT);
+ //menuCMT->addAction(actionEject_CMT);
+ //menuCMT->addSeparator();
+ //menuCMT->addAction(actionPlay_Start);
+ //menuCMT->addAction(actionPlay_Stop);
+ //menuCMT->addSeparator();
+ //menuCMT->addAction(actionRecording);
+ //menuCMT->addSeparator();
+ //menuCMT->addAction(menuWrite_Protection_CMT->menuAction());
+ //menuWrite_Protection_CMT->addAction(actionProtection_ON_CMT);
+ //menuWrite_Protection_CMT->addAction(actionProtection_OFF_CMT);
menuScreen->addAction(actionZoom);
menuScreen->addAction(actionDisplay_Mode);
menuStretch_Mode->addAction(actionDot_by_Dot);
menuStretch_Mode->addAction(actionKeep_Aspect);
menuStretch_Mode->addAction(actionFill_Display);
+
+ CreateSoundMenu();
- menuSound->addAction(menuOutput_Frequency->menuAction());
- menuSound->addAction(menuSound_Latency->menuAction());
-
- menuOutput_Frequency->addAction(action2000Hz);
- menuOutput_Frequency->addAction(action4000Hz);
- menuOutput_Frequency->addAction(action8000Hz);
- menuOutput_Frequency->addAction(action11025Hz);
- menuOutput_Frequency->addAction(action22050Hz);
- menuOutput_Frequency->addAction(action44100Hz);
- menuOutput_Frequency->addAction(action48000Hz);
- menuOutput_Frequency->addAction(action96000Hz);
-
- menuSound_Latency->addAction(action50ms);
- menuSound_Latency->addAction(action100ms);
- menuSound_Latency->addAction(action200ms);
- menuSound_Latency->addAction(action300ms);
- menuSound_Latency->addAction(action400ms);
-
- menuRecord->addAction(actionCapture_Screen);
- menuRecord->addSeparator();
- menuRecord->addAction(menuRecoad_as_movie->menuAction());
- menuRecord->addSeparator();
- menuRecord->addAction(menuRecord_sound->menuAction());
- menuRecord_sound->addAction(actionStart_Record);
- menuRecord_sound->addAction(actionStop_Record);
- menuRecoad_as_movie->addAction(actionStart_Record_Movie);
- menuRecoad_as_movie->addAction(actionStop_Record_Movie);
+// menuRecord->addAction(actionCapture_Screen);
+// menuRecord->addSeparator();
+// menuRecord->addAction(menuRecoad_as_movie->menuAction());
+// menuRecord->addSeparator();
+// menuRecord->addAction(menuRecord_sound->menuAction());
+// menuRecord_sound->addAction(actionStart_Record);
+// menuRecord_sound->addAction(actionStop_Record);
+// menuRecoad_as_movie->addAction(actionStart_Record_Movie);
+// menuRecoad_as_movie->addAction(actionStop_Record_Movie);
menuHELP->addAction(actionAbout);
menuHELP->addSeparator();
QObject::connect(actionExit_Emulator, SIGNAL(destroyed()), MainWindow, SLOT(close()));
- QObject::connect(action100ms, SIGNAL(triggered()), action100ms, SLOT(trigger()));
- QObject::connect(action200ms, SIGNAL(triggered()), action200ms, SLOT(trigger()));
- QObject::connect(action300ms, SIGNAL(triggered()), action300ms, SLOT(trigger()));
- QObject::connect(action400ms, SIGNAL(triggered()), action400ms, SLOT(trigger()));
- QObject::connect(action50ms, SIGNAL(triggered()), action50ms, SLOT(trigger()));
-
- QObject::connect(action2000Hz, SIGNAL(triggered()), action2000Hz, SLOT(trigger()));
- QObject::connect(action4000Hz, SIGNAL(triggered()), action4000Hz, SLOT(trigger()));
- QObject::connect(action8000Hz, SIGNAL(triggered()), action8000Hz, SLOT(trigger()));
- QObject::connect(action11025Hz, SIGNAL(triggered()), action11025Hz, SLOT(trigger()));
- QObject::connect(action22050Hz, SIGNAL(triggered()), action22050Hz, SLOT(trigger()));
- QObject::connect(action44100Hz, SIGNAL(triggered()), action44100Hz, SLOT(trigger()));
- QObject::connect(action48000Hz, SIGNAL(triggered()), action48000Hz, SLOT(trigger()));
- QObject::connect(action96000Hz, SIGNAL(triggered()), action96000Hz, SLOT(trigger()));
QObject::connect(this, SIGNAL(destroyed()), this, SLOT(on_actionExit_triggered()));
QObject::connect(MainWindow, SIGNAL(destroyed()), this, SLOT(on_actionExit_triggered()));
retranslateFloppyMenu(0, 0);
retranslateFloppyMenu(1, 1);
retranslateCMTMenu();
+ retranslateSoundMenu();
this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
- //actionInsert_QD0->setText(QApplication::translate("MainWindow", "Insert", 0, QApplication::UnicodeUTF8));
- //actionEject_QD0->setText(QApplication::translate("MainWindow", "Eject", 0, QApplication::UnicodeUTF8));
- //actionResent_Images_QD0->setText(QApplication::translate("MainWindow", "Resent Images", 0, QApplication::UnicodeUTF8));
- //actionProtection_ON_QD0->setText(QApplication::translate("MainWindow", "Protection ON", 0, QApplication::UnicodeUTF8));
- //actionProtection_OFF_QD0->setText(QApplication::translate("MainWindow", "Protection OFF", 0, QApplication::UnicodeUTF8));
#if defined(USE_TAPE)
actionInsert_CMT->setText(QApplication::translate("MainWindow", "Insert CMT", 0, QApplication::UnicodeUTF8));
actionEject_CMT->setText(QApplication::translate("MainWindow", "Eject CMT", 0, QApplication::UnicodeUTF8));
actionAbout->setText(QApplication::translate("MainWindow", "About...", 0, QApplication::UnicodeUTF8));
- action2000Hz->setText(QApplication::translate("MainWindow", "2000Hz", 0, QApplication::UnicodeUTF8));
- action4000Hz->setText(QApplication::translate("MainWindow", "4000Hz", 0, QApplication::UnicodeUTF8));
- action8000Hz->setText(QApplication::translate("MainWindow", "8000Hz", 0, QApplication::UnicodeUTF8));
- action11025Hz->setText(QApplication::translate("MainWindow", "11025Hz", 0, QApplication::UnicodeUTF8));
- action22050Hz->setText(QApplication::translate("MainWindow", "22050Hz", 0, QApplication::UnicodeUTF8));
- action44100Hz->setText(QApplication::translate("MainWindow", "44100Hz", 0, QApplication::UnicodeUTF8));
- action48000Hz->setText(QApplication::translate("MainWindow", "48000Hz", 0, QApplication::UnicodeUTF8));
- action96000Hz->setText(QApplication::translate("MainWindow", "96000Hz", 0, QApplication::UnicodeUTF8));
-
- action50ms->setText(QApplication::translate("MainWindow", "50ms", 0, QApplication::UnicodeUTF8));
- action100ms->setText(QApplication::translate("MainWindow", "100ms", 0, QApplication::UnicodeUTF8));
- action200ms->setText(QApplication::translate("MainWindow", "200ms", 0, QApplication::UnicodeUTF8));
- action300ms->setText(QApplication::translate("MainWindow", "300ms", 0, QApplication::UnicodeUTF8));
- action400ms->setText(QApplication::translate("MainWindow", "400ms", 0, QApplication::UnicodeUTF8));
- actionStart_Record->setText(QApplication::translate("MainWindow", "Start Record", 0, QApplication::UnicodeUTF8));
- actionStop_Record->setText(QApplication::translate("MainWindow", "Stop Record", 0, QApplication::UnicodeUTF8));
-
- actionStart_Record_Movie->setText(QApplication::translate("MainWindow", "Start Record Movie", 0, QApplication::UnicodeUTF8));
- actionStop_Record_Movie->setText(QApplication::translate("MainWindow", "Stop Record Movie", 0, QApplication::UnicodeUTF8));
+ // actionStart_Record_Movie->setText(QApplication::translate("MainWindow", "Start Record Movie", 0, QApplication::UnicodeUTF8));
+ // actionStop_Record_Movie->setText(QApplication::translate("MainWindow", "Stop Record Movie", 0, QApplication::UnicodeUTF8));
// menuQD0->setTitle(QApplication::translate("MainWindow", "QD", 0, QApplication::UnicodeUTF8));
menuScreen->setTitle(QApplication::translate("MainWindow", "Screen", 0, QApplication::UnicodeUTF8));
menuStretch_Mode->setTitle(QApplication::translate("MainWindow", "Stretch Mode", 0, QApplication::UnicodeUTF8));
- menuSound->setTitle(QApplication::translate("MainWindow", "Sound", 0, QApplication::UnicodeUTF8));
- menuOutput_Frequency->setTitle(QApplication::translate("MainWindow", "Output Frequency", 0, QApplication::UnicodeUTF8));
- menuSound_Latency->setTitle(QApplication::translate("MainWindow", "Sound Latency", 0, QApplication::UnicodeUTF8));
- menuFrequency->setTitle(QApplication::translate("MainWindow", "Machine", 0, QApplication::UnicodeUTF8));
- menuRecord->setTitle(QApplication::translate("MainWindow", "Record", 0, QApplication::UnicodeUTF8));
- menuRecord_sound->setTitle(QApplication::translate("MainWindow", "Record sound", 0, QApplication::UnicodeUTF8));
- menuRecoad_as_movie->setTitle(QApplication::translate("MainWindow", "Recoad as movie", 0, QApplication::UnicodeUTF8));
+// menuRecord->setTitle(QApplication::translate("MainWindow", "Record", 0, QApplication::UnicodeUTF8));
+// menuRecoad_as_movie->setTitle(QApplication::translate("MainWindow", "Recoad as movie", 0, QApplication::UnicodeUTF8));
menuEmulator->setTitle(QApplication::translate("MainWindow", "Emulator", 0, QApplication::UnicodeUTF8));
-
+ menuMachine->setTitle(QApplication::translate("MainWindow", "Machine", 0, QApplication::UnicodeUTF8));
+
menuHELP->setTitle(QApplication::translate("MainWindow", "HELP", 0, QApplication::UnicodeUTF8));
} // retranslateUi
--- /dev/null
+/*
+ * Common Source Project/ Qt
+ * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ * Qt: Menu->Sound Implementations.
+ * History: Jan 14, 2015 : Initial
+ */
+
+#include "menuclasses.h"
+
+QT_BEGIN_NAMESPACE
+
+const int s_freq_table[8] = {
+ 2000, 4000, 8000, 11025, 22050, 44100,
+#ifdef OVERRIDE_SOUND_FREQ_48000HZ
+ OVERRIDE_SOUND_FREQ_48000HZ,
+#else
+ 48000,
+#endif
+ 96000,
+};
+const double s_late_table[5] = {0.05, 0.1, 0.2, 0.3, 0.4};
+
+void Object_Menu_Control::on_set_freq(void) {
+ emit sig_freq(s_num);
+}
+
+void Object_Menu_Control::on_set_latency(void) {
+ emit sig_latency(s_num);
+}
+
+void Ui_MainWindow::set_latency(int num)
+{
+ if((num < 0) || (num > 4)) return;
+ config.sound_latency = num;
+ if(emu) {
+ emu->LockVM();
+ emu->update_config();
+ emu->UnlockVM();
+ }
+}
+
+void Ui_MainWindow::set_freq(int num)
+{
+ if((num < 0) || (num > 7)) return;
+ config.sound_frequency = num;
+ if(emu) {
+ emu->LockVM();
+ emu->update_config();
+ emu->UnlockVM();
+ }
+}
+
+void Ui_MainWindow::set_sound_device(int num)
+{
+#ifdef USE_SOUND_DEVICE_TYPE
+ if((num < 0) || (num >7)) return;
+ config.sound_device_type = num;
+ if(emu) {
+ emu->LockVM();
+ emu->update_config();
+ emu->UnlockVM();
+ }
+#endif
+}
+
+
+void Ui_MainWindow::start_record_sound(bool start)
+{
+ if(emu) {
+ if(start) {
+ emu->start_rec_sound();
+ } else {
+ emu->stop_rec_sound();
+ }
+ }
+}
+
+
+
+void Ui_MainWindow::CreateSoundMenu(void)
+{
+ int i;
+// menuRecord = new QMenu(menuSound);
+// menuRecord->setObjectName(QString::fromUtf8("menuRecord_Sound"));
+
+ menuSound->addAction(actionStart_Record);
+ menuSound->addSeparator();
+ menuOutput_Frequency = new QMenu(menuSound);
+ menuOutput_Frequency->setObjectName(QString::fromUtf8("menuOutput_Frequency"));
+ menuSound->addAction(menuOutput_Frequency->menuAction());
+ menuSound->addSeparator();
+ for(i = 0; i < 8; i++) {
+ menuOutput_Frequency->addAction(action_Freq[i]);
+ connect(action_Freq[i], SIGNAL(triggered()),
+ action_Freq[i]->binds, SLOT(on_set_freq()));
+ connect(action_Freq[i]->binds, SIGNAL(sig_freq(int)),
+ this, SLOT(set_freq(int)));
+
+ }
+ menuSound_Latency = new QMenu(menuSound);
+ menuSound_Latency->setObjectName(QString::fromUtf8("menuSound_Latency"));
+ menuSound->addAction(menuSound_Latency->menuAction());
+ for(i = 0; i < 5; i++) {
+ menuSound_Latency->addAction(action_Latency[i]);
+ }
+}
+
+void Ui_MainWindow::ConfigSoundMenu(void)
+{
+ int i;
+ QString tmps;
+ double dval;
+ int freq = 48000;
+
+
+ actionGroup_Sound_Freq = new QActionGroup(this);
+ actionGroup_Sound_Freq->setExclusive(true);
+
+ for(i = 0; i < 8; i++) {
+
+ action_Freq[i] = new Action_Control(this);
+ tmps.setNum(s_freq_table[i]);
+ tmps = QString::fromUtf8("action") + tmps + QString::fromUtf8("Hz");
+ action_Freq[i]->setObjectName(tmps);
+ action_Freq[i]->setCheckable(true);
+ action_Freq[i]->binds->setNumber(i);
+ if(i == config.sound_frequency) {
+ action_Freq[i]->setChecked(true);
+ freq = s_freq_table[i];
+ }
+ actionGroup_Sound_Freq->addAction(action_Freq[i]);
+ }
+ actionGroup_Sound_Latency = new QActionGroup(this);
+ actionGroup_Sound_Latency->setExclusive(true);
+
+ for(i = 0; i < 5; i++) {
+ action_Latency[i] = new Action_Control(this);
+ dval = s_late_table[i];
+ dval = dval * 1000.0;
+ tmps.setNum((int)dval);
+ tmps = QString::fromUtf8("action") + tmps + QString::fromUtf8("ms");
+ action_Latency[i]->setObjectName(tmps);
+ action_Latency[i]->setCheckable(true);
+ action_Latency[i]->binds->setNumber(i);
+ if(i == config.sound_latency) action_Latency[i]->setChecked(true);
+ actionGroup_Sound_Latency->addAction(action_Latency[i]);
+ }
+
+
+ actionStart_Record = new Action_Control(this);
+ actionStart_Record->setObjectName(QString::fromUtf8("actionStart_Record"));
+ actionStart_Record->setCheckable(true);
+ actionStart_Record->setChecked(false);
+ connect(actionStart_Record, SIGNAL(toggled(bool)), this, SLOT(start_record_sound(bool)));
+
+}
+
+void Ui_MainWindow::retranslateSoundMenu(void)
+{
+ int i;
+ QString tmps;
+ double dval;
+
+ for(i = 0; i < 8; i++) {
+ tmps.setNum(s_freq_table[i]);
+ tmps = tmps + QApplication::translate("MainWindow", "Hz", 0, QApplication::UnicodeUTF8);
+ action_Freq[i]->setText(tmps);
+ }
+ for(i = 0; i < 5; i++) {
+ dval = s_late_table[i];
+ dval = dval * 1000.0;
+ tmps.setNum((int)dval);
+ tmps = tmps + QApplication::translate("MainWindow", "mSec", 0, QApplication::UnicodeUTF8);
+ action_Latency[i]->setText(tmps);
+ }
+ actionStart_Record->setText(QApplication::translate("MainWindow", "Start Recording sound", 0, QApplication::UnicodeUTF8));
+
+ menuSound->setTitle(QApplication::translate("MainWindow", "Sound", 0, QApplication::UnicodeUTF8));
+ menuOutput_Frequency->setTitle(QApplication::translate("MainWindow", "Output Frequency", 0, QApplication::UnicodeUTF8));
+ menuSound_Latency->setTitle(QApplication::translate("MainWindow", "Sound Latency", 0, QApplication::UnicodeUTF8));
+
+
+}
+
+QT_END_NAMESPACE