OSDN Git Service

[UI][Qt] Not liking config, using_flags directly.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 19 Jun 2016 19:13:10 +0000 (04:13 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Sun, 19 Jun 2016 19:13:10 +0000 (04:13 +0900)
51 files changed:
source/src/qt/common/emu_thread.cpp
source/src/qt/common/emu_thread.h
source/src/qt/common/menu_flags.cpp
source/src/qt/common/menu_flags.h
source/src/qt/common/qt_utils.cpp
source/src/qt/common/util_bubble2.cpp
source/src/qt/common/util_fd2.cpp
source/src/qt/common/util_main.cpp
source/src/qt/gui/dropdown_joystick.cpp
source/src/qt/gui/dropdown_joystick.h
source/src/qt/gui/dropdown_jsbutton.cpp
source/src/qt/gui/dropdown_jsbutton.h
source/src/qt/gui/dropdown_jspage.cpp
source/src/qt/gui/dropdown_jspage.h
source/src/qt/gui/emuevents_control.cpp
source/src/qt/gui/joy_thread.cpp
source/src/qt/gui/joy_thread.h
source/src/qt/gui/mainwidget_base.h
source/src/qt/gui/mainwindow_utils.cpp
source/src/qt/gui/menu_cmt.cpp
source/src/qt/gui/menu_control.cpp
source/src/qt/gui/menu_main.cpp
source/src/qt/gui/menu_screen.cpp
source/src/qt/gui/menu_sound.cpp
source/src/qt/gui/qt_glevents.cpp
source/src/qt/gui/qt_glutil_gl2_0.cpp
source/src/qt/gui/qt_glutil_gl3_0.cpp
source/src/qt/gui/qt_input.cpp
source/src/qt/gui/qt_main.cpp
source/src/qt/gui/sound_dialog.cpp
source/src/qt/gui/tab_movie_general.cpp
source/src/qt/gui/tab_movie_h264.cpp
source/src/qt/gui/tab_movie_mpeg4.cpp
source/src/qt/gui/util_binary.cpp
source/src/qt/gui/util_bubble.cpp
source/src/qt/gui/util_cart.cpp
source/src/qt/gui/util_cd.cpp
source/src/qt/gui/util_cmt.cpp
source/src/qt/gui/util_fd.cpp
source/src/qt/gui/util_qd.cpp
source/src/qt/machines/ex80/MainWindow.cpp
source/src/qt/machines/fm7/MainWindow.cpp
source/src/qt/machines/hc20/MainWindow.cpp
source/src/qt/machines/mz3500/MainWindow.cpp
source/src/qt/machines/mz700/MainWindow.cpp
source/src/qt/machines/mz80k/MainWindow.cpp
source/src/qt/machines/pc6001/MainWindow.cpp
source/src/qt/machines/pc8801/MainWindow.cpp
source/src/qt/machines/pc9801/MainWindow.cpp
source/src/qt/machines/qc10/MainWindow.cpp
source/src/qt/machines/x1/MainWindow.cpp

index 9bdd14f..fe0d313 100644 (file)
 #endif
 #define MAX_SKIP_FRAMES 10
 
-//extern USING_FLAGS *using_flags;
-
 EmuThreadClass::EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, USING_FLAGS *p, QObject *parent) : QThread(parent) {
        MainWindow = rootWindow;
        p_emu = pp_emu;
        using_flags = p;
+       p_config = p->get_config_ptr();
        
        bRunThread = true;
        prev_skip = false;
@@ -56,8 +55,10 @@ EmuThreadClass::EmuThreadClass(META_MainWindow *rootWindow, EMU *pp_emu, USING_F
        if(using_flags->get_use_sound_volume() > 0) {
                for(int i = 0; i < using_flags->get_use_sound_volume(); i++) {
                        bUpdateVolumeReq[i] = true;
-                       volume_avg[i] = (config.sound_volume_l[i] + config.sound_volume_r[i]) / 2;
-                       volume_balance[i] = (config.sound_volume_r[i] - config.sound_volume_l[i]) / 2;
+                       volume_avg[i] = (using_flags->get_config_ptr()->sound_volume_l[i] +
+                                                        using_flags->get_config_ptr()->sound_volume_r[i]) / 2;
+                       volume_balance[i] = (using_flags->get_config_ptr()->sound_volume_r[i] -
+                                                                using_flags->get_config_ptr()->sound_volume_l[i]) / 2;
                }
        }
 };
@@ -74,8 +75,8 @@ void EmuThreadClass::calc_volume_from_balance(int num, int balance)
        volume_balance[num] = balance;
        right = level + balance;
        left  = level - balance;
-       config.sound_volume_l[num] = left;      
-       config.sound_volume_r[num] = right;
+       using_flags->get_config_ptr()->sound_volume_l[num] = left;      
+       using_flags->get_config_ptr()->sound_volume_r[num] = right;
 }
 
 void EmuThreadClass::calc_volume_from_level(int num, int level)
@@ -85,8 +86,8 @@ void EmuThreadClass::calc_volume_from_level(int num, int level)
        volume_avg[num] = level;
        right = level + balance;
        left  = level - balance;
-       config.sound_volume_l[num] = left;      
-       config.sound_volume_r[num] = right;
+       using_flags->get_config_ptr()->sound_volume_l[num] = left;      
+       using_flags->get_config_ptr()->sound_volume_r[num] = right;
 }
 
 int EmuThreadClass::get_interval(void)
@@ -1165,10 +1166,10 @@ void EmuThreadClass::doWork(const QString &params)
 #endif
        QString ctext;
        bool req_draw = true;
-       bool vert_line_bak = config.opengl_scanline_vert;
-       bool horiz_line_bak = config.opengl_scanline_horiz;
-       bool gl_crt_filter_bak = config.use_opengl_filters;
-       int opengl_filter_num_bak = config.opengl_filter_num;
+       bool vert_line_bak = using_flags->get_config_ptr()->opengl_scanline_vert;
+       bool horiz_line_bak = using_flags->get_config_ptr()->opengl_scanline_horiz;
+       bool gl_crt_filter_bak = using_flags->get_config_ptr()->use_opengl_filters;
+       int opengl_filter_num_bak = using_flags->get_config_ptr()->opengl_filter_num;
        //uint32_t key_mod_old = 0xffffffff;
        int no_draw_count = 0;  
        bool prevRecordReq;
@@ -1255,14 +1256,14 @@ void EmuThreadClass::doWork(const QString &params)
                        }
 #endif
 #if defined(USE_MINIMUM_RENDERING)
-                       if((vert_line_bak != config.opengl_scanline_vert) ||
-                          (horiz_line_bak != config.opengl_scanline_horiz) ||
-                          (gl_crt_filter_bak != config.use_opengl_filters) ||
-                          (opengl_filter_num_bak != config.opengl_filter_num)) req_draw = true;
-                       vert_line_bak = config.opengl_scanline_vert;
-                       horiz_line_bak = config.opengl_scanline_horiz;
-                       gl_crt_filter_bak = config.use_opengl_filters;
-                       opengl_filter_num_bak = config.opengl_filter_num;
+                       if((vert_line_bak != p_config->opengl_scanline_vert) ||
+                          (horiz_line_bak != p_config->opengl_scanline_horiz) ||
+                          (gl_crt_filter_bak != p_config->use_opengl_filters) ||
+                          (opengl_filter_num_bak != p_config->opengl_filter_num)) req_draw = true;
+                       vert_line_bak = p_config->opengl_scanline_vert;
+                       horiz_line_bak = p_config->opengl_scanline_horiz;
+                       gl_crt_filter_bak = p_config->use_opengl_filters;
+                       opengl_filter_num_bak = p_config->opengl_filter_num;
 #endif
                        if(bStartRecordSoundReq != false) {
                                p_emu->start_record_sound();
@@ -1300,7 +1301,7 @@ void EmuThreadClass::doWork(const QString &params)
 #if defined(USE_SOUND_VOLUME)
                        for(int ii = 0; ii < USE_SOUND_VOLUME; ii++) {
                                if(bUpdateVolumeReq[ii]) {
-                                       p_emu->set_sound_device_volume(ii, config.sound_volume_l[ii], config.sound_volume_r[ii]);
+                                       p_emu->set_sound_device_volume(ii, p_config->sound_volume_l[ii], p_config->sound_volume_r[ii]);
                                        bUpdateVolumeReq[ii] = false;
                                }
                        }
index f20db11..55cd93c 100644 (file)
@@ -21,6 +21,7 @@
 #include "menuclasses.h"
 #include "mainwidget.h"
 #include "commonclasses.h"
+#include "config.h"
 
 class META_MainWindow;
 class EMU;
@@ -57,6 +58,8 @@ private:
  protected:
        EMU *p_emu;
        USING_FLAGS *using_flags;
+       config_t *p_config;
+       
        QWaitCondition *drawCond;
        class META_MainWindow *MainWindow;
        QElapsedTimer tick_timer;
index 37d45d7..8cffe2a 100644 (file)
@@ -9,7 +9,7 @@ static const _TCHAR *sound_device_caption[] = {""};
 static const _TCHAR *joy_button_captions[] = {""};
 #endif
 
-USING_FLAGS::USING_FLAGS()
+USING_FLAGS::USING_FLAGS(config_t *cfg)
 {
        use_access_lamp = use_alt_f10_key = false;
        use_auto_key = use_auto_key_us = use_auto_key_caps = false;
@@ -447,6 +447,8 @@ USING_FLAGS::USING_FLAGS()
 #if defined(USE_STATE)
        use_state = true;
 #endif   
+
+       p_config = cfg;
 }
 
 USING_FLAGS::~USING_FLAGS()
@@ -498,3 +500,8 @@ OSD *USING_FLAGS::get_osd(void)
 {
        return p_osd;
 }
+
+config_t *USING_FLAGS::get_config_ptr(void)
+{
+       return p_config;
+}
index bdd17df..4ef4692 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <QString>
 #include "common.h"
+#include "config.h"
+
 #ifndef _SCREEN_MODE_NUM
 #define _SCREEN_MODE_NUM 32
 #endif
@@ -145,8 +147,9 @@ private:
 
        EMU *p_emu;
        OSD *p_osd;
+       config_t *p_config;
 public:
-       USING_FLAGS();
+       USING_FLAGS(config_t *cfg);
        ~USING_FLAGS();
        QString get_config_name() { return config_name; }
        QString get_device_name() { return device_name; }
@@ -274,6 +277,7 @@ public:
        EMU *get_emu(void);
        void set_osd(OSD *p);
        OSD *get_osd(void);
+       config_t *get_config_ptr(void);
 };
        
 
index a17abee..e8fb23a 100644 (file)
@@ -104,7 +104,7 @@ void Ui_MainWindow::do_toggle_mouse(void)
 
 void Object_Menu_Control::do_save_as_movie(void)
 {
-       int fps = config.video_frame_rate;
+       int fps = using_flags->get_config_ptr()->video_frame_rate;
        emit sig_start_record_movie(fps);
 }
 
@@ -316,7 +316,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
        hDrawEmu->start();
        AGAR_DebugLog(AGAR_LOG_DEBUG, "DrawThread : Launch done.");
 
-       hSaveMovieThread = new MOVIE_SAVER(640, 400,  30, emu->get_osd());
+       hSaveMovieThread = new MOVIE_SAVER(640, 400,  30, emu->get_osd(), using_flags->get_config_ptr());
        
        connect(actionStart_Record_Movie->binds, SIGNAL(sig_start_record_movie(int)), hRunEmu, SLOT(doStartRecordVideo(int)));
        connect(this, SIGNAL(sig_start_saving_movie()),
@@ -330,7 +330,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
        connect(emu->get_osd(), SIGNAL(sig_save_as_movie(QString, int, int)),
                        hSaveMovieThread, SLOT(do_open(QString, int, int)));
        connect(emu->get_osd(), SIGNAL(sig_stop_saving_movie()), hSaveMovieThread, SLOT(do_close()));
-
+       
        actionStop_Record_Movie->setIcon(QIcon(":/icon_process_stop.png"));
        actionStop_Record_Movie->setVisible(false);
        
@@ -355,7 +355,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
 
        hRunEmu->start();
        AGAR_DebugLog(AGAR_LOG_DEBUG, "EmuThread : Launch done.");
-       this->set_screen_aspect(config.window_stretch_type);
+       this->set_screen_aspect(using_flags->get_config_ptr()->window_stretch_type);
        emit sig_movie_set_width(SCREEN_WIDTH);
        emit sig_movie_set_height(SCREEN_HEIGHT);
 }
@@ -363,7 +363,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
 void Ui_MainWindow::LaunchJoyThread(void)
 {
 #if defined(USE_JOYSTICK)
-       hRunJoy = new JoyThreadClass(emu, emu->get_osd(), using_flags);
+       hRunJoy = new JoyThreadClass(emu, emu->get_osd(), using_flags, using_flags->get_config_ptr());
        connect(this, SIGNAL(quit_joy_thread()), hRunJoy, SLOT(doExit()));
        hRunJoy->setObjectName("JoyThread");
        hRunJoy->start();
@@ -565,7 +565,7 @@ static void setup_logs(void)
 #endif
 }
 
-int MainLoop(int argc, char *argv[])
+int MainLoop(int argc, char *argv[], config_t *cfg)
 {
        char c;
        char strbuf[2048];
@@ -590,7 +590,7 @@ int MainLoop(int argc, char *argv[])
 
        load_config(create_local_path(_T("%s.ini"), _T(CONFIG_NAME)));
        
-       USING_FLAGS *using_flags = new USING_FLAGS;
+       USING_FLAGS *using_flags = new USING_FLAGS(cfg);
        rMainWindow = new META_MainWindow(using_flags);
        rMainWindow->connect(rMainWindow, SIGNAL(sig_quit_all(void)), rMainWindow, SLOT(deleteLater(void)));
        rMainWindow->setCoreApplication(GuiMain);
index 22da7fa..8a1f8b7 100644 (file)
@@ -47,7 +47,7 @@ void Ui_MainWindow::do_update_recent_bubble(int drv)
        int i;
        if(emu == NULL) return;
        menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-       menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
+       menu_bubbles[drv]->do_set_initialize_directory(p_config->initial_bubble_casette_dir);
        if(emu->is_bubble_casette_protected(drv)) {
                menu_bubbles[drv]->do_write_protect_media();
        } else {
@@ -62,20 +62,20 @@ int Ui_MainWindow::set_recent_bubble(int drv, int num)
        char path_shadow[PATH_MAX];
        int i;
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       s_path = QString::fromLocal8Bit(config.recent_bubble_casette_path[drv][num]);
+       s_path = QString::fromLocal8Bit(p_config->recent_bubble_casette_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_bubble_casette_path[drv], listBubbles[drv]);
+       UPDATE_HISTORY(path_shadow, p_config->recent_bubble_casette_path[drv], listBubbles[drv]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
    
        get_parent_dir(path_shadow);
-       strcpy(config.initial_bubble_casette_dir, path_shadow);
+       strcpy(p_config->initial_bubble_casette_dir, path_shadow);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
 
        if(emu) {
                emit sig_close_bubble(drv);
                emit sig_open_bubble(drv, s_path, 0);
                menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-               menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(p_config->initial_bubble_casette_dir);
                if(check_file_extension(path_shadow, ".b77")) {
                        UPDATE_B77_LIST(drv, listB77[drv]);
                        menu_bubbles[drv]->do_update_inner_media_bubble(listB77[drv], 0);
@@ -94,9 +94,9 @@ void Ui_MainWindow::_open_bubble(int drv, const QString fname)
        if(fname.length() <= 0) return;
        drv = drv & 7;
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_bubble_casette_path[drv], listBubbles[drv]);
+       UPDATE_HISTORY(path_shadow, p_config->recent_bubble_casette_path[drv], listBubbles[drv]);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_bubble_casette_dir, path_shadow);
+       strcpy(p_config->initial_bubble_casette_dir, path_shadow);
        // Update List
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
        if(emu) {
@@ -104,7 +104,7 @@ void Ui_MainWindow::_open_bubble(int drv, const QString fname)
                //emu->LockVM();
                emit sig_open_bubble(drv, fname, 0);
                menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-               menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(p_config->initial_bubble_casette_dir);
                if(check_file_extension(path_shadow, ".b77")) {
                        UPDATE_B77_LIST(drv, listB77[drv]);
                        menu_bubbles[drv]->do_update_inner_media_bubble(listB77[drv], 0);
index a67f4d1..37d763b 100644 (file)
@@ -50,7 +50,7 @@ void Ui_MainWindow::do_update_recent_disk(int drv)
        int i;
        if(emu == NULL) return;
        menu_fds[drv]->do_update_histories(listFDs[drv]);
-       menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+       menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
        if(emu->is_floppy_disk_protected(drv)) {
                menu_fds[drv]->do_write_protect_media();
        } else {
@@ -65,20 +65,20 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
        char path_shadow[PATH_MAX];
        int i;
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       s_path = QString::fromLocal8Bit(config.recent_floppy_disk_path[drv][num]);
+       s_path = QString::fromLocal8Bit(p_config->recent_floppy_disk_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_floppy_disk_path[drv], listFDs[drv]);
+       UPDATE_HISTORY(path_shadow, p_config->recent_floppy_disk_path[drv], listFDs[drv]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
    
        get_parent_dir(path_shadow);
-       strcpy(config.initial_floppy_disk_dir, path_shadow);
+       strcpy(p_config->initial_floppy_disk_dir, path_shadow);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
 
        if(emu) {
                emit sig_close_disk(drv);
                emit sig_open_disk(drv, s_path, 0);
                menu_fds[drv]->do_update_histories(listFDs[drv]);
-               menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
                if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
                        UPDATE_D88_LIST(drv, listD88[drv]);
                        menu_fds[drv]->do_update_inner_media(listD88[drv], 0);
@@ -93,7 +93,7 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
                                        emit sig_close_disk(drv2);
                                        emit sig_open_disk(drv2, s_path, 1);
                                        menu_fds[drv2]->do_update_histories(listFDs[drv2]);
-                                       menu_fds[drv2]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+                                       menu_fds[drv2]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
                                        UPDATE_D88_LIST(drv2, listD88[drv2]);
                                        menu_fds[drv2]->do_update_inner_media(listD88[drv2], 1);
                                }
@@ -111,9 +111,9 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
        if(fname.length() <= 0) return;
        drv = drv & 7;
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_floppy_disk_path[drv], listFDs[drv]);
+       UPDATE_HISTORY(path_shadow, p_config->recent_floppy_disk_path[drv], listFDs[drv]);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_floppy_disk_dir, path_shadow);
+       strcpy(p_config->initial_floppy_disk_dir, path_shadow);
        // Update List
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
        if(emu) {
@@ -121,7 +121,7 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
                //emu->LockVM();
                emit sig_open_disk(drv, fname, 0);
                menu_fds[drv]->do_update_histories(listFDs[drv]);
-               menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
                if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
                        UPDATE_D88_LIST(drv, listD88[drv]);
                        menu_fds[drv]->do_update_inner_media(listD88[drv], 0);
@@ -138,7 +138,7 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
                                strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
                                emit sig_open_disk(drv2, fname, 1);
                                menu_fds[drv2]->do_update_histories(listFDs[drv2]);
-                               menu_fds[drv2]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+                               menu_fds[drv2]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
                                UPDATE_D88_LIST(drv2, listD88[drv2]);
                                menu_fds[drv2]->do_update_inner_media(listD88[drv2], 1);
                        }
index 79a7eb5..ea66fa6 100644 (file)
@@ -56,7 +56,7 @@ void Ui_MainWindow::set_window(int mode)
                dest_x = (dest_x < 0) ? 0 : dest_x;
                dest_y = (dest_y < 0) ? 0 : dest_y;
                
-               config.window_mode = prev_window_mode = mode;
+               p_config->window_mode = prev_window_mode = mode;
                
                // set screen size to emu class
                emit sig_emu_set_display_size(width, height, width, height);
@@ -76,7 +76,7 @@ void Ui_MainWindow::set_window(int mode)
                        height = (int)(nd * (double)using_flags->get_screen_height());
 
                        if(using_flags->is_use_screen_rotate()) {
-                               if(config.rotate_type) {
+                               if(p_config->rotate_type) {
                                        int tmp_w = width;
                                        width = height;
                                        height = tmp_w;
@@ -84,7 +84,7 @@ void Ui_MainWindow::set_window(int mode)
                        }
 
                }
-               config.window_mode = mode;
+               p_config->window_mode = mode;
                emit sig_emu_set_display_size(using_flags->get_screen_width(), using_flags->get_screen_height(), width, height);
                //emit sig_resize_screen(width, height);
                this->resize_statusbar(width, height);
index d64edfa..a739f1a 100644 (file)
 #include "dropdown_jspage.h"
 #include "dropdown_joystick.h"
 
-CSP_DropDownJoysticks::CSP_DropDownJoysticks(QWidget *parent, QStringList *lst, USING_FLAGS *using_flags) : QWidget(parent)
+CSP_DropDownJoysticks::CSP_DropDownJoysticks(QWidget *parent, QStringList *lst, USING_FLAGS *p) : QWidget(parent)
 {
        p_wid = parent;
-
+       using_flags = p;
+       
        layout = new QHBoxLayout(this);
        int i;
 
@@ -45,7 +46,7 @@ void CSP_DropDownJoysticks::do_set_js_button(int jsnum, int button_num, int assi
        if((button_num < 0) || (button_num >= 16)) return;
        if((jsnum < 0) || (jsnum >= 4)) return;
        //printf("Select: %d %d %d\n", jsnum, button_num, assigned_value);
-       config.joy_buttons[jsnum][button_num] = assigned_value;
+       using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] = assigned_value;
 }
 
 void CSP_DropDownJoysticks::do_set_js_button_idx(int jsnum, int button_num, int assigned_value)
@@ -53,6 +54,6 @@ void CSP_DropDownJoysticks::do_set_js_button_idx(int jsnum, int button_num, int
        if((button_num < 0) || (button_num >= 16)) return;
        if((jsnum < 0) || (jsnum >= 4)) return;
        //printf("Select_Idx: %d %d %d\n", jsnum, button_num, assigned_value);
-       config.joy_buttons[jsnum][button_num] = assigned_value;
+       using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] = assigned_value;
 }
 
index 253d19f..41ab7ad 100644 (file)
@@ -26,11 +26,12 @@ protected:
        QWidget *p_wid;
        QWidget *window;
        QHBoxLayout *layout;
-
+       USING_FLAGS *using_flags;
+       
        QTabWidget *tabBox;
        CSP_DropDownJSPage *pages[4];
 public:
-       CSP_DropDownJoysticks(QWidget *parent, QStringList *lst, USING_FLAGS *using_flags);
+       CSP_DropDownJoysticks(QWidget *parent, QStringList *lst, USING_FLAGS *p);
        ~CSP_DropDownJoysticks();
 
 public slots:
index 6fbac3c..4d919af 100644 (file)
@@ -9,11 +9,12 @@
 
 #include "dropdown_keyset.h"
 #include "dropdown_jsbutton.h"
+#include "menu_flags.h"
 
-
-CSP_DropDownJSButton::CSP_DropDownJSButton(QWidget *parent, QStringList *lst, int jsnum, int button_num) : QWidget(parent)
+CSP_DropDownJSButton::CSP_DropDownJSButton(USING_FLAGS *p, QWidget *parent, QStringList *lst, int jsnum, int button_num) : QWidget(parent)
 {
        p_wid = parent;
+       using_flags = p;
        bind_jsnum = jsnum;
        bind_button = button_num;
        layout = new QHBoxLayout(this);
@@ -30,10 +31,10 @@ CSP_DropDownJSButton::CSP_DropDownJSButton(QWidget *parent, QStringList *lst, in
        }
        if((button_num < 16) && (button_num >= 0)) {
                if((jsnum < 4) && (jsnum >= 0)){
-                       if((config.joy_buttons[jsnum][button_num] < 0) && (config.joy_buttons[jsnum][button_num] > -256)) {
-                               combo->setCurrentIndex(-config.joy_buttons[jsnum][button_num] + 16);
-                       } else if((config.joy_buttons[jsnum][button_num] >= 0) && (config.joy_buttons[jsnum][button_num] < 16)) {
-                               combo->setCurrentIndex(config.joy_buttons[jsnum][button_num]);
+                       if((using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] < 0) && (using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] > -256)) {
+                               combo->setCurrentIndex(-using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] + 16);
+                       } else if((using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] >= 0) && (using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] < 16)) {
+                               combo->setCurrentIndex(using_flags->get_config_ptr()->joy_buttons[jsnum][button_num]);
                        }
                }
        }
index 8a1b456..9406d7b 100644 (file)
@@ -16,6 +16,8 @@
 
 #include "dropdown_keytables.h"
 
+class USING_FLAGS;
+
 class DLL_PREFIX CSP_DropDownJSButton: public QWidget {
        Q_OBJECT;
 protected:
@@ -25,8 +27,9 @@ protected:
        
        int bind_button;
        int bind_jsnum;
+       USING_FLAGS *using_flags;
 public:
-       CSP_DropDownJSButton(QWidget *parent = 0, QStringList *lst = 0, int jsnum = 0, int button_num = 0);
+       CSP_DropDownJSButton(USING_FLAGS *p, QWidget *parent = 0, QStringList *lst = 0, int jsnum = 0, int button_num = 0);
        ~CSP_DropDownJSButton();
 public slots:
        void do_select(int index);
index 40dd248..f3c3358 100644 (file)
@@ -7,7 +7,7 @@
 
 //extern USING_FLAGS *using_flags;
 
-CSP_DropDownJSPage::CSP_DropDownJSPage(USING_FLAGS *using_flags, QWidget *parent, QStringList *lst, int jsnum)
+CSP_DropDownJSPage::CSP_DropDownJSPage(USING_FLAGS *pp, QWidget *parent, QStringList *lst, int jsnum)
 {
        int i;
        QString nm;
@@ -15,10 +15,10 @@ CSP_DropDownJSPage::CSP_DropDownJSPage(USING_FLAGS *using_flags, QWidget *parent
        p_wid = parent;
        layout = new QGridLayout(this);
        bind_jsnum = jsnum;
-       
+       using_flags = pp;
        for(i = 0; i < 4; i++) {
                //label[i] = new QLabel(this);
-               combo_js[i] = new CSP_DropDownJSButton(this, lst, jsnum, i);
+               combo_js[i] = new CSP_DropDownJSButton(pp, this, lst, jsnum, i);
        }
        label_axis = new QLabel(QApplication::translate("MainWindow", "<B>Physical Axis:</B>", 0), this);
        layout->addWidget(label_axis, 0, 0, Qt::AlignLeft);
@@ -40,7 +40,7 @@ CSP_DropDownJSPage::CSP_DropDownJSPage(USING_FLAGS *using_flags, QWidget *parent
                if(joybuttons > i) {
                        memset(tmps, 0x00, sizeof(char) * 20);
                        label_button[i] = new QLabel(this);
-                       js_button[i] = new CSP_DropDownJSButton(this, lst, jsnum, i + 4);
+                       js_button[i] = new CSP_DropDownJSButton(pp, this, lst, jsnum, i + 4);
                        if(using_flags->is_use_joy_button_captions()) {
                                snprintf(tmps, 32, "<B>%s</B>", using_flags->get_joy_button_captions(i + 4));
                        } else {
index 47008f3..9e327d1 100644 (file)
@@ -17,7 +17,6 @@
 
 #include "dropdown_jsbutton.h"
 
-
 QT_BEGIN_NAMESPACE
 class USING_FLAGS;
 
@@ -35,8 +34,9 @@ protected:
        CSP_DropDownJSButton *js_button[12];
        QLabel *label_button[12];
        int bind_jsnum;
+       USING_FLAGS *using_flags;
 public:
-       CSP_DropDownJSPage(USING_FLAGS *p, QWidget *parent = 0, QStringList *lst = 0, int jsnum = 0);
+       CSP_DropDownJSPage(USING_FLAGS *pp, QWidget *parent = 0, QStringList *lst = 0, int jsnum = 0);
        ~CSP_DropDownJSPage();
 
 public slots:
index 908208e..0171144 100644 (file)
@@ -31,7 +31,7 @@ void Ui_MainWindowBase::OnSaveState(void)
 
 void Ui_MainWindowBase::OnCpuPower(int mode)
 {
-       config.cpu_power = mode;
+       using_flags->get_config_ptr()->cpu_power = mode;
        emit sig_emu_update_config();
 }
 
index 3bce14e..f1162a0 100644 (file)
 
 #include "joy_thread.h"
 
-JoyThreadClass::JoyThreadClass(EMU *p, OSD *o, USING_FLAGS *pflags, QObject *parent) : QThread(parent)
+JoyThreadClass::JoyThreadClass(EMU *p, OSD *o, USING_FLAGS *pflags, config_t *cfg, QObject *parent) : QThread(parent)
 {
        int i, j;
        int n;
        p_emu = p;
        p_osd = o;
-
+       p_config = cfg;
        using_flags = pflags;
+       
        if(using_flags->is_use_joystick()) {
 # if defined(USE_SDL2)
                for(i = 0; i < 16; i++) {
@@ -96,7 +97,7 @@ void JoyThreadClass::joystick_plugged(int num)
                if(controller_table[num] != NULL) {
                        names[num] = QString::fromUtf8(SDL_GameControllerNameForIndex(num));
                        AGAR_DebugLog(AGAR_LOG_DEBUG, "JoyThread : Controller %d : %s : is plugged.", num, names[num].toUtf8().constData());
-                       strncpy(config.assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
+                       strncpy(p_config->assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
                        joy_num[num] = num;
                }
        } else 
@@ -111,7 +112,7 @@ void JoyThreadClass::joystick_plugged(int num)
                                        joy_num[i] = SDL_JoystickInstanceID(joyhandle[i]);
                                        names[i] = QString::fromUtf8(SDL_JoystickNameForIndex(num));
                                        AGAR_DebugLog(AGAR_LOG_DEBUG, "JoyThread : Joystick %d : %s : is plugged.", num, names[i].toUtf8().data());
-                                       strncpy(config.assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
+                                       strncpy(p_config->assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
                                        break;
                                }
                        }
@@ -144,7 +145,7 @@ void JoyThreadClass::joystick_unplugged(int num)
                }
        }
        names[num] = QString::fromUtf8("");
-       memset(config.assigned_joystick_name[num], 0x00, 255);
+       memset(p_config->assigned_joystick_name[num], 0x00, 255);
 }      
 
 void JoyThreadClass::x_axis_changed(int index, int value)
index 2dd6dd9..5fcb18f 100644 (file)
@@ -13,6 +13,7 @@
 #include <QThread>
 #include <SDL.h>
 #include "common.h"
+#include "config.h"
 
 class EMU;
 class OSD;
@@ -34,6 +35,7 @@ class DLL_PREFIX JoyThreadClass : public QThread {
        EMU *p_emu;
        OSD *p_osd;
        USING_FLAGS *using_flags;
+       config_t *p_config;
  protected:
        bool bRunThread;
        void joystick_plugged(int num);
@@ -48,7 +50,7 @@ class DLL_PREFIX JoyThreadClass : public QThread {
        int get_joyid_from_instanceID(SDL_JoystickID id);
 # endif
  public:
-       JoyThreadClass(EMU *p, OSD *o, USING_FLAGS *pflags, QObject *parent = 0);
+       JoyThreadClass(EMU *p, OSD *o, USING_FLAGS *pflags, config_t *cfg, QObject *parent = 0);
        ~JoyThreadClass();
        void run() { doWork("");}
        void SetEmu(EMU *p) {
index 9650546..513aa72 100644 (file)
@@ -43,6 +43,7 @@
 #include "simd_types.h"
 #include "common.h"
 #include "config.h"
+#include "menu_flags.h"
 //#include "emu.h"
 //#include "vm.h"
 
@@ -73,16 +74,15 @@ class Menu_QDClass;
 class Menu_BinaryClass;
 class Menu_BubbleClass;
 class Menu_CompactDiscClass;
-class USING_FLAGS;
 class MOVIE_SAVER;
 
-//extern       USING_FLAGS *using_flags;
 
 class DLL_PREFIX Ui_MainWindowBase : public QMainWindow
 {
        Q_OBJECT
  protected:
        USING_FLAGS *using_flags;
+       config_t *p_config;
        QMainWindow *MainWindow;
        QApplication *CoreApplication;
        
@@ -566,14 +566,14 @@ public slots:
        void set_dipsw(int num, bool flag) {
                if((num < 0) || (num >= 32)) return;
                if(flag) {
-                       config.dipswitch = config.dipswitch | (1 << num);
+                       using_flags->get_config_ptr()->dipswitch = using_flags->get_config_ptr()->dipswitch | (1 << num);
                } else {
-                       config.dipswitch = config.dipswitch & ~(1 << num);
+                       using_flags->get_config_ptr()->dipswitch = using_flags->get_config_ptr()->dipswitch & ~(1 << num);
                }
        }
        bool get_dipsw(int num) {
                if((num < 0) || (num >= 32)) return false;
-               if(((1 << num) & config.dipswitch) == 0) return false;
+               if(((1 << num) & using_flags->get_config_ptr()->dipswitch) == 0) return false;
                return true;
        }
        void set_printer_device(int);
index 6a03e6d..fde9e7c 100644 (file)
@@ -21,21 +21,21 @@ extern const double s_late_table[];
 void Ui_MainWindowBase::set_latency(int num)
 {
        if((num < 0) || (num >= 8)) return;
-       config.sound_latency = num;
+       using_flags->get_config_ptr()->sound_latency = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_freq(int num)
 {
        if((num < 0) || (num >= 16)) return;
-       config.sound_frequency = num;
+       using_flags->get_config_ptr()->sound_frequency = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_sound_device(int num)
 {
        if((num < 0) || (num >= using_flags->get_use_sound_device_type())) return;
-       config.sound_device_type = num;
+       using_flags->get_config_ptr()->sound_device_type = num;
        emit sig_emu_update_config();
 }
 
@@ -57,57 +57,57 @@ void Ui_MainWindowBase::start_record_sound(bool start)
 void Ui_MainWindowBase::set_monitor_type(int num)
 {
        if((num < 0) || (num >= using_flags->get_use_monitor_type())) return;
-       config.monitor_type = num;
+       using_flags->get_config_ptr()->monitor_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_scan_line(bool flag)
 {
        if(flag) {
-               config.scan_line = ~0;
+               using_flags->get_config_ptr()->scan_line = ~0;
        } else {
-               config.scan_line = 0;
+               using_flags->get_config_ptr()->scan_line = 0;
        }
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_screen_rotate(bool flag)
 {
-       config.rotate_type = flag;
-       if(config.window_mode >= using_flags->get_screen_mode_num()) config.window_mode = using_flags->get_screen_mode_num() - 1;
-       if(config.window_mode < 0) config.window_mode = 0;
-       if(actionScreenSize[config.window_mode] != NULL) {
-               actionScreenSize[config.window_mode]->binds->set_screen_size();
+       using_flags->get_config_ptr()->rotate_type = flag;
+       if(using_flags->get_config_ptr()->window_mode >= using_flags->get_screen_mode_num()) using_flags->get_config_ptr()->window_mode = using_flags->get_screen_mode_num() - 1;
+       if(using_flags->get_config_ptr()->window_mode < 0) using_flags->get_config_ptr()->window_mode = 0;
+       if(actionScreenSize[using_flags->get_config_ptr()->window_mode] != NULL) {
+               actionScreenSize[using_flags->get_config_ptr()->window_mode]->binds->set_screen_size();
        }
 }
 
 void Ui_MainWindowBase::set_crt_filter(bool flag)
 {
-       config.crt_filter = flag;
+       using_flags->get_config_ptr()->crt_filter = flag;
 }
 
 void Ui_MainWindowBase::set_gl_crt_filter(bool flag)
 {
-       config.use_opengl_filters = flag;
+       using_flags->get_config_ptr()->use_opengl_filters = flag;
 }
 
 void Ui_MainWindowBase::set_cmt_sound(bool flag)
 {
-       config.tape_sound = flag;
+       using_flags->get_config_ptr()->tape_sound = flag;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_device_type(int num)
 {
        if((num >= using_flags->get_use_device_type()) && (num < 0)) return;
-       config.device_type = num;
+       using_flags->get_config_ptr()->device_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_drive_type(int num)
 {
        if((num >= using_flags->get_use_drive_type()) && (num < 0)) return;
-       config.drive_type = num;
+       using_flags->get_config_ptr()->drive_type = num;
        emit sig_emu_update_config();
 }
    
@@ -116,7 +116,7 @@ void Ui_MainWindowBase::set_screen_size(int w, int h)
 {
        if((w <= 0) || (h <= 0)) return;
        if(using_flags->is_use_screen_rotate()) {
-               if(config.rotate_type) {
+               if(using_flags->get_config_ptr()->rotate_type) {
                        this->graphicsView->setFixedSize(h, w);
                        this->resize_statusbar(h, w);
                } else {
@@ -140,12 +140,12 @@ void Ui_MainWindowBase::set_screen_aspect(int num)
        // 2 = ASPECT(SCale Y)
        // 3 = ASPECT(Scale X,Y)
        
-       config.window_stretch_type = num;
+       using_flags->get_config_ptr()->window_stretch_type = num;
        
        if(emu) {
                int w, h, n;
                double nd, ww, hh;
-               n = config.window_mode;
+               n = using_flags->get_config_ptr()->window_mode;
                if(n < 0) n = 1;
                nd = actionScreenSize[n]->binds->getDoubleValue();
                ww = nd * (double)using_flags->get_screen_width();
@@ -156,11 +156,11 @@ void Ui_MainWindowBase::set_screen_aspect(int num)
                        double par_w = (double)using_flags->get_screen_width_aspect() / (double)using_flags->get_screen_width();
                        double par_h = (double)using_flags->get_screen_height_aspect() / (double)using_flags->get_screen_height();
                        double par = par_h / par_w;
-                       if(config.window_stretch_type == 1) { // refer to X, scale Y.
+                       if(using_flags->get_config_ptr()->window_stretch_type == 1) { // refer to X, scale Y.
                                hh = hh * par_h;
-                       } else if(config.window_stretch_type == 2) { // refer to Y, scale X only
+                       } else if(using_flags->get_config_ptr()->window_stretch_type == 2) { // refer to Y, scale X only
                                ww = ww / par_h;
-                       } else if(config.window_stretch_type == 3) { // Scale both X, Y
+                       } else if(using_flags->get_config_ptr()->window_stretch_type == 3) { // Scale both X, Y
                                ww = ww * par_w;
                                hh = hh * par_h;
                        }
@@ -188,7 +188,7 @@ void Ui_MainWindowBase::ConfigDeviceType(void)
                        actionDeviceType[ii]->setCheckable(true);
                        actionDeviceType[ii]->setVisible(true);
                        actionDeviceType[ii]->binds->setValue1(ii);
-                       if(config.device_type == ii) actionDeviceType[ii]->setChecked(true);
+                       if(using_flags->get_config_ptr()->device_type == ii) actionDeviceType[ii]->setChecked(true);
                        menuDeviceType->addAction(actionDeviceType[ii]);
                        connect(actionDeviceType[ii], SIGNAL(triggered()),
                                actionDeviceType[ii]->binds, SLOT(do_set_device_type()));
@@ -214,7 +214,7 @@ void Ui_MainWindowBase::ConfigDriveType(void)
                        actionDriveType[i]->setCheckable(true);
                        actionDriveType[i]->setVisible(true);
                        actionDriveType[i]->binds->setValue1(i);
-                       if(i == config.drive_type) actionDriveType[i]->setChecked(true); // Need to write configure
+                       if(i == using_flags->get_config_ptr()->drive_type) actionDriveType[i]->setChecked(true); // Need to write configure
                        actionGroup_DriveType->addAction(actionDriveType[i]);
                        menuDriveType->addAction(actionDriveType[i]);
                        connect(actionDriveType[i], SIGNAL(triggered()),
@@ -241,7 +241,7 @@ void Ui_MainWindowBase::ConfigSoundDeviceType(void)
                        actionSoundDevice[i] = new Action_Control(this, using_flags);
                        actionSoundDevice[i]->setCheckable(true);
                        actionSoundDevice[i]->binds->setValue1(i);
-                       if(i == config.sound_device_type) actionSoundDevice[i]->setChecked(true); // Need to write configure
+                       if(i == using_flags->get_config_ptr()->sound_device_type) actionSoundDevice[i]->setChecked(true); // Need to write configure
                        tmps = QString::fromUtf8("actionSoundDevice_");
                        actionSoundDevice[i]->setObjectName(tmps + QString::number(i));
                        menuSoundDevice->addAction(actionSoundDevice[i]);
@@ -272,7 +272,7 @@ void Ui_MainWindowBase::ConfigPrinterType(void)
                        actionPrintDevice[i] = new Action_Control(this, using_flags);
                        actionPrintDevice[i]->setCheckable(true);
                        actionPrintDevice[i]->binds->setValue1(i);
-                       if(i == config.printer_device_type) actionPrintDevice[i]->setChecked(true); // Need to write configure
+                       if(i == using_flags->get_config_ptr()->printer_device_type) actionPrintDevice[i]->setChecked(true); // Need to write configure
                        tmps = QString::fromUtf8("actionPrintDevice_");
                        actionPrintDevice[i]->setObjectName(tmps + QString::number(i));
                        menuPrintDevice->addAction(actionPrintDevice[i]);
@@ -296,6 +296,6 @@ void Ui_MainWindowBase::set_printer_device(int p_type)
        } else {
                if(p_type >= 2) p_type = 1;
        }
-       config.printer_device_type = p_type;
+       using_flags->get_config_ptr()->printer_device_type = p_type;
        emit sig_emu_update_config();
 }
index abcddc8..c2745f4 100644 (file)
@@ -50,13 +50,13 @@ void Menu_CMTClass::create_pulldown_menu_device_sub(void)
        action_recording->setVisible(true);
        action_recording->setCheckable(false);
 
-       if(config.wave_shaper == 0) {
+       if(using_flags->get_config_ptr()->wave_shaper == 0) {
                action_wave_shaper->setChecked(false);
        } else {
                action_wave_shaper->setChecked(true);
        }
        if(using_flags->is_machine_cmt_mz_series()) {
-               if(config.direct_load_mzt == 0) {
+               if(using_flags->get_config_ptr()->direct_load_mzt == 0) {
                        action_direct_load_mzt->setChecked(false);
                } else {
                        action_direct_load_mzt->setChecked(true);
index 86975e3..dd06681 100644 (file)
@@ -88,7 +88,7 @@ void Ui_MainWindowBase::ConfigCpuSpeed(void)
 void Ui_MainWindowBase::do_change_boot_mode(int mode)
 {
        if((mode < 0) || (mode >= 8)) return;
-       config.boot_mode = mode;
+       using_flags->get_config_ptr()->boot_mode = mode;
        emit sig_emu_update_config();
 }
 
@@ -109,7 +109,7 @@ void Ui_MainWindowBase::ConfigCPUBootMode(int num)
                tmps = QString::fromUtf8("actionBootMode_") + tmps;
                actionBootMode[i]->setObjectName(tmps);
                actionBootMode[i]->setCheckable(true);
-               if(i == config.boot_mode) actionBootMode[i]->setChecked(true);
+               if(i == using_flags->get_config_ptr()->boot_mode) actionBootMode[i]->setChecked(true);
                actionBootMode[i]->binds->setValue1(i);
                menuBootMode->addAction(actionBootMode[i]);
                actionGroup_BootMode->addAction(actionBootMode[i]);
@@ -121,7 +121,7 @@ void Ui_MainWindowBase::ConfigCPUBootMode(int num)
 void Ui_MainWindowBase::do_change_cpu_type(int mode)
 {
        if((mode < 0) || (mode >= 8)) return;
-       config.cpu_type = mode;
+       using_flags->get_config_ptr()->cpu_type = mode;
        emit sig_emu_update_config();
 }
 
@@ -140,7 +140,7 @@ void Ui_MainWindowBase::ConfigCPUTypes(int num)
                tmps = QString::fromUtf8("actionCpuType_") + tmps;
                actionCpuType[i]->setObjectName(tmps);
                actionCpuType[i]->setCheckable(true);
-               if(i == config.cpu_type) actionCpuType[i]->setChecked(true);
+               if(i == using_flags->get_config_ptr()->cpu_type) actionCpuType[i]->setChecked(true);
                actionCpuType[i]->binds->setValue1(i);
                menuCpuType->addAction(actionCpuType[i]);
                actionGroup_CpuType->addAction(actionCpuType[i]);
@@ -325,6 +325,6 @@ void Ui_MainWindowBase::retranslateControlMenu(const char *SpecialResetTitle,  b
 void Ui_MainWindowBase::do_set_sound_device(int num)
 {
        if((num < 0) || (num >= using_flags->get_use_sound_device_type())) return;
-       config.sound_device_type = num;
+       using_flags->get_config_ptr()->sound_device_type = num;
        emit sig_emu_update_config();
 }
index bd8ec79..6f021ae 100644 (file)
@@ -38,6 +38,7 @@ extern EMU *emu;
 Ui_MainWindowBase::Ui_MainWindowBase(USING_FLAGS *p, QWidget *parent) : QMainWindow(parent)
 {
        using_flags = p;
+       p_config = p->get_config_ptr();
        setupUi();
        createContextMenu();
 }
@@ -409,16 +410,16 @@ void Ui_MainWindowBase::setupUi(void)
        connect(actionHelp_License_JP, SIGNAL(sig_send_string(QString)), this, SLOT(do_browse_document(QString)));
        menuHELP->addAction(actionHelp_License_JP);
        
-       if(config.window_mode <= 0) config.window_mode = 0;
-       if(config.window_mode >= using_flags->get_screen_mode_num()) config.window_mode = using_flags->get_screen_mode_num() - 1;
+       if(using_flags->get_config_ptr()->window_mode <= 0) using_flags->get_config_ptr()->window_mode = 0;
+       if(using_flags->get_config_ptr()->window_mode >= using_flags->get_screen_mode_num()) using_flags->get_config_ptr()->window_mode = using_flags->get_screen_mode_num() - 1;
        w = using_flags->get_screen_width();
        h = using_flags->get_screen_height();
-       if(actionScreenSize[config.window_mode] != NULL) {
-               double nd = actionScreenSize[config.window_mode]->binds->getDoubleValue();
+       if(actionScreenSize[using_flags->get_config_ptr()->window_mode] != NULL) {
+               double nd = actionScreenSize[using_flags->get_config_ptr()->window_mode]->binds->getDoubleValue();
                w = (int)(nd * (double)w);
                h = (int)(nd * (double)h);
                if(using_flags->is_use_screen_rotate()) {
-                       if(config.rotate_type) {
+                       if(using_flags->get_config_ptr()->rotate_type) {
                                int tmp_w = w;
                                w = h;
                                h = tmp_w;
@@ -426,7 +427,7 @@ void Ui_MainWindowBase::setupUi(void)
                }
        } else {
                if(using_flags->is_use_screen_rotate()) {
-                       if(config.rotate_type) {
+                       if(using_flags->get_config_ptr()->rotate_type) {
                                w = 600;
                                h = 960;
                        } else {                   
@@ -446,9 +447,9 @@ void Ui_MainWindowBase::setupUi(void)
                }
        }
        this->set_screen_size(w, h);
-       this->set_screen_aspect(config.window_stretch_type);
-       if(actionScreenSize[config.window_mode] != NULL) {
-               double nd = actionScreenSize[config.window_mode]->binds->getDoubleValue();
+       this->set_screen_aspect(using_flags->get_config_ptr()->window_stretch_type);
+       if(actionScreenSize[using_flags->get_config_ptr()->window_mode] != NULL) {
+               double nd = actionScreenSize[using_flags->get_config_ptr()->window_mode]->binds->getDoubleValue();
                graphicsView->do_set_screen_multiply(nd);
        }
        if(using_flags->is_use_joystick()) {
@@ -793,7 +794,7 @@ void Ui_MainWindowBase::OnWindowMove(void)
 void Ui_MainWindowBase::OnWindowResize(void)
 {
        if(emu) {
-               set_window(config.window_mode);
+               set_window(using_flags->get_config_ptr()->window_mode);
        }
 }
 
index bb0c571..c5115f3 100644 (file)
@@ -31,7 +31,7 @@ void Object_Menu_Control::set_screen_aspect(void) {
 void Object_Menu_Control::set_screen_size(void) {
        int w, h;
        double nd, ww, hh;
-       config.window_mode = getNumber();
+       using_flags->get_config_ptr()->window_mode = getNumber();
        nd = getDoubleValue();
        ww = nd * (double)using_flags->get_screen_width();
        hh = nd * (double)using_flags->get_screen_height();
@@ -40,11 +40,11 @@ void Object_Menu_Control::set_screen_size(void) {
                double par_w = (double)using_flags->get_screen_width_aspect() / (double)using_flags->get_screen_width();
                double par_h = (double)using_flags->get_screen_height_aspect() / (double)using_flags->get_screen_height();
                double par = par_h / par_w;
-               if(config.window_stretch_type == 1) { // refer to X, scale Y.
+               if(using_flags->get_config_ptr()->window_stretch_type == 1) { // refer to X, scale Y.
                        hh = hh * par_h;
-               } else if(config.window_stretch_type == 2) { // refer to Y, scale X only
+               } else if(using_flags->get_config_ptr()->window_stretch_type == 2) { // refer to Y, scale X only
                        ww = ww / par_h;
-               } else if(config.window_stretch_type == 3) { // Scale both X, Y
+               } else if(using_flags->get_config_ptr()->window_stretch_type == 3) { // Scale both X, Y
                        ww = ww * par_w;
                        hh = hh * par_h;
                }
@@ -72,12 +72,12 @@ void Ui_MainWindowBase::do_start_saving_movie(void)
 
 void Ui_MainWindowBase::set_gl_scan_line_vert(bool f)
 {
-       config.opengl_scanline_vert = f;
+       using_flags->get_config_ptr()->opengl_scanline_vert = f;
 }
 
 void Ui_MainWindowBase::set_gl_scan_line_horiz(bool f)
 {
-       config.opengl_scanline_horiz = f;
+       using_flags->get_config_ptr()->opengl_scanline_horiz = f;
 }
 
 void Ui_MainWindowBase::ConfigScreenMenu_List(void)
@@ -102,7 +102,7 @@ void Ui_MainWindowBase::ConfigScreenMenu_List(void)
                actionScreenSize[i]->setCheckable(true);
                actionScreenSize[i]->binds->setNumber(i);
 
-               if(i == config.window_mode)  actionScreenSize[i]->setChecked(true);  // OK?
+               if(i == using_flags->get_config_ptr()->window_mode)  actionScreenSize[i]->setChecked(true);  // OK?
 
                actionGroup_ScreenSize->addAction(actionScreenSize[i]);
                actionScreenSize[i]->binds->setDoubleValue(screen_multiply_table[i]);
@@ -128,7 +128,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionScanLine = new Action_Control(this, using_flags);
                actionScanLine->setObjectName(QString::fromUtf8("actionScanLine"));
                actionScanLine->setCheckable(true);
-               if(config.scan_line != 0) {
+               if(using_flags->get_config_ptr()->scan_line != 0) {
                        actionScanLine->setChecked(true);
                } else {
                        actionScanLine->setChecked(false);
@@ -140,7 +140,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionGLScanLineHoriz = new Action_Control(this, using_flags);
                actionGLScanLineHoriz->setObjectName(QString::fromUtf8("actionGLScanLineHoriz"));
                actionGLScanLineHoriz->setCheckable(true);
-               if(config.opengl_scanline_horiz != 0) {
+               if(using_flags->get_config_ptr()->opengl_scanline_horiz != 0) {
                        actionGLScanLineHoriz->setChecked(true);
                } else {
                        actionGLScanLineHoriz->setChecked(false);
@@ -151,7 +151,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                        actionGLScanLineVert = new Action_Control(this, using_flags);
                        actionGLScanLineVert->setObjectName(QString::fromUtf8("actionGLScanLineVert"));
                        actionGLScanLineVert->setCheckable(true);
-                       if(config.opengl_scanline_vert != 0) {
+                       if(using_flags->get_config_ptr()->opengl_scanline_vert != 0) {
                                actionGLScanLineVert->setChecked(true);
                        } else {
                                actionGLScanLineVert->setChecked(false);
@@ -164,7 +164,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionRotate = new Action_Control(this, using_flags);
                actionRotate->setObjectName(QString::fromUtf8("actionScanLine"));
                actionRotate->setCheckable(true);
-               if(config.rotate_type) {
+               if(using_flags->get_config_ptr()->rotate_type) {
                        actionRotate->setChecked(true);
                } else {
                        actionRotate->setChecked(false);
@@ -177,14 +177,14 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionCRT_Filter->setObjectName(QString::fromUtf8("actionCRT_Filter"));
                actionCRT_Filter->setEnabled(true);
                actionCRT_Filter->setCheckable(true);
-               if(config.crt_filter == 0) actionCRT_Filter->setChecked(true);
+               if(using_flags->get_config_ptr()->crt_filter == 0) actionCRT_Filter->setChecked(true);
                connect(actionCRT_Filter, SIGNAL(toggled(bool)), this, SLOT(set_crt_filter(bool)));
        }
        actionOpenGL_Filter = new Action_Control(this, using_flags);
        actionOpenGL_Filter->setObjectName(QString::fromUtf8("actionOpenGL_Filter"));
        actionOpenGL_Filter->setEnabled(true);
        actionOpenGL_Filter->setCheckable(true);
-       if(config.use_opengl_filters) actionOpenGL_Filter->setChecked(true);
+       if(using_flags->get_config_ptr()->use_opengl_filters) actionOpenGL_Filter->setChecked(true);
        connect(actionOpenGL_Filter, SIGNAL(toggled(bool)), this, SLOT(set_gl_crt_filter(bool)));
 
        if((using_flags->get_screen_height_aspect() != using_flags->get_screen_height()) ||
@@ -192,26 +192,26 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionDot_by_Dot = new Action_Control(this, using_flags);
                actionDot_by_Dot->setObjectName(QString::fromUtf8("actionDot_by_Dot"));
                actionDot_by_Dot->setCheckable(true);
-               if(config.window_stretch_type == 0) actionDot_by_Dot->setChecked(true);
+               if(using_flags->get_config_ptr()->window_stretch_type == 0) actionDot_by_Dot->setChecked(true);
                actionDot_by_Dot->binds->setValue1(0);
                
                actionReferToX_Display = new Action_Control(this, using_flags);
                actionReferToX_Display->setObjectName(QString::fromUtf8("actionReferToX_Display"));
                actionReferToX_Display->setCheckable(true);
                actionReferToX_Display->binds->setValue1(1);
-               if(config.window_stretch_type == 1) actionReferToX_Display->setChecked(true);
+               if(using_flags->get_config_ptr()->window_stretch_type == 1) actionReferToX_Display->setChecked(true);
                
                actionReferToY_Display = new Action_Control(this, using_flags);
                actionReferToY_Display->setObjectName(QString::fromUtf8("actionReferToY_Display"));
                actionReferToY_Display->setCheckable(true);
                actionReferToY_Display->binds->setValue1(2);
-               if(config.window_stretch_type == 2) actionReferToY_Display->setChecked(true);
+               if(using_flags->get_config_ptr()->window_stretch_type == 2) actionReferToY_Display->setChecked(true);
        
                actionFill_Display = new Action_Control(this, using_flags);
                actionFill_Display->setObjectName(QString::fromUtf8("actionFill_Display"));
                actionFill_Display->setCheckable(true);
                actionFill_Display->binds->setValue1(3);
-               if(config.window_stretch_type == 3) actionFill_Display->setChecked(true);
+               if(using_flags->get_config_ptr()->window_stretch_type == 3) actionFill_Display->setChecked(true);
        
                actionGroup_Stretch = new QActionGroup(this);
                actionGroup_Stretch->setExclusive(true);
index 5950e4e..cd00bb0 100644 (file)
@@ -44,7 +44,7 @@ void Ui_MainWindowBase::rise_volume_dialog(void)
        dlg->setWindowIcon(img);
        this->retranslateVolumeLabels(dlg);
 
-       n = (float)(((config.general_sound_level + 32768) * 1000) / 65535) / 10.0;
+       n = (float)(((using_flags->get_config_ptr()->general_sound_level + 32768) * 1000) / 65535) / 10.0;
        s_val.setNum(n, 'f', 1);
        tmps = QApplication::translate("Ui_SoundDialog", "Set Volume", 0);
        tmps = tmps + QString::fromUtf8(" (") + s_val + QString::fromUtf8("%)");
@@ -75,7 +75,7 @@ void Ui_MainWindowBase::CreateSoundMenu(void)
                actionSoundCMT = new Action_Control(this, using_flags);
                actionSoundCMT->setObjectName(QString::fromUtf8("actionSoundCMT"));
                actionSoundCMT->setCheckable(true);
-               if(config.tape_sound != 0) {
+               if(using_flags->get_config_ptr()->tape_sound != 0) {
                        actionSoundCMT->setChecked(true);
                } else {
                        actionSoundCMT->setChecked(false);
@@ -124,7 +124,7 @@ void Ui_MainWindowBase::ConfigSoundMenu(void)
                action_Freq[i]->setObjectName(tmps);
                action_Freq[i]->setCheckable(true);
                action_Freq[i]->binds->setNumber(i);
-               if(i == config.sound_frequency) {
+               if(i == using_flags->get_config_ptr()->sound_frequency) {
                        action_Freq[i]->setChecked(true);
                        freq = s_freq_table[i];
                }
@@ -142,7 +142,7 @@ void Ui_MainWindowBase::ConfigSoundMenu(void)
                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);
+               if(i == using_flags->get_config_ptr()->sound_latency) action_Latency[i]->setChecked(true);
                actionGroup_Sound_Latency->addAction(action_Latency[i]);
        }
 
@@ -200,5 +200,5 @@ void Ui_MainWindowBase::retranslateSoundMenu(void)
        menuSound_Latency->setTitle(QApplication::translate("MainWindow", "Sound Latency", 0));
        action_VolumeDialog->setText(QApplication::translate("MainWindow", "Set Volumes", 0));
 
-       do_update_volume(config.general_sound_level);
+       do_update_volume(using_flags->get_config_ptr()->general_sound_level);
 }
index d4c0ad3..d2bda49 100644 (file)
@@ -89,7 +89,7 @@ void GLDrawClass::mousePressEvent(QMouseEvent *event)
                double xx;
                double yy;
                if(using_flags->is_use_screen_rotate()) {
-                       if(config.rotate_type) {
+                       if(using_flags->get_config_ptr()->rotate_type) {
                                xx = (double)ypos * ((double)using_flags->get_screen_width() / (double)d_hh);
                                yy = (double)xpos * ((double)using_flags->get_screen_height() / (double)d_ww);
                        } else  {
index 55b6192..7b10fe8 100644 (file)
@@ -501,8 +501,8 @@ void GLDraw_2_0::drawGridsVertical(void)
 
 void GLDraw_2_0::drawGrids(void)
 {
-       gl_grid_horiz = config.opengl_scanline_horiz;
-       gl_grid_vert  = config.opengl_scanline_vert;
+       gl_grid_horiz = using_flags->get_config_ptr()->opengl_scanline_horiz;
+       gl_grid_vert  = using_flags->get_config_ptr()->opengl_scanline_vert;
        if(gl_grid_horiz && (vert_lines > 0)) {
                drawGridsHorizonal();
        } // Will fix.
@@ -622,7 +622,7 @@ void GLDraw_2_0::drawScreenTexture(void)
        }
        
        QVector4D color;
-       smoosing = config.use_opengl_filters;
+       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
        if(set_brightness) {
                color = QVector4D(fBrightR, fBrightG, fBrightB, 1.0);
        } else {
@@ -682,7 +682,7 @@ void GLDraw_2_0::drawMain(QOpenGLShaderProgram *prg,
                                prg->setUniformValue("tex_width",  (float)screen_texture_width); 
                                prg->setUniformValue("tex_height", (float)screen_texture_height);
                                if(using_flags->is_use_screen_rotate()) {
-                                       if(config.rotate_type) {
+                                       if(using_flags->get_config_ptr()->rotate_type) {
                                                prg->setUniformValue("rotate", GL_TRUE);
                                        } else {
                                                prg->setUniformValue("rotate", GL_FALSE);
index 1dada7c..0c704d7 100644 (file)
@@ -474,7 +474,7 @@ void GLDraw_3_0::drawScreenTexture(void)
        }
        
        QVector4D color;
-       smoosing = config.use_opengl_filters;
+       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
        if(set_brightness) {
                color = QVector4D(fBrightR, fBrightG, fBrightB, 1.0);
        } else {
@@ -526,7 +526,7 @@ void GLDraw_3_0::drawMain(QOpenGLShaderProgram *prg,
                prg->setUniformValue("tex_width",  (float)screen_texture_width); 
                prg->setUniformValue("tex_height", (float)screen_texture_height);
                if(using_flags->is_use_screen_rotate()) {
-                       if(config.rotate_type) {
+                       if(using_flags->get_config_ptr()->rotate_type) {
                                prg->setUniformValue("rotate", GL_TRUE);
                        } else {
                                prg->setUniformValue("rotate", GL_FALSE);
index b1b2169..1237cb2 100644 (file)
@@ -162,7 +162,7 @@ uint32_t GLDrawClass::get106Scancode2VK(uint32_t data)
        uint32_t vk;
        int i = 0;
        vk = key_table->get_vk_from_scan(data);
-       if(config.swap_kanji_pause) {
+       if(using_flags->get_config_ptr()->swap_kanji_pause) {
                if(vk == VK_KANJI) {
                        vk = VK_PAUSE;
                } else if(vk == VK_PAUSE) {
index f8d1a5e..8bb7af5 100644 (file)
@@ -95,7 +95,8 @@ void get_short_filename(_TCHAR *dst, _TCHAR *file, int maxlen)
        return;
 }
 
-extern int MainLoop(int argc, char *argv[]);
+extern int MainLoop(int argc, char *argv[], config_t *cfg);
+extern config_t config;
 
 /*
  * This is main for Qt.
@@ -110,7 +111,7 @@ int main(int argc, char *argv[])
 /*
  * アプリケーション初期化
  */
-       nErrorCode = MainLoop(argc, argv);
+       nErrorCode = MainLoop(argc, argv, &config);
        return nErrorCode;
 }
 #if defined(Q_OS_WIN) 
index 124ec66..956a751 100644 (file)
@@ -33,7 +33,7 @@ void Ui_SndSliderObject::setValue(int level)
                float n;
                if(level < -32768) level = -32678;
                if(level > 32767)  level = 32767;
-               config.general_sound_level = level;
+               using_flags->get_config_ptr()->general_sound_level = level;
                
                tmps = QApplication::translate("Ui_SoundDialog", "Set Volume", 0);
                n = (float)(((level + 32768) * 1000) / 65535) / 10.0;
@@ -115,7 +115,7 @@ Ui_SoundDialog::Ui_SoundDialog(USING_FLAGS *p, EMU *_emu, QWidget *parent) : QWi
        sliderMasterVolume->setMaximum(32768);
        sliderMasterVolume->setSingleStep(256);
        sliderMasterVolume->setPageStep(4096);
-       sliderMasterVolume->setValue(config.general_sound_level);
+       sliderMasterVolume->setValue(using_flags->get_config_ptr()->general_sound_level);
        sliderMasterVolume->connect(sliderMasterVolume, SIGNAL(valueChanged(int)),
                                                                sliderMasterVolume, SLOT(setValue(int)));
        VBoxMasterVolume = new QVBoxLayout;
@@ -134,8 +134,8 @@ Ui_SoundDialog::Ui_SoundDialog(USING_FLAGS *p, EMU *_emu, QWidget *parent) : QWi
                int ij = 0;
                for(ii = 0; ii < using_flags->get_use_sound_volume(); ii++) {
                        QString lbl = QApplication::translate("Ui_SoundDialog", using_flags->get_sound_device_caption(ii), 0);
-                       int l_val = config.sound_volume_l[ii];
-                       int r_val = config.sound_volume_r[ii];
+                       int l_val = using_flags->get_config_ptr()->sound_volume_l[ii];
+                       int r_val = using_flags->get_config_ptr()->sound_volume_r[ii];
                        
                        int s_lvl;
                        int s_balance;
index 6a1103d..64dd7f9 100644 (file)
@@ -33,19 +33,19 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_vcodec->addItem(QString::fromUtf8("H.264 (Drop tail frames)"), VIDEO_CODEC_H264);
        for(int i = 0; i < combo_vcodec->count(); i++) {
                int ii = combo_vcodec->itemData(i).toInt();
-               if(ii == config.video_codec_type) {
+               if(ii == using_flags->get_config_ptr()->video_codec_type) {
                        combo_vcodec->setCurrentIndex(ii);
                }
        }
-       video_codec_type = config.video_codec_type;
+       video_codec_type = using_flags->get_config_ptr()->video_codec_type;
        connect(combo_vcodec, SIGNAL(activated(int)), this, SLOT(do_set_video_codec_type(int)));
 
        label_resolution = new QLabel(QApplication::translate("MainWindow", "Resolution", 0), this);
        combo_resolution = new QComboBox(this);
 
-       geometry.setWidth(config.video_width);
-       geometry.setHeight(config.video_height);
-       audio_bitrate = config.audio_bitrate;
+       geometry.setWidth(using_flags->get_config_ptr()->video_width);
+       geometry.setHeight(using_flags->get_config_ptr()->video_height);
+       audio_bitrate = using_flags->get_config_ptr()->audio_bitrate;
 
        label_video_threads = new QLabel(QApplication::translate("MainWindow", "Video Threads", 0), this);
        combo_video_threads = new QComboBox(this);
@@ -53,7 +53,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        label_audio_bitrate = new QLabel(QApplication::translate("MainWindow", "Audio Bitrate", 0), this);
        label_video_fps = new QLabel(QApplication::translate("MainWindow", "Framerate", 0), this);
        combo_video_fps = new QComboBox(this);
-       video_fps = config.video_frame_rate;
+       video_fps = using_flags->get_config_ptr()->video_frame_rate;
        
        // Value for resolution
        bool skipf = false;
@@ -161,7 +161,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        
        for(int i = 0; i < combo_resolution->count(); i++) {
                QSize s = combo_resolution->itemData(i).toSize();
-               if((s.width() == config.video_width) && (s.height() == config.video_height)) {
+               if((s.width() == using_flags->get_config_ptr()->video_width) && (s.height() == using_flags->get_config_ptr()->video_height)) {
                        combo_resolution->setCurrentIndex(i);
                }
        }
@@ -183,11 +183,11 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_video_threads->addItem(QString::fromUtf8("12"), 12);
        for(int i = 0; i < combo_video_threads->count(); i++) {
                int br = combo_video_threads->itemData(i).toInt();
-               if(br == config.video_threads) {
+               if(br == using_flags->get_config_ptr()->video_threads) {
                        combo_video_threads->setCurrentIndex(i);
                }
        }
-       video_threads = config.video_threads;
+       video_threads = using_flags->get_config_ptr()->video_threads;
        connect(combo_video_threads, SIGNAL(activated(int)), this, SLOT(do_set_video_threads(int)));
 
        // Audio bitrate
@@ -199,7 +199,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_audio_bitrate->addItem(QString::fromUtf8("192kbps"), 192);
        for(int i = 0; i < combo_audio_bitrate->count(); i++) {
                int br = combo_audio_bitrate->itemData(i).toInt();
-               if(br == config.audio_bitrate) {
+               if(br == using_flags->get_config_ptr()->audio_bitrate) {
                        combo_audio_bitrate->setCurrentIndex(i);
                }
        }
@@ -211,7 +211,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_video_fps->addItem(QString::fromUtf8("60fps"), 60); // Temporally disabled
        for(int i = 0; i < combo_video_fps->count(); i++) {
                int fps = combo_video_fps->itemData(i).toInt();
-               if(fps == config.video_frame_rate) {
+               if(fps == using_flags->get_config_ptr()->video_frame_rate) {
                        combo_video_fps->setCurrentIndex(i);
                }
        }
@@ -294,7 +294,7 @@ void CSP_TabMovieGeneral::do_set_codecs(void)
 
        // See:
        // https://libav.org/avconv.html#Video-Options
-       config.audio_bitrate = audio_bitrate;
+       using_flags->get_config_ptr()->audio_bitrate = audio_bitrate;
        emit sig_set_audio_bitrate(audio_bitrate);
 
        switch(video_codec_type) {
@@ -305,18 +305,18 @@ void CSP_TabMovieGeneral::do_set_codecs(void)
                emit sig_video_add_option(QString::fromUtf8("c:v"), QString::fromUtf8("h264"));
                break;
        }
-       config.video_codec_type = video_codec_type;
+       using_flags->get_config_ptr()->video_codec_type = video_codec_type;
        
        emit sig_video_add_option(QString::fromUtf8("c:a"), QString::fromUtf8("aac"));
-       //config.audio_codec_type = audio_codec_type;
+       //using_flags->get_config_ptr()->audio_codec_type = audio_codec_type;
 
-       config.video_threads = video_threads;
-       config.video_frame_rate = video_fps;
+       using_flags->get_config_ptr()->video_threads = video_threads;
+       using_flags->get_config_ptr()->video_frame_rate = video_fps;
 
-       config.video_width = geometry.width();
-       config.video_height = geometry.height();
+       using_flags->get_config_ptr()->video_width = geometry.width();
+       using_flags->get_config_ptr()->video_height = geometry.height();
        emit sig_set_video_resolution(geometry);
 
-       config.video_threads = video_threads;
-       config.video_frame_rate = video_fps;
+       using_flags->get_config_ptr()->video_threads = video_threads;
+       using_flags->get_config_ptr()->video_frame_rate = video_fps;
 }
index f641aed..acb42ac 100644 (file)
@@ -12,6 +12,7 @@
 #include "dialog_movie.h"
 #include "../avio/movie_saver.h"
 #include "../../config.h"
+#include "menu_flags.h"
 
 CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_window,  USING_FLAGS *p, QWidget *parent) : QWidget(parent)
 {
@@ -21,8 +22,8 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        p_movie = ms;
        p_window = parent_window;
 
-       video_maxq = config.video_h264_maxq;
-       video_minq = config.video_h264_minq;
+       video_maxq = using_flags->get_config_ptr()->video_h264_maxq;
+       video_minq = using_flags->get_config_ptr()->video_h264_minq;
 
        label_video_bframes = new QLabel(QApplication::translate("MainWindow", "Max B Frames", 0), this);
        combo_video_bframes = new QComboBox(this);
@@ -49,12 +50,12 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_bitrate->addItem(QString::fromUtf8("4500Kbps"), 4500);
        for(int i = 0; i < combo_video_bitrate->count(); i++) {
                int br = combo_video_bitrate->itemData(i).toInt();
-               if(br == config.video_h264_bitrate) {
+               if(br == using_flags->get_config_ptr()->video_h264_bitrate) {
                        combo_video_bitrate->setCurrentIndex(i);
                }
        }
        connect(combo_video_bitrate, SIGNAL(activated(int)), this, SLOT(do_set_video_bitrate(int)));
-       video_bitrate = config.video_h264_bitrate;
+       video_bitrate = using_flags->get_config_ptr()->video_h264_bitrate;
 
        // Video bframes
        combo_video_bframes->addItem(QString::fromUtf8("0"), 0);
@@ -68,11 +69,11 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_bframes->addItem(QString::fromUtf8("8"), 8);
        for(int i = 0; i < combo_video_bframes->count(); i++) {
                int br = combo_video_bframes->itemData(i).toInt();
-               if(br == config.video_h264_bframes) {
+               if(br == using_flags->get_config_ptr()->video_h264_bframes) {
                        combo_video_bframes->setCurrentIndex(i);
                }
        }
-       video_bframes = config.video_h264_bframes;
+       video_bframes = using_flags->get_config_ptr()->video_h264_bframes;
        connect(combo_video_bframes, SIGNAL(activated(int)), this, SLOT(do_set_bframes(int)));
 
        // B adapt
@@ -81,34 +82,34 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_b_adapt->addItem(QApplication::translate("MainWindow", "Optimal (Slow with high B-Frames)", 0), 2);
        for(int i = 0; i < combo_video_b_adapt->count(); i++) {
                int br = combo_video_b_adapt->itemData(i).toInt();
-               if(br == config.video_h264_b_adapt) {
+               if(br == using_flags->get_config_ptr()->video_h264_b_adapt) {
                        combo_video_b_adapt->setCurrentIndex(i);
                }
        }
-       video_b_adapt = config.video_h264_b_adapt;
+       video_b_adapt = using_flags->get_config_ptr()->video_h264_b_adapt;
        connect(combo_video_b_adapt, SIGNAL(activated(int)), this, SLOT(do_set_b_adapt(int)));
 
        slider_qmin = new QSlider(Qt::Horizontal, this);
        slider_qmin->setMinimum(0);
        slider_qmin->setMaximum(63);
-       slider_qmin->setValue(config.video_h264_minq);
+       slider_qmin->setValue(using_flags->get_config_ptr()->video_h264_minq);
        label_qmin_val = new QLabel(this);
-       tmps.setNum(config.video_h264_minq);
+       tmps.setNum(using_flags->get_config_ptr()->video_h264_minq);
        label_qmin_val->setText(tmps);
        label_qmin_name = new QLabel(QString::fromUtf8("QP Min"), this);
-       video_minq = config.video_h264_minq;
+       video_minq = using_flags->get_config_ptr()->video_h264_minq;
        connect(slider_qmin, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmin(int)));
                
        slider_qmax = new QSlider(Qt::Horizontal, this);
        slider_qmax->setMinimum(0);
        slider_qmax->setMaximum(63);
-       slider_qmax->setValue(config.video_h264_maxq);
+       slider_qmax->setValue(using_flags->get_config_ptr()->video_h264_maxq);
        label_qmax_val = new QLabel(this);
-       tmps.setNum(config.video_h264_maxq);
+       tmps.setNum(using_flags->get_config_ptr()->video_h264_maxq);
        label_qmax_val->setText(tmps);
        label_qmax_name = new QLabel(QString::fromUtf8("QP Max"), this);
        connect(slider_qmax, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmax(int)));
-       video_maxq = config.video_h264_maxq;
+       video_maxq = using_flags->get_config_ptr()->video_h264_maxq;
        
        // Subme
        combo_video_subme->addItem(QApplication::translate("MainWindow", "RD mode decision for I/P-frames", 0), 6);
@@ -119,11 +120,11 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_subme->addItem(QApplication::translate("MainWindow", "Full RD: disable all early terminations", 0), 11);
        for(int i = 0; i < combo_video_subme->count(); i++) {
                int br = combo_video_subme->itemData(i).toInt();
-               if(br == config.video_h264_subme) {
+               if(br == using_flags->get_config_ptr()->video_h264_subme) {
                        combo_video_subme->setCurrentIndex(i);
                }
        }
-       video_subme = config.video_h264_subme;
+       video_subme = using_flags->get_config_ptr()->video_h264_subme;
        connect(combo_video_subme, SIGNAL(activated(int)), this, SLOT(do_set_subme(int)));
                
        label_title = new QLabel(QApplication::translate("MainWindow", "Set H.264 parameter.", 0), this);
@@ -167,13 +168,13 @@ void CSP_TabMovieH264::do_set_codecs(void)
        QString value;
        // See:
        // https://libav.org/avconv.html#Video-Options
-       config.video_h264_bitrate = video_bitrate;
+       using_flags->get_config_ptr()->video_h264_bitrate = video_bitrate;
 
-       config.video_h264_maxq = video_maxq;
-       config.video_h264_minq = video_minq;
-       config.video_h264_bframes = video_bframes;
-       config.video_h264_b_adapt = video_b_adapt;
-       config.video_h264_subme = video_subme;
+       using_flags->get_config_ptr()->video_h264_maxq = video_maxq;
+       using_flags->get_config_ptr()->video_h264_minq = video_minq;
+       using_flags->get_config_ptr()->video_h264_bframes = video_bframes;
+       using_flags->get_config_ptr()->video_h264_b_adapt = video_b_adapt;
+       using_flags->get_config_ptr()->video_h264_subme = video_subme;
 }
 
 void CSP_TabMovieH264::do_set_qmin(int n)
index 1466a49..82d578c 100644 (file)
@@ -12,6 +12,7 @@
 #include "dialog_movie.h"
 #include "../avio/movie_saver.h"
 #include "../../config.h"
+#include "menu_flags.h"
 
 CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_window,  USING_FLAGS *p, QWidget *parent) : QWidget(parent)
 {
@@ -21,8 +22,8 @@ CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wi
        p_movie = ms;
        p_window = parent_window;
 
-       video_maxq = config.video_mpeg4_maxq;
-       video_minq = config.video_mpeg4_minq;
+       video_maxq = using_flags->get_config_ptr()->video_mpeg4_maxq;
+       video_minq = using_flags->get_config_ptr()->video_mpeg4_minq;
        if(video_maxq < video_minq) {
                int n = video_maxq;
                video_maxq = video_minq;
@@ -59,12 +60,12 @@ CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wi
        combo_video_bitrate->addItem(QString::fromUtf8("20000Kbps"), 20000);
        for(int i = 0; i < combo_video_bitrate->count(); i++) {
                int br = combo_video_bitrate->itemData(i).toInt();
-               if(br == config.video_mpeg4_bitrate) {
+               if(br == using_flags->get_config_ptr()->video_mpeg4_bitrate) {
                        combo_video_bitrate->setCurrentIndex(i);
                }
        }
        connect(combo_video_bitrate, SIGNAL(activated(int)), this, SLOT(do_set_video_bitrate(int)));
-       video_bitrate = config.video_mpeg4_bitrate;
+       video_bitrate = using_flags->get_config_ptr()->video_mpeg4_bitrate;
 
        // Video bframes
        combo_video_bframes->addItem(QString::fromUtf8("1"), 1);
@@ -77,35 +78,35 @@ CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wi
        combo_video_bframes->addItem(QString::fromUtf8("8"), 8);
        for(int i = 0; i < combo_video_bframes->count(); i++) {
                int br = combo_video_bframes->itemData(i).toInt();
-               if(br == config.video_mpeg4_bframes) {
+               if(br == using_flags->get_config_ptr()->video_mpeg4_bframes) {
                        combo_video_bframes->setCurrentIndex(i);
                }
        }
-       video_bframes = config.video_mpeg4_bframes;
+       video_bframes = using_flags->get_config_ptr()->video_mpeg4_bframes;
        connect(combo_video_bframes, SIGNAL(activated(int)), this, SLOT(do_set_bframes(int)));
 
 
        slider_qmin = new QSlider(Qt::Horizontal, this);
        slider_qmin->setMinimum(1);
        slider_qmin->setMaximum(31);
-       slider_qmin->setValue(config.video_mpeg4_minq);
+       slider_qmin->setValue(using_flags->get_config_ptr()->video_mpeg4_minq);
        label_qmin_val = new QLabel(this);
-       tmps.setNum(config.video_mpeg4_minq);
+       tmps.setNum(using_flags->get_config_ptr()->video_mpeg4_minq);
        label_qmin_val->setText(tmps);
        label_qmin_name = new QLabel(QString::fromUtf8("QP Min"), this);
-       video_minq = config.video_mpeg4_minq;
+       video_minq = using_flags->get_config_ptr()->video_mpeg4_minq;
        connect(slider_qmin, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmin(int)));
                
        slider_qmax = new QSlider(Qt::Horizontal, this);
        slider_qmax->setMinimum(1);
        slider_qmax->setMaximum(31);
-       slider_qmax->setValue(config.video_mpeg4_maxq);
+       slider_qmax->setValue(using_flags->get_config_ptr()->video_mpeg4_maxq);
        label_qmax_val = new QLabel(this);
-       tmps.setNum(config.video_mpeg4_maxq);
+       tmps.setNum(using_flags->get_config_ptr()->video_mpeg4_maxq);
        label_qmax_val->setText(tmps);
        label_qmax_name = new QLabel(QString::fromUtf8("QP Max"), this);
        connect(slider_qmax, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmax(int)));
-       video_maxq = config.video_mpeg4_maxq;
+       video_maxq = using_flags->get_config_ptr()->video_mpeg4_maxq;
        
        label_title = new QLabel(QApplication::translate("MainWindow", "Set MPEG4v1 parameter.", 0), this);
        grid_layout = new QGridLayout(this);
@@ -141,11 +142,11 @@ void CSP_TabMovieMPEG4::do_set_codecs(void)
        QString value;
        // See:
        // https://libav.org/avconv.html#Video-Options
-       config.video_mpeg4_bitrate = video_bitrate;
+       using_flags->get_config_ptr()->video_mpeg4_bitrate = video_bitrate;
 
-       config.video_mpeg4_maxq = video_maxq;
-       config.video_mpeg4_minq = video_minq;
-       config.video_mpeg4_bframes = video_bframes;
+       using_flags->get_config_ptr()->video_mpeg4_maxq = video_maxq;
+       using_flags->get_config_ptr()->video_mpeg4_minq = video_minq;
+       using_flags->get_config_ptr()->video_mpeg4_bframes = video_bframes;
 }
 
 void CSP_TabMovieMPEG4::do_set_qmin(int n)
index f558be9..8ef9f5a 100644 (file)
@@ -45,18 +45,18 @@ int Ui_MainWindowBase::set_recent_binary_load(int drv, int num)
        
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
        
-       s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_binary_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
        
        get_parent_dir(path_shadow);
-       strcpy(config.initial_binary_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_binary_dir, path_shadow);
        //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
        
        emit sig_load_binary(drv, s_path);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
        return 0;
 }
 
@@ -68,18 +68,18 @@ int Ui_MainWindowBase::set_recent_binary_save(int drv, int num)
        
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
        
-       s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_binary_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
        
        get_parent_dir(path_shadow);
-       strcpy(config.initial_binary_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_binary_dir, path_shadow);
        //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
        
        emit sig_save_binary(drv, s_path);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
        return 0;
 }
 
@@ -91,14 +91,14 @@ void Ui_MainWindowBase::_open_binary_load(int drv, const QString fname)
        if(fname.length() <= 0) return;
        drv = drv & 7;
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_binary_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_binary_dir, path_shadow);
        // Update List
        emit sig_load_binary(drv, fname);
                
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
 }
 
 void Ui_MainWindowBase::_open_binary_save(int drv, const QString fname)
@@ -108,14 +108,14 @@ void Ui_MainWindowBase::_open_binary_save(int drv, const QString fname)
        if(fname.length() <= 0) return;
        drv = drv & 7;
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_binary_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_binary_dir, path_shadow);
        // Update List
        emit sig_save_binary(drv, fname);
 
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
 }
 
 
@@ -138,9 +138,9 @@ void Ui_MainWindowBase::CreateBinaryMenu(int drv, int drv_base)
        
        menu_BINs[drv]->do_clear_inner_media();
        menu_BINs[drv]->do_add_media_extension(ext, desc1);
-       SETUP_HISTORY(config.recent_binary_path[drv], listBINs[drv]);
+       SETUP_HISTORY(using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
        listBINs[drv].clear();
 
        QString name = QString::fromUtf8("Binary");
index 983618f..3d06239 100644 (file)
@@ -82,9 +82,9 @@ void Ui_MainWindowBase::CreateBubbleMenu(int drv, int drv_base)
                
                menu_bubbles[drv]->do_clear_inner_media();
                menu_bubbles[drv]->do_add_media_extension(ext, desc1);
-               SETUP_HISTORY(config.recent_bubble_casette_path[drv], listBubbles[drv]);
+               SETUP_HISTORY(using_flags->get_config_ptr()->recent_bubble_casette_path[drv], listBubbles[drv]);
                menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-               menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_bubble_casette_dir);
                listB77[drv].clear();
 
                QString name = QString::fromUtf8("BUBBLE");
index 10e304f..86ba041 100644 (file)
@@ -31,11 +31,11 @@ void Ui_MainWindowBase::_open_cart(int drv, const QString fname)
 
        if(fname.length() <= 0) return;
        strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_cart_path[drv], listCARTs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_cart_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_cart_dir, path_shadow);
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
        
        emit sig_close_cart(drv);
        emit sig_open_cart(drv, fname);
@@ -55,15 +55,15 @@ void Ui_MainWindowBase::set_recent_cart(int drv, int num)
     
        if((num < 0) || (num >= MAX_HISTORY)) return;
  
-       s_path = QString::fromLocal8Bit(config.recent_cart_path[drv][num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_cart_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_cart_path[drv], listCARTs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
    
        get_parent_dir(path_shadow);
-       strcpy(config.initial_cart_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_cart_dir, path_shadow);
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
    
        //eject_cart(drv);
        emit sig_open_cart(drv, s_path);
@@ -104,9 +104,9 @@ void Ui_MainWindowBase::CreateCartMenu(int drv, int drv_base)
                
        menu_Cart[drv]->do_clear_inner_media();
        menu_Cart[drv]->do_add_media_extension(ext, desc);
-       SETUP_HISTORY(config.recent_cart_path[drv], listCARTs[drv]);
+       SETUP_HISTORY(using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
 
        QString name = QString::fromUtf8("Cart");
        QString tmpv;
index 0118958..10d0677 100644 (file)
@@ -37,9 +37,9 @@ void Ui_MainWindowBase::CreateCDROMMenu(void)
        
        menu_CDROM->create_pulldown_menu();     
        // Translate Menu
-       SETUP_HISTORY(config.recent_compact_disc_path, listCDROM);
+       SETUP_HISTORY(using_flags->get_config_ptr()->recent_compact_disc_path, listCDROM);
        menu_CDROM->do_update_histories(listCDROM);
-       menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
+       menu_CDROM->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
        
        ext_play = "*.ccd *.cue";
        desc_play = "Compact Disc";
@@ -63,18 +63,18 @@ int Ui_MainWindowBase::set_recent_cdrom(int drv, int num)
        int i;
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
     
-       s_path = QString::fromLocal8Bit(config.recent_compact_disc_path[num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_compact_disc_path[num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path, listCDROM);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_compact_disc_path, listCDROM);
    
        get_parent_dir(path_shadow);
-       strcpy(config.initial_compact_disc_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_compact_disc_dir, path_shadow);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
        emit sig_close_cdrom();
        AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
        emit sig_open_cdrom(s_path);
        menu_CDROM->do_update_histories(listCDROM);
-       menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
+       menu_CDROM->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
        return 0;
 }
 
@@ -90,9 +90,9 @@ void Ui_MainWindowBase::do_open_cdrom(int drv, QString path)
 
        if(path.length() <= 0) return;
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path, listCDROM);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_compact_disc_path, listCDROM);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_compact_disc_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_compact_disc_dir, path_shadow);
        // Copy filename again.
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
 
@@ -100,7 +100,7 @@ void Ui_MainWindowBase::do_open_cdrom(int drv, QString path)
        AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
        emit sig_open_cdrom(path);
        menu_CDROM->do_update_histories(listCDROM);
-       menu_CDROM->do_set_initialize_directory(config.initial_compact_disc_dir);
+       menu_CDROM->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
 }
 
 void Ui_MainWindowBase::retranslateCDROMMenu(void)
index b619b95..55d5608 100644 (file)
@@ -50,10 +50,10 @@ void Ui_MainWindowBase::CreateCMTMenu(void)
        
        menu_CMT->create_pulldown_menu();       
        // Translate Menu
-       SETUP_HISTORY(config.recent_tape_path, listCMT);
+       SETUP_HISTORY(using_flags->get_config_ptr()->recent_tape_path, listCMT);
        menu_CMT->do_set_write_protect(false);
        menu_CMT->do_update_histories(listCMT);
-       menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
+       menu_CMT->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
 
        if(using_flags->is_machine_pc6001()) {
                ext_play = "*.wav *.p6 *.cas";
@@ -99,19 +99,19 @@ int Ui_MainWindowBase::set_recent_cmt(int drv, int num)
        int i;
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
     
-       s_path = QString::fromLocal8Bit(config.recent_tape_path[num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_tape_path[num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path, listCMT);
    
        get_parent_dir(path_shadow);
-       strcpy(config.initial_tape_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_tape_dir, path_shadow);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
        AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open READ");
        
        emit sig_close_tape();
        emit sig_play_tape(s_path);
        menu_CMT->do_update_histories(listCMT);
-       menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
+       menu_CMT->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
        return 0;
 }
 
@@ -167,30 +167,30 @@ void Ui_MainWindowBase::do_push_apss_rewind_tape(void)
 void Ui_MainWindowBase::set_wave_shaper(bool f)
 {
        if(f) {
-               config.wave_shaper = 1;
+               using_flags->get_config_ptr()->wave_shaper = 1;
        } else {
-               config.wave_shaper = 0;
+               using_flags->get_config_ptr()->wave_shaper = 0;
        }
 }
 
 bool Ui_MainWindowBase::get_wave_shaper(void)
 {
-       if(config.wave_shaper == 0) return false;
+       if(using_flags->get_config_ptr()->wave_shaper == 0) return false;
        return true;
 }
 
 void Ui_MainWindowBase::set_direct_load_from_mzt(bool f)
 {
        if(f) {
-               config.direct_load_mzt = 1;
+               using_flags->get_config_ptr()->direct_load_mzt = 1;
        } else {
-               config.direct_load_mzt = 0;
+               using_flags->get_config_ptr()->direct_load_mzt = 0;
        }
 }
 
 bool Ui_MainWindowBase::get_direct_load_mzt(void)
 {
-       if(config.direct_load_mzt == 0) return false;
+       if(using_flags->get_config_ptr()->direct_load_mzt == 0) return false;
        return true;
 }
 
@@ -210,9 +210,9 @@ void Ui_MainWindowBase::do_open_read_cmt(int dummy, QString path)
 
        if(path.length() <= 0) return;
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path, listCMT);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_tape_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_tape_dir, path_shadow);
        // Copy filename again.
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
 
@@ -220,7 +220,7 @@ void Ui_MainWindowBase::do_open_read_cmt(int dummy, QString path)
        AGAR_DebugLog(AGAR_LOG_DEBUG, "Tape: Open READ : filename = %s", path_shadow);
        emit sig_play_tape(path);
        menu_CMT->do_update_histories(listCMT);
-       menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
+       menu_CMT->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
 }
 
 void Ui_MainWindowBase::do_open_write_cmt(QString path) 
@@ -230,9 +230,9 @@ void Ui_MainWindowBase::do_open_write_cmt(QString path)
 
        if(path.length() <= 0) return;
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, config.recent_tape_path, listCMT);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path, listCMT);
        get_parent_dir(path_shadow);
-       strcpy(config.initial_tape_dir, path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_tape_dir, path_shadow);
        // Copy filename again.
        strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
 
@@ -245,7 +245,7 @@ void Ui_MainWindowBase::do_open_write_cmt(QString path)
                emit sig_rec_tape(path);
        }
        menu_CMT->do_update_histories(listCMT);
-       menu_CMT->do_set_initialize_directory(config.initial_tape_dir);
+       menu_CMT->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
 }
 
 
index 1b85486..b56ae04 100644 (file)
@@ -45,13 +45,13 @@ void Object_Menu_Control::no_write_protect_fd(void) {
 
 void Object_Menu_Control::do_set_ignore_crc_error(bool flag)
 {
-       config.ignore_disk_crc[drive] = flag;
+       using_flags->get_config_ptr()->ignore_disk_crc[drive] = flag;
        emit sig_emu_update_config();
 }
 
 void Object_Menu_Control::do_set_correct_disk_timing(bool flag)
 {
-       config.correct_disk_timing[drive] = flag;
+       using_flags->get_config_ptr()->correct_disk_timing[drive] = flag;
        emit sig_emu_update_config();
 }
 
@@ -100,9 +100,9 @@ void Ui_MainWindowBase::CreateFloppyMenu(int drv, int drv_base)
                
                menu_fds[drv]->do_clear_inner_media();
                menu_fds[drv]->do_add_media_extension(ext, desc1);
-               SETUP_HISTORY(config.recent_floppy_disk_path[drv], listFDs[drv]);
+               SETUP_HISTORY(using_flags->get_config_ptr()->recent_floppy_disk_path[drv], listFDs[drv]);
                menu_fds[drv]->do_update_histories(listFDs[drv]);
-               menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_floppy_disk_dir);
                listD88[drv].clear();
 
                QString name = QString::fromUtf8("FD");
index 4caf859..5b98f8c 100644 (file)
@@ -63,8 +63,8 @@ void Ui_MainWindowBase::open_quick_disk_dialog(int drv)
        desc2 = desc1 + " (" + ext.toLower() + " " + ext.toUpper() + ")";
        //desc2 = desc1 + " (" + ext.toLower() + ")";
        //desc1 = desc1 + " (" + ext.toUpper() + ")";
-       if(config.initial_quick_disk_dir != NULL) {
-               dirname = config.initial_quick_disk_dir;                
+       if(using_flags->get_config_ptr()->initial_quick_disk_dir != NULL) {
+               dirname = using_flags->get_config_ptr()->initial_quick_disk_dir;                
        } else {
                char app[_MAX_PATH];
                QDir df;
@@ -100,18 +100,18 @@ int Ui_MainWindowBase::set_recent_quick_disk(int drv, int num)
        char path_shadow[_MAX_PATH];
        int i;
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       s_path = QString::fromLocal8Bit(config.recent_quick_disk_path[drv][num]);
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_quick_disk_path[drv][num]);
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
-       UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
     
        strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
        get_parent_dir(path_shadow);
-       strncpy(config.initial_quick_disk_dir, path_shadow, _MAX_PATH);
+       strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir, path_shadow, _MAX_PATH);
        
        emit sig_close_quickdisk(drv);
        emit sig_open_quickdisk(drv, s_path);
        menu_QDs[drv]->do_update_histories(listQDs[drv]);
-       menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
+       menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
        //if(emu->get_quickdisk_protected(drv)) {
        //      menu_QDs[drv]->do_write_protect_media();
        //} else {
@@ -128,16 +128,16 @@ void Ui_MainWindowBase::_open_quick_disk(int drv, const QString fname)
        if(fname.length() <= 0) return;
        strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
 
-       UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
        
        strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
        get_parent_dir(path_shadow);
-       strncpy(config.initial_quick_disk_dir, path_shadow, _MAX_PATH);
+       strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir, path_shadow, _MAX_PATH);
 
        emit sig_close_quickdisk(drv);
        emit sig_open_quickdisk(drv, s_name);
        menu_QDs[drv]->do_update_histories(listQDs[drv]);
-       menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
+       menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
        //if(emu->get_quickdisk_protected(drv)) {
        //      menu_QDs[drv]->do_write_protect_media();
        //} else {
@@ -160,9 +160,9 @@ void Ui_MainWindowBase::CreateQuickDiskMenu(int drv, int drv_base)
                
                menu_QDs[drv]->do_clear_inner_media();
                menu_QDs[drv]->do_add_media_extension(ext, desc1);
-               SETUP_HISTORY(config.recent_quick_disk_path[drv], listQDs[drv]);
+               SETUP_HISTORY(using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
                menu_QDs[drv]->do_update_histories(listQDs[drv]);
-               menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
+               menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
 
                QString name = QString::fromUtf8("Quick Disk");
                QString tmpv;
index bbc21a5..fa9f418 100644 (file)
@@ -53,6 +53,7 @@ Action_Control_EX80::~Action_Control_EX80()
 {
 }
 
+extern config_t config;
 
 void META_MainWindow::setupUI_Emu(void)
 {
index f279422..a4f26db 100644 (file)
@@ -19,6 +19,7 @@
 
 //QT_BEGIN_NAMESPACE
 
+extern config_t config;
 
 Object_Menu_Control_7::Object_Menu_Control_7(QObject *parent, USING_FLAGS *p) : Object_Menu_Control(parent, p)
 {
index f8f319e..3761ee7 100644 (file)
@@ -14,6 +14,8 @@
 #include "menuclasses.h"
 #include "qt_main.h"
 
+extern config_t config;
+
 //QT_BEGIN_NAMESPACE
 Action_Control_HC20::Action_Control_HC20(QObject *parent, USING_FLAGS *p) : Action_Control(parent, p)
 {
index e8644aa..873cb18 100644 (file)
@@ -16,6 +16,8 @@
 
 //QT_BEGIN_NAMESPACE
 
+extern config_t config;
+
 Action_Control_MZ3500::Action_Control_MZ3500(QObject *parent, USING_FLAGS *p) : Action_Control(parent, p)
 {
        mz_binds = new Object_Menu_Control_MZ3500(parent, p);
index 36396fe..0a2eea0 100644 (file)
@@ -17,6 +17,7 @@
 
 //QT_BEGIN_NAMESPACE
 
+extern config_t config;
 
 Action_Control_MZ700::Action_Control_MZ700(QObject *parent, USING_FLAGS *p) : Action_Control(parent, p)
 {
index b97a4cf..e5e6df9 100644 (file)
@@ -14,6 +14,8 @@
 #include "emu.h"
 #include "qt_main.h"
 
+extern config_t config;
+
 Action_Control_MZ80::Action_Control_MZ80(QObject *parent, USING_FLAGS *p) : Action_Control(parent, p)
 {
        mz_binds = new Object_Menu_Control_MZ80(parent, p);
index 7b1c2cb..171cf56 100644 (file)
@@ -16,6 +16,7 @@
 
 //QT_BEGIN_NAMESPACE
 
+extern config_t config;
 
 Object_Menu_Control_60::Object_Menu_Control_60(QObject *parent, USING_FLAGS *p) : Object_Menu_Control(parent, p)
 {
index 5c0c980..680e3c8 100644 (file)
@@ -17,6 +17,7 @@
 
 //QT_BEGIN_NAMESPACE
 
+extern config_t config;
 
 Object_Menu_Control_88::Object_Menu_Control_88(QObject *parent, USING_FLAGS *p) : Object_Menu_Control(parent, p)
 {
index ccdad5e..a1c0f70 100644 (file)
@@ -16,6 +16,7 @@
 #include "menu_disk.h"
 
 //QT_BEGIN_NAMESPACE
+extern config_t config;
 
 Object_Menu_Control_98::Object_Menu_Control_98(QObject *parent, USING_FLAGS *p) : Object_Menu_Control(parent, p)
 {
index c6ce8e8..4dcc0f7 100644 (file)
@@ -14,6 +14,7 @@
 #include "emu.h"
 #include "qt_main.h"
 
+extern config_t config;
 
 Action_Control_QC10::Action_Control_QC10(QObject *parent, USING_FLAGS *p) : Action_Control(parent, p)
 {
index 8e1ad72..8b3a5d0 100644 (file)
@@ -38,7 +38,7 @@ void Object_Menu_Control_X1::do_set_display_mode(void)
 }
 #endif
 
-       
+extern config_t config;
 
 void META_MainWindow::setupUI_Emu(void)
 {
@@ -47,7 +47,7 @@ void META_MainWindow::setupUI_Emu(void)
    menu_Emu_DisplayMode = new QMenu(menuMachine);
    menu_Emu_DisplayMode->setObjectName(QString::fromUtf8("menu_DisplayMode"));
    
-   actionGroup_DisplayMode = new QActionGroup(this, using_flags);
+   actionGroup_DisplayMode = new QActionGroup(this);
    actionGroup_DisplayMode->setObjectName(QString::fromUtf8("actionGroup_DisplayMode"));
    actionGroup_DisplayMode->setExclusive(true);
    menuMachine->addAction(menu_Emu_DisplayMode->menuAction());