OSDN Git Service

[UI][Qt] Remove using_flags->get_config_ptr()->foo. Try to fix issue of http://matsur...
authorK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 14 Jun 2018 12:52:19 +0000 (21:52 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Thu, 14 Jun 2018 12:52:19 +0000 (21:52 +0900)
57 files changed:
source/src/qt/CMakeLists.txt
source/src/qt/avio/CMakeLists.txt
source/src/qt/avio/movie_saver_fileio.cpp
source/src/qt/avio/movie_saver_video.cpp
source/src/qt/common/emu_thread.cpp
source/src/qt/common/menu_flags.cpp
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_hdd2.cpp
source/src/qt/common/util_main.cpp
source/src/qt/emuutils/CMakeLists.txt
source/src/qt/gui/CMakeLists.txt
source/src/qt/gui/csp_logger.cpp
source/src/qt/gui/draw_thread.cpp
source/src/qt/gui/dropdown_joystick.cpp
source/src/qt/gui/dropdown_jsbutton.cpp
source/src/qt/gui/emu_thread_tmpl.cpp
source/src/qt/gui/emu_thread_tmpl.h
source/src/qt/gui/emuevents_control.cpp
source/src/qt/gui/gl2/qt_glutil_gl2_0.cpp
source/src/qt/gui/gl3/qt_glutil_gl3_0.cpp
source/src/qt/gui/gles2/qt_glutil_gles_2.cpp
source/src/qt/gui/joy_thread.cpp
source/src/qt/gui/mainwidget_base.h
source/src/qt/gui/mainwindow_utils.cpp
source/src/qt/gui/menu_binary.cpp
source/src/qt/gui/menu_cmt.cpp
source/src/qt/gui/menu_control.cpp
source/src/qt/gui/menu_disk.cpp
source/src/qt/gui/menu_flags_tmpl.cpp
source/src/qt/gui/menu_main.cpp
source/src/qt/gui/menu_metaclass.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.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_hdd.cpp
source/src/qt/gui/util_ld.cpp
source/src/qt/gui/util_qd.cpp
source/src/qt/osd.cpp
source/src/qt/osd_input.cpp
source/src/qt/osd_sound.cpp
source/src/qt/osd_wrapper.cpp
source/src/vm/common_vm/CMakeLists.txt

index 04f25cc..7cf9f35 100644 (file)
@@ -1,5 +1,5 @@
 message("* qt/osd")
-SET(THIS_LIB_VERSION 2.11.2
+SET(THIS_LIB_VERSION 2.11.3
 
 set(s_qt_osd_headers
        osd_base.h
index 294a4c4..37eee99 100644 (file)
@@ -1,6 +1,6 @@
 message("* qt/avio")
 
-SET(THIS_LIB_VERSION 2.7.5)
+SET(THIS_LIB_VERSION 2.7.6)
 set(s_qt_avio_headers
          movie_saver.h
          movie_loader.h
index b1aff27..1d56def 100644 (file)
@@ -194,9 +194,9 @@ bool MOVIE_SAVER::do_open_main()
                //do_add_option(QString::fromUtf8("c:v"), QString::fromUtf8("theora"));
                do_add_option(QString::fromUtf8("c:a"), QString::fromUtf8("vorbis"));
                
-               video_encode_threads = p_config->video_threads;
-               video_geometry = QSize(p_config->video_width, p_config->video_height);
-               audio_bit_rate = p_config->audio_bitrate * 1000;
+               video_encode_threads = config.video_threads;
+               video_geometry = QSize(config.video_width, config.video_height);
+               audio_bit_rate = config.audio_bitrate * 1000;
                
        }
 
@@ -216,7 +216,7 @@ bool MOVIE_SAVER::do_open_main()
                return false;
 
        fmt = oc->oformat;
-       switch(p_config->video_codec_type) {
+       switch(config.video_codec_type) {
        case VIDEO_CODEC_MPEG4:
                fmt->video_codec = AV_CODEC_ID_MPEG4;
                break;
@@ -224,7 +224,7 @@ bool MOVIE_SAVER::do_open_main()
                fmt->video_codec = AV_CODEC_ID_H264;
                break;
        }
-       switch(p_config->audio_codec_type) {
+       switch(config.audio_codec_type) {
        case AUDIO_CODEC_MP3:
                fmt->audio_codec = AV_CODEC_ID_MP3;
                break;
index 016becd..b692719 100644 (file)
@@ -36,10 +36,10 @@ void MOVIE_SAVER::setup_h264(void *_codec_context)
 #if defined(USE_LIBAV)
        AVCodecContext *c = (AVCodecContext *)_codec_context;
 
-       c->qmin  = p_config->video_h264_minq;
-       c->qmax  = p_config->video_h264_maxq;
-       c->bit_rate = p_config->video_h264_bitrate * 1000;
-       c->max_b_frames = p_config->video_h264_bframes;
+       c->qmin  = config.video_h264_minq;
+       c->qmax  = config.video_h264_maxq;
+       c->bit_rate = config.video_h264_bitrate * 1000;
+       c->max_b_frames = config.video_h264_bframes;
        c->b_quant_offset = 2;
        c->temporal_cplx_masking = 0.1;
        c->spatial_cplx_masking = 0.15;
@@ -49,8 +49,8 @@ void MOVIE_SAVER::setup_h264(void *_codec_context)
        c->refs = 5;
        c->chromaoffset = 2;
        c->max_qdiff = 6;
-       c->b_frame_strategy = p_config->video_h264_b_adapt;
-       c->me_subpel_quality = p_config->video_h264_subme;
+       c->b_frame_strategy = config.video_h264_b_adapt;
+       c->me_subpel_quality = config.video_h264_subme;
        c->i_quant_offset = 1.2;
        c->i_quant_factor = 1.5;
        c->trellis = 2;
@@ -76,10 +76,10 @@ void MOVIE_SAVER::setup_mpeg4(void *_codec)
 {
 #if defined(USE_LIBAV)
        AVCodecContext *c = (AVCodecContext *)_codec;
-       c->qmin  = p_config->video_mpeg4_minq;
-       c->qmax  = p_config->video_mpeg4_maxq;
-       c->max_b_frames  = p_config->video_mpeg4_bframes;
-       c->bit_rate = p_config->video_mpeg4_bitrate * 1000;
+       c->qmin  = config.video_mpeg4_minq;
+       c->qmax  = config.video_mpeg4_maxq;
+       c->max_b_frames  = config.video_mpeg4_bframes;
+       c->bit_rate = config.video_mpeg4_bitrate * 1000;
        c->b_quant_offset = 2;
        c->temporal_cplx_masking = 0.1;
        c->spatial_cplx_masking = 0.15;
index f4604fd..f086f1c 100644 (file)
@@ -318,16 +318,16 @@ void EmuThreadClass::doWork(const QString &params)
        //
        QString ctext;
        bool req_draw = true;
-       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;
+       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;
        //uint32_t key_mod_old = 0xffffffff;
        int no_draw_count = 0;  
        bool prevRecordReq = false;
        double nr_fps = -1.0;
        int _queue_begin;
-       bool multithread_draw = using_flags->get_config_ptr()->use_separate_thread_draw;
+       bool multithread_draw = config.use_separate_thread_draw;
        
        doing_debug_command = false;
        ctext.clear();
@@ -425,14 +425,14 @@ void EmuThreadClass::doWork(const QString &params)
                        }
 #endif
 #if defined(USE_MINIMUM_RENDERING)
-                       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;
+                       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;
 #endif
                        if(bStartRecordSoundReq != false) {
                                p_emu->start_record_sound();
@@ -485,7 +485,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, p_config->sound_volume_l[ii], p_config->sound_volume_r[ii]);
+                                       p_emu->set_sound_device_volume(ii, config.sound_volume_l[ii], config.sound_volume_r[ii]);
                                        bUpdateVolumeReq[ii] = false;
                                }
                        }
@@ -502,7 +502,7 @@ void EmuThreadClass::doWork(const QString &params)
                                                        p_emu->key_up(sp.code, true); // need decicion of extend.
                                                        break;
                                        case KEY_QUEUE_DOWN:
-                                                       if(p_config->romaji_to_kana) {
+                                                       if(config.romaji_to_kana) {
                                                                p_emu->get_osd()->key_modifiers(sp.mod);
                                                                p_emu->key_char(sp.code);
                                                        } else {
index 8e5d327..bf78a04 100644 (file)
@@ -455,7 +455,7 @@ USING_FLAGS_EXT::USING_FLAGS_EXT(config_t *cfg) : USING_FLAGS(cfg)
 #if defined(USE_STATE)
        use_state = true;
 #endif   
-       p_config = cfg;
+       p_config = &config;
 }
 
 USING_FLAGS_EXT::~USING_FLAGS_EXT()
index 1abb065..e28d38c 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "common.h"
 #include "fileio.h"
+#include "config.h"
 #include "emu.h"
 #include "menuclasses.h"
 #include "mainwidget.h"
@@ -44,6 +45,7 @@
 
 EMU* emu;
 QApplication *GuiMain = NULL;
+extern config_t config;
 
 // Start to define MainWindow.
 class META_MainWindow *rMainWindow;
@@ -258,7 +260,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
        connect(hDrawEmu, SIGNAL(message_changed(QString)), this, SLOT(message_status_bar(QString)));
        connect(actionCapture_Screen, SIGNAL(triggered()), glv, SLOT(do_save_frame_screen()));
 
-       /*if(using_flags->get_config_ptr()->use_separate_thread_draw) {
+       /*if(config.use_separate_thread_draw) {
                connect(hRunEmu, SIGNAL(sig_draw_thread(bool)), hDrawEmu, SLOT(doDraw(bool)), Qt::QueuedConnection);
                connect(hRunEmu, SIGNAL(sig_set_draw_fps(double)), hDrawEmu, SLOT(do_set_frames_per_second(double)), Qt::QueuedConnection);
                connect(hRunEmu, SIGNAL(sig_draw_one_turn(bool)), hDrawEmu, SLOT(do_draw_one_turn(bool)), Qt::QueuedConnection);
@@ -297,11 +299,11 @@ void Ui_MainWindow::LaunchEmuThread(void)
        objNameStr = QString("EmuDrawThread");
        hDrawEmu->setObjectName(objNameStr);
 
-       if(using_flags->get_config_ptr()->use_separate_thread_draw) hDrawEmu->start();
+       if(config.use_separate_thread_draw) hDrawEmu->start();
 
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "DrawThread : Launch done.");
 
-       hSaveMovieThread = new MOVIE_SAVER(640, 400,  30, emu->get_osd(), using_flags->get_config_ptr());
+       hSaveMovieThread = new MOVIE_SAVER(640, 400,  30, emu->get_osd(), &config);
        
        connect(actionStart_Record_Movie->binds, SIGNAL(sig_start_record_movie(int)), hRunEmu, SLOT(do_start_record_video(int)));
        connect(this, SIGNAL(sig_start_saving_movie()),
@@ -345,7 +347,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
 
        hRunEmu->start();
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "EmuThread : Launch done.");
-       this->set_screen_aspect(using_flags->get_config_ptr()->window_stretch_type);
+       this->set_screen_aspect(config.window_stretch_type);
        emit sig_movie_set_width(SCREEN_WIDTH);
        emit sig_movie_set_height(SCREEN_HEIGHT);
 }
@@ -353,7 +355,7 @@ void Ui_MainWindow::LaunchEmuThread(void)
 void Ui_MainWindow::LaunchJoyThread(void)
 {
 #if defined(USE_JOYSTICK)
-       hRunJoy = new JoyThreadClass(emu, emu->get_osd(), using_flags, using_flags->get_config_ptr(), csp_logger);
+       hRunJoy = new JoyThreadClass(emu, emu->get_osd(), using_flags, &config, csp_logger);
        connect(this, SIGNAL(quit_joy_thread()), hRunJoy, SLOT(doExit()));
        hRunJoy->setObjectName("JoyThread");
        hRunJoy->start();
@@ -1302,8 +1304,6 @@ int MainLoop(int argc, char *argv[])
        /*
         * Into Qt's Loop.
         */
-       USING_FLAGS_EXT *using_flags = new USING_FLAGS_EXT(&config);
-       // initialize emulation core
 
        //SetupTranslators();
        QTranslator local_translator;
@@ -1336,6 +1336,8 @@ int MainLoop(int argc, char *argv[])
                }
        }
        
+       USING_FLAGS_EXT *using_flags = new USING_FLAGS_EXT(&config);
+       // initialize emulation core
        rMainWindow = new META_MainWindow(using_flags, csp_logger);
        rMainWindow->connect(rMainWindow, SIGNAL(sig_quit_all(void)), rMainWindow, SLOT(deleteLater(void)));
        rMainWindow->setCoreApplication(GuiMain);
index 25541df..d8afab6 100644 (file)
@@ -42,7 +42,7 @@ void Ui_MainWindowBase::do_update_recent_bubble(int drv)
 {
        int i;
        menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-       menu_bubbles[drv]->do_set_initialize_directory(p_config->initial_bubble_casette_dir);
+       menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
        if(GetBubbleCasetteIsProtected(drv)) {
                menu_bubbles[drv]->do_write_protect_media();
        } else {
@@ -57,18 +57,18 @@ int Ui_MainWindowBase::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(p_config->recent_bubble_casette_path[drv][num]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, p_config->recent_bubble_casette_path[drv], listBubbles[drv]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       s_path = QString::fromLocal8Bit(config.recent_bubble_casette_path[drv][num]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_bubble_casette_path[drv], listBubbles[drv]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
    
-       strcpy(p_config->initial_bubble_casette_dir, get_parent_dir((const _TCHAR *)path_shadow));
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strcpy(config.initial_bubble_casette_dir, get_parent_dir((const _TCHAR *)path_shadow));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        {
                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(p_config->initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(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);
@@ -86,16 +86,16 @@ void Ui_MainWindowBase::_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, p_config->recent_bubble_casette_path[drv], listBubbles[drv]);
-       strcpy(p_config->initial_bubble_casette_dir, get_parent_dir((const _TCHAR *)path_shadow));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_bubble_casette_path[drv], listBubbles[drv]);
+       strcpy(config.initial_bubble_casette_dir, get_parent_dir((const _TCHAR *)path_shadow));
        // Update List
-       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
        {
                emit sig_close_bubble(drv);
                emit sig_open_bubble(drv, fname, 0);
                menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-               menu_bubbles[drv]->do_set_initialize_directory(p_config->initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(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 eb3baa0..ee1172d 100644 (file)
@@ -49,7 +49,7 @@ void Ui_MainWindow::do_update_recent_disk(int drv)
 {
        if(emu == NULL) return;
        menu_fds[drv]->do_update_histories(listFDs[drv]);
-       menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
+       menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
        if(emu->is_floppy_disk_protected(drv)) {
                menu_fds[drv]->do_write_protect_media();
        } else {
@@ -64,19 +64,18 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
        QString s_path;
        char path_shadow[PATH_MAX];
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       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, p_config->recent_floppy_disk_path[drv], listFDs[drv]);
-       //strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       s_path = QString::fromLocal8Bit(config.recent_floppy_disk_path[drv][num]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_floppy_disk_path[drv], listFDs[drv]);
    
-       strncpy(p_config->initial_floppy_disk_dir,      get_parent_dir((const _TCHAR *)path_shadow), _MAX_PATH);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strncpy(config.initial_floppy_disk_dir,         get_parent_dir((const _TCHAR *)path_shadow), _MAX_PATH - 1);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        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(p_config->initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(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);
@@ -84,14 +83,14 @@ int Ui_MainWindow::set_recent_disk(int drv, int num)
                        menu_fds[drv]->do_clear_inner_media();
                }
                if(using_flags->get_max_drive() >= 2) {
-                       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+                       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
                        if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
                                if(((drv & 1) == 0) && (drv + 1 < using_flags->get_max_drive()) && (1 < emu->d88_file[drv].bank_num)) {
                                        int drv2 = drv + 1;
                                        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(p_config->initial_floppy_disk_dir);
+                                       menu_fds[drv2]->do_set_initialize_directory(config.initial_floppy_disk_dir);
                                        UPDATE_D88_LIST(drv2, listD88[drv2]);
                                        menu_fds[drv2]->do_update_inner_media(listD88[drv2], 1);
                                }
@@ -107,17 +106,17 @@ 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, p_config->recent_floppy_disk_path[drv], listFDs[drv]);
-       strcpy(p_config->initial_floppy_disk_dir,       get_parent_dir((const _TCHAR *)path_shadow));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_floppy_disk_path[drv], listFDs[drv]);
+       strcpy(config.initial_floppy_disk_dir,  get_parent_dir((const _TCHAR *)path_shadow));
        // Update List
-       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
        if(emu) {
                emit sig_close_disk(drv);
                //emu->LockVM();
                emit sig_open_disk(drv, fname, 0);
                menu_fds[drv]->do_update_histories(listFDs[drv]);
-               menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(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);
@@ -131,10 +130,10 @@ void Ui_MainWindow::_open_disk(int drv, const QString fname)
                                int drv2 = drv + 1;
                                emit sig_close_disk(drv2);
                                //emu->LockVM();
-                               strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
+                               strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
                                emit sig_open_disk(drv2, fname, 1);
                                menu_fds[drv2]->do_update_histories(listFDs[drv2]);
-                               menu_fds[drv2]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
+                               menu_fds[drv2]->do_set_initialize_directory(config.initial_floppy_disk_dir);
                                UPDATE_D88_LIST(drv2, listD88[drv2]);
                                menu_fds[drv2]->do_update_inner_media(listD88[drv2], 1);
                        }
index 3c0e880..69b3a67 100644 (file)
@@ -16,7 +16,7 @@ void Ui_MainWindow::do_update_recent_hard_disk(int drv)
 {
        if(emu == NULL) return;
        menu_hdds[drv]->do_update_histories(listHDDs[drv]);
-       menu_hdds[drv]->do_set_initialize_directory(p_config->initial_hard_disk_dir);
+       menu_hdds[drv]->do_set_initialize_directory(config.initial_hard_disk_dir);
 }
 
 int Ui_MainWindow::set_recent_hard_disk(int drv, int num) 
@@ -24,18 +24,18 @@ int Ui_MainWindow::set_recent_hard_disk(int drv, int num)
        QString s_path;
        char path_shadow[PATH_MAX];
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       s_path = QString::fromLocal8Bit(p_config->recent_hard_disk_path[drv][num]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, p_config->recent_hard_disk_path[drv], listHDDs[drv]);
+       s_path = QString::fromLocal8Bit(config.recent_hard_disk_path[drv][num]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_hard_disk_path[drv], listHDDs[drv]);
    
-       strncpy(p_config->initial_hard_disk_dir,        get_parent_dir((const _TCHAR *)path_shadow), _MAX_PATH);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strncpy(config.initial_hard_disk_dir,   get_parent_dir((const _TCHAR *)path_shadow), _MAX_PATH - 1);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        if(emu) {
                emit sig_close_hard_disk(drv);
                emit sig_open_hard_disk(drv, s_path);
                menu_hdds[drv]->do_update_histories(listHDDs[drv]);
-               menu_hdds[drv]->do_set_initialize_directory(p_config->initial_hard_disk_dir);
+               menu_hdds[drv]->do_set_initialize_directory(config.initial_hard_disk_dir);
                menu_hdds[drv]->do_clear_inner_media();
        }
        return 0;
@@ -47,17 +47,17 @@ void Ui_MainWindow::_open_hard_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, p_config->recent_hard_disk_path[drv], listHDDs[drv]);
-       strcpy(p_config->initial_floppy_disk_dir,       get_parent_dir((const _TCHAR *)path_shadow));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_hard_disk_path[drv], listHDDs[drv]);
+       strcpy(config.initial_floppy_disk_dir,  get_parent_dir((const _TCHAR *)path_shadow));
        // Update List
-       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
        if(emu) {
                emit sig_close_hard_disk(drv);
                //emu->LockVM();
                emit sig_open_hard_disk(drv, fname);
                menu_hdds[drv]->do_update_histories(listHDDs[drv]);
-               menu_hdds[drv]->do_set_initialize_directory(p_config->initial_hard_disk_dir);
+               menu_hdds[drv]->do_set_initialize_directory(config.initial_hard_disk_dir);
                menu_hdds[drv]->do_clear_inner_media();
        }
 }
index 7f4b90f..1a4b482 100644 (file)
@@ -58,7 +58,7 @@ void Ui_MainWindow::set_window(int mode)
                dest_x = (dest_x < 0) ? 0 : dest_x;
                dest_y = (dest_y < 0) ? 0 : dest_y;
                
-               p_config->window_mode = prev_window_mode = mode;
+               config.window_mode = prev_window_mode = mode;
                
                // set screen size to emu class
                emit sig_emu_set_display_size(width, height, width, height);
@@ -78,7 +78,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(p_config->rotate_type) {
+                               if(config.rotate_type) {
                                        int tmp_w = width;
                                        width = height;
                                        height = tmp_w;
@@ -86,7 +86,7 @@ void Ui_MainWindow::set_window(int mode)
                        }
 
                }
-               p_config->window_mode = mode;
+               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_osd(width);
                this->resize_statusbar(width, height);
index dcc87c2..282a512 100644 (file)
@@ -9,7 +9,7 @@ set(s_qt_emuutils_srcs
          )
 #include(cotire)
        
-SET(THIS_LIB_VERSION 2.9.1
+SET(THIS_LIB_VERSION 2.9.2
 
 if(WIN32)
 include (GenerateExportHeader)
index 061513c..5d10cd2 100644 (file)
@@ -1,6 +1,6 @@
 message("* qt/gui")
 
-set(THIS_LIB_VERSION 2.12.2)
+set(THIS_LIB_VERSION 2.12.3)
 #include(cotire)
 #include(PrecompiledHeader)
 
index bbced9e..2dae1f7 100644 (file)
@@ -610,10 +610,10 @@ int64_t CSP_Logger::get_console_list(char *buffer, int64_t buf_size, bool utf8,
                                if(l > 0) {
                                        memset(tmpbuf, 0x00, 8192);
                                        if(l >= 8192) l = 8192 -1;
-                                       strncpy(tmpbuf, ns.constData(), l);
+                                       if(l != 0) strncpy(tmpbuf, ns.constData(), l);
                                }
                                if(((int64_t)l + total_size) < buf_size) {
-                                       strncpy(pp, tmpbuf, l);
+                                       if(l != 0)strncpy(pp, tmpbuf, l);
                                        pp += l;
                                        total_size += (int64_t)l;
                                } else {
@@ -663,7 +663,7 @@ int64_t CSP_Logger::write_log(const _TCHAR *name, const char *domain_name, bool
                len = get_console_list(strbuf, 0x20000, utf8, (char *)domain_name, forget);
                if(len > 0x20000) break; // Illegal
                if(len <= 0) break;
-               if(fio->Fwrite(strbuf, (uint32_t)len, 1) != len) break;
+               if((int64_t)(fio->Fwrite(strbuf, (uint32_t)len, 1)) != len) break;
                n_len += len;
        } while(len > 0);
        fio->Fclose();
index 62e35fd..144d5f2 100644 (file)
@@ -48,8 +48,7 @@ DrawThreadClass::DrawThreadClass(OSD *o, CSP_Logger *logger,QObject *parent) : Q
        connect(this, SIGNAL(sig_push_frames_to_avio(int, int, int)), glv->extfunc, SLOT(paintGL_OffScreen(int, int, int)));
        //connect(this, SIGNAL(sig_call_draw_screen()), p_osd, SLOT(draw_screen()));
        //connect(this, SIGNAL(sig_call_no_draw_screen()), p_osd, SLOT(no_draw_screen()));
-       use_separate_thread_draw = false;
-       if(using_flags != NULL) use_separate_thread_draw = using_flags->get_config_ptr()->use_separate_thread_draw;
+       use_separate_thread_draw = config.use_separate_thread_draw;
        
        rec_frame_width = 640;
        rec_frame_height = 480;
index a739f1a..27f5c33 100644 (file)
@@ -46,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);
-       using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] = assigned_value;
+       config.joy_buttons[jsnum][button_num] = assigned_value;
 }
 
 void CSP_DropDownJoysticks::do_set_js_button_idx(int jsnum, int button_num, int assigned_value)
@@ -54,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);
-       using_flags->get_config_ptr()->joy_buttons[jsnum][button_num] = assigned_value;
+       config.joy_buttons[jsnum][button_num] = assigned_value;
 }
 
index 4d919af..20fc5d7 100644 (file)
@@ -31,10 +31,10 @@ CSP_DropDownJSButton::CSP_DropDownJSButton(USING_FLAGS *p, QWidget *parent, QStr
        }
        if((button_num < 16) && (button_num >= 0)) {
                if((jsnum < 4) && (jsnum >= 0)){
-                       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]);
+                       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]);
                        }
                }
        }
index b03c291..89e19d9 100644 (file)
@@ -57,10 +57,10 @@ EmuThreadClassBase::EmuThreadClassBase(META_MainWindow *rootWindow, USING_FLAGS
        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] = (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;
+                       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;
                }
        }
        keyMutex->lock();
@@ -85,8 +85,8 @@ void EmuThreadClassBase::calc_volume_from_balance(int num, int balance)
        volume_balance[num] = balance;
        right = level + balance;
        left  = level - balance;
-       using_flags->get_config_ptr()->sound_volume_l[num] = left;      
-       using_flags->get_config_ptr()->sound_volume_r[num] = right;
+       config.sound_volume_l[num] = left;      
+       config.sound_volume_r[num] = right;
 }
 
 void EmuThreadClassBase::calc_volume_from_level(int num, int level)
@@ -96,8 +96,8 @@ void EmuThreadClassBase::calc_volume_from_level(int num, int level)
        volume_avg[num] = level;
        right = level + balance;
        left  = level - balance;
-       using_flags->get_config_ptr()->sound_volume_l[num] = left;      
-       using_flags->get_config_ptr()->sound_volume_r[num] = right;
+       config.sound_volume_l[num] = left;      
+       config.sound_volume_r[num] = right;
 }
 
 void EmuThreadClassBase::doExit(void)
@@ -313,7 +313,7 @@ int EmuThreadClassBase::parse_command_queue(QStringList _l, int _begin)
                                        fileInfo = QFileInfo(_file);
                                }
                                if(fileInfo.isFile()) {
-                                       _TCHAR *path_shadow = fileInfo.absoluteFilePath().toLocal8Bit().constData();
+                                       const _TCHAR *path_shadow = (const _TCHAR *)(fileInfo.absoluteFilePath().toLocal8Bit().constData());
                                        if(_dom_type == QString::fromUtf8("vFloppyDisk")) {
                                                emit sig_open_fd(_dom_num, fileInfo.absoluteFilePath());
                                                if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
@@ -409,7 +409,7 @@ void EmuThreadClassBase::print_framerate(int frames)
                                                snprintf(buf, 255, _T("%s - %d fps (%d %%)"), get_device_name(), draw_frames, ratio);
                                        }
                                }
-                               if(p_config->romaji_to_kana) {
+                               if(config.romaji_to_kana) {
                                        message = QString::fromUtf8("[R]");
                                        message = message + QString::fromUtf8(buf);
                                } else {
index 37e4b50..8b8f3a1 100644 (file)
@@ -157,7 +157,7 @@ protected:
                        s->type = _type;
                        s->code = (uint32_t)key_fifo->read();
                        s->mod  = (uint32_t)key_fifo->read();
-                       uint32_t dummy = key_fifo->read();
+                       volatile uint32_t dummy = key_fifo->read();
                        s->repeat = false;
                } else {
                        s->type = 0;
index 42d0dde..fb0cc0b 100644 (file)
@@ -28,13 +28,13 @@ void Ui_MainWindowBase::OnSpecialReset(void)
 
 void Ui_MainWindowBase::do_emu_full_speed(bool flag)
 {
-       using_flags->get_config_ptr()->full_speed = flag;
+       config.full_speed = flag;
 }
 
 
 void Ui_MainWindowBase::OnCpuPower(int mode)
 {
-       using_flags->get_config_ptr()->cpu_power = mode;
+       config.cpu_power = mode;
        emit sig_emu_update_config();
 }
 
index b5d395f..eee1fe5 100644 (file)
@@ -821,8 +821,8 @@ void GLDraw_2_0::drawGridsVertical(void)
 
 void GLDraw_2_0::drawGrids(void)
 {
-       gl_grid_horiz = using_flags->get_config_ptr()->opengl_scanline_horiz;
-       gl_grid_vert  = using_flags->get_config_ptr()->opengl_scanline_vert;
+       gl_grid_horiz = config.opengl_scanline_horiz;
+       gl_grid_vert  = config.opengl_scanline_vert;
        if(gl_grid_horiz && (vert_lines > 0)) {
                drawGridsHorizonal();
        } // Will fix.
@@ -917,7 +917,7 @@ void GLDraw_2_0::drawScreenTexture(void)
        }
        if(uVramTextureID == NULL) return;
        QVector4D color;
-       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
+       smoosing = config.use_opengl_filters;
        if(set_brightness) {
                color = QVector4D(fBrightR, fBrightG, fBrightB, 1.0);
        } else {
@@ -982,7 +982,7 @@ void GLDraw_2_0::drawMain(QOpenGLShaderProgram *prg,
                                        prg->setUniformValue("tex_height", (float)p->height());
                                }
                                if(using_flags->is_use_screen_rotate()) {
-                                       if(using_flags->get_config_ptr()->rotate_type) {
+                                       if(config.rotate_type) {
                                                prg->setUniformValue("rotate", GL_TRUE);
                                        } else {
                                                prg->setUniformValue("rotate", GL_FALSE);
@@ -1211,7 +1211,7 @@ void GLDraw_2_0::paintGL(void)
                if(!using_flags->is_use_one_board_computer() && (using_flags->get_max_button() <= 0)) {
                        drawGrids();
                }
-               if(using_flags->get_config_ptr()->use_osd_virtual_media) drawOsdIcons();
+               if(config.use_osd_virtual_media) drawOsdIcons();
                extfunc_2->glFlush();
 }
 
index 883b432..492c445 100644 (file)
@@ -770,7 +770,7 @@ void GLDraw_3_0::uploadMainTexture(QImage *p, bool use_chromakey)
                                                                 GL_BGRA, GL_UNSIGNED_BYTE, p->constBits());
                extfunc->glBindTexture(GL_TEXTURE_2D, 0);
        }
-       if(using_flags->is_support_tv_render() && (using_flags->get_config_ptr()->rendering_type == CONFIG_RENDER_TYPE_TV)) {
+       if(using_flags->is_support_tv_render() && (config.rendering_type == CONFIG_RENDER_TYPE_TV)) {
                renderToTmpFrameBuffer_nPass(uVramTextureID->textureId(),
                                                                         screen_texture_width,
                                                                         screen_texture_height,
@@ -811,7 +811,7 @@ void GLDraw_3_0::drawScreenTexture(void)
        }
        
        QVector4D color;
-       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
+       smoosing = config.use_opengl_filters;
        if(set_brightness) {
                color = QVector4D(fBrightR, fBrightG, fBrightB, 1.0);
        } else {
@@ -874,7 +874,7 @@ void GLDraw_3_0::drawMain(QOpenGLShaderProgram *prg,
                        prg->setUniformValue(ii,  (float)screen_texture_height);
                }
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                prg->setUniformValue("rotate", GL_TRUE);
                        } else {
                                prg->setUniformValue("rotate", GL_FALSE);
@@ -926,7 +926,7 @@ void GLDraw_3_0::drawMain(QOpenGLShaderProgram *prg,
                        prg->setUniformValue(ii,  color);
                }
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                prg->setUniformValue("rotate", GL_TRUE);
                        } else {
                                prg->setUniformValue("rotate", GL_FALSE);
@@ -1018,7 +1018,7 @@ void GLDraw_3_0::drawButtonsMain(int num, bool f_smoosing)
                                prg->setUniformValue(ii, GL_FALSE);
                        }
                        if(using_flags->is_use_screen_rotate()) {
-                               if(using_flags->get_config_ptr()->rotate_type) {
+                               if(config.rotate_type) {
                                        prg->setUniformValue("rotate", GL_TRUE);
                                } else {
                                        prg->setUniformValue("rotate", GL_FALSE);
@@ -1057,7 +1057,7 @@ void GLDraw_3_0::drawButtons(void)
 void GLDraw_3_0::drawBitmapTexture(void)
 {
        QVector4D color = QVector4D(1.0f, 1.0f, 1.0f, 1.0f);
-       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
+       smoosing = config.use_opengl_filters;
        if(uBitmapTextureID == NULL) return;
        if(using_flags->is_use_one_board_computer()) {
                extfunc->glDisable(GL_BLEND);
@@ -1214,7 +1214,7 @@ void GLDraw_3_0::paintGL(void)
                extfunc->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                extfunc->glDisable(GL_DEPTH_TEST);
                //drawOsdLeds();
-               if(using_flags->get_config_ptr()->use_osd_virtual_media) drawOsdIcons();
+               if(config.use_osd_virtual_media) drawOsdIcons();
                extfunc->glDisable(GL_BLEND);
                if(!using_flags->is_use_one_board_computer() && (using_flags->get_max_button() <= 0)) {
                        drawGrids();
index cd59aac..9f1e8d2 100644 (file)
@@ -659,7 +659,7 @@ void GLDraw_ES_2::uploadMainTexture(QImage *p, bool use_chromakey)
                extfunc->glBindTexture(GL_TEXTURE_2D, 0);
        }
 #if 1
-       if(using_flags->is_support_tv_render() && (using_flags->get_config_ptr()->rendering_type == CONFIG_RENDER_TYPE_TV)) {
+       if(using_flags->is_support_tv_render() && (config.rendering_type == CONFIG_RENDER_TYPE_TV)) {
                renderToTmpFrameBuffer_nPass(uVramTextureID->textureId(),
                                                                         screen_texture_width,
                                                                         screen_texture_height,
@@ -706,7 +706,7 @@ void GLDraw_ES_2::drawScreenTexture(void)
        }
 
        QVector4D color;
-       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
+       smoosing = config.use_opengl_filters;
        if(set_brightness) {
                color = QVector4D(fBrightR, fBrightG, fBrightB, 1.0);
        } else {
@@ -773,7 +773,7 @@ void GLDraw_ES_2::drawMain(QOpenGLShaderProgram *prg,
                        prg->setUniformValue(ii,  (float)screen_texture_height);
                }
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                prg->setUniformValue("rotate", GL_TRUE);
                        } else {
                                prg->setUniformValue("rotate", GL_FALSE);
@@ -833,7 +833,7 @@ void GLDraw_ES_2::drawMain(QOpenGLShaderProgram *prg,
                        prg->setUniformValue(ii,  color);
                }
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                prg->setUniformValue("rotate", GL_TRUE);
                        } else {
                                prg->setUniformValue("rotate", GL_FALSE);
@@ -925,7 +925,7 @@ void GLDraw_ES_2::drawButtonsMain(int num, bool f_smoosing)
                                prg->setUniformValue(ii, GL_FALSE);
                        }
                        if(using_flags->is_use_screen_rotate()) {
-                               if(using_flags->get_config_ptr()->rotate_type) {
+                               if(config.rotate_type) {
                                        prg->setUniformValue("rotate", GL_TRUE);
                                } else {
                                        prg->setUniformValue("rotate", GL_FALSE);
@@ -962,7 +962,7 @@ void GLDraw_ES_2::drawButtons(void)
 void GLDraw_ES_2::drawBitmapTexture(void)
 {
        QVector4D color = QVector4D(1.0f, 1.0f, 1.0f, 1.0f);
-       smoosing = using_flags->get_config_ptr()->use_opengl_filters;
+       smoosing = config.use_opengl_filters;
 
        if(using_flags->is_use_one_board_computer() && (uBitmapTextureID != NULL)) {
                //extfunc->glDisable(GL_BLEND);
@@ -1116,7 +1116,7 @@ void GLDraw_ES_2::paintGL(void)
                extfunc->glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
                extfunc->glDisable(GL_DEPTH_TEST);
                //drawOsdLeds();
-               if(using_flags->get_config_ptr()->use_osd_virtual_media) drawOsdIcons();
+               if(config.use_osd_virtual_media) drawOsdIcons();
                extfunc->glDisable(GL_BLEND);
                if(!using_flags->is_use_one_board_computer() && (using_flags->get_max_button() <= 0)) {
                        drawGrids();
index 30bd65c..f6ff761 100644 (file)
@@ -100,7 +100,8 @@ void JoyThreadClass::joystick_plugged(int num)
                if(controller_table[num] != NULL) {
                        names[num] = QString::fromUtf8(SDL_GameControllerNameForIndex(num));
                        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "JoyThread : Controller %d : %s : is plugged.", num, names[num].toUtf8().constData());
-                       strncpy(p_config->assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
+                       strncpy(config.assigned_joystick_name[num], names[num].toUtf8().constData(),
+                                       (sizeof(config.assigned_joystick_name)  / sizeof(char)) - 1);
                        joy_num[num] = num;
                }
        } else 
@@ -115,7 +116,8 @@ void JoyThreadClass::joystick_plugged(int num)
                                        joy_num[i] = SDL_JoystickInstanceID(joyhandle[i]);
                                        names[i] = QString::fromUtf8(SDL_JoystickNameForIndex(num));
                                        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_GENERAL, "JoyThread : Joystick %d : %s : is plugged.", num, names[i].toUtf8().data());
-                                       strncpy(p_config->assigned_joystick_name[num], names[num].toUtf8().constData(), 255);
+                                       strncpy(config.assigned_joystick_name[num], names[num].toUtf8().constData(),
+                                                       (sizeof(config.assigned_joystick_name)  / sizeof(char)) - 1);
                                        break;
                                }
                        }
@@ -147,7 +149,7 @@ void JoyThreadClass::joystick_unplugged(int num)
                }
        }
        names[num] = QString::fromUtf8("");
-       memset(p_config->assigned_joystick_name[num], 0x00, 255);
+       memset(config.assigned_joystick_name[num], 0x00, 255);
 }      
 
 void JoyThreadClass::x_axis_changed(int index, int value)
index daca6d3..e7346de 100644 (file)
@@ -88,7 +88,7 @@ QT_BEGIN_NAMESPACE
                __action[_i]->setEnabled(__enabled);                                                    \
                __action[_i]->binds->setValue1(_i);                                                             \
                __menu->addAction(__action[_i]);                                                                \
-               if(using_flags->get_config_ptr()->__cnf[_i][0]) __action[_i]->setChecked(true); \
+               if(config.__cnf[_i][0]) __action[_i]->setChecked(true); \
                connect(__action[_i], __signal1, __action[_i], __slot1);                \
                connect(__action[_i], __signal2, this, __slot2);                                \
        }                                                                                                                                       \
index 5aa2388..22ef671 100644 (file)
 void Ui_MainWindowBase::set_latency(int num)
 {
        if((num < 0) || (num >= 8)) return;
-       using_flags->get_config_ptr()->sound_latency = num;
+       config.sound_latency = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_freq(int num)
 {
        if((num < 0) || (num >= 16)) return;
-       using_flags->get_config_ptr()->sound_frequency = num;
+       config.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;
-       using_flags->get_config_ptr()->sound_type = num;
+       config.sound_type = num;
        emit sig_emu_update_config();
 }
 
@@ -57,69 +57,69 @@ 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;
-       using_flags->get_config_ptr()->monitor_type = num;
+       config.monitor_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_scan_line(bool flag)
 {
-       using_flags->get_config_ptr()->scan_line = flag;
+       config.scan_line = flag;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_screen_rotate(bool flag)
 {
-       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();
+       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();
        }
 }
 
 void Ui_MainWindowBase::set_gl_crt_filter(bool flag)
 {
-       using_flags->get_config_ptr()->use_opengl_filters = flag;
+       config.use_opengl_filters = flag;
 }
 
 void Ui_MainWindowBase::set_cmt_sound(bool flag)
 {
-       //using_flags->get_config_ptr()->tape_sound = flag;
+       //config.tape_sound = flag;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_mouse_type(int num)
 {
        if((num >= using_flags->get_use_mouse_type()) && (num < 0)) return;
-       using_flags->get_config_ptr()->mouse_type = num;
+       config.mouse_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_device_type(int num)
 {
        if((num >= using_flags->get_use_device_type()) && (num < 0)) return;
-       using_flags->get_config_ptr()->device_type = num;
+       config.device_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_keyboard_type(int num)
 {
        if((num >= using_flags->get_use_keyboard_type()) && (num < 0)) return;
-       using_flags->get_config_ptr()->keyboard_type = num;
+       config.keyboard_type = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::set_joystick_type(int num)
 {
        if((num >= using_flags->get_use_joystick_type()) && (num < 0)) return;
-       using_flags->get_config_ptr()->joystick_type = num;
+       config.joystick_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;
-       using_flags->get_config_ptr()->drive_type = num;
+       config.drive_type = num;
        emit sig_emu_update_config();
 }
    
@@ -128,7 +128,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(using_flags->get_config_ptr()->rotate_type) {
+               if(config.rotate_type) {
                        this->graphicsView->setFixedSize(h, w);
                        this->resize_statusbar(h, w);
                        //emit sig_resize_osd(h);
@@ -155,14 +155,14 @@ void Ui_MainWindowBase::set_screen_aspect(int num)
        // 2 = ASPECT(SCale Y)
        // 3 = ASPECT(Scale X,Y)
        
-       using_flags->get_config_ptr()->window_stretch_type = num;
+       config.window_stretch_type = num;
        
        if(using_flags->get_emu()) {
                int w, h, n;
                float nd, ww, hh;
                float xzoom = using_flags->get_screen_x_zoom();
                float yzoom = using_flags->get_screen_y_zoom();
-               n = using_flags->get_config_ptr()->window_mode;
+               n = config.window_mode;
                if(n < 0) n = 1;
                nd = actionScreenSize[n]->binds->getDoubleValue();
                ww = (float)using_flags->get_screen_width();
@@ -173,7 +173,7 @@ void Ui_MainWindowBase::set_screen_aspect(int num)
                        float par_w = (float)using_flags->get_screen_width_aspect() / ww;
                        float par_h = (float)using_flags->get_screen_height_aspect() / hh;
                        //double par = par_h / par_w;
-                       switch(using_flags->get_config_ptr()->window_stretch_type) {
+                       switch(config.window_stretch_type) {
                        case 0: // refer to X and Y.
                                ww = ww * nd * xzoom;
                                hh = hh * nd * yzoom;
@@ -219,7 +219,7 @@ void Ui_MainWindowBase::ConfigDeviceType(void)
                        actionDeviceType[ii]->setCheckable(true);
                        actionDeviceType[ii]->setVisible(true);
                        actionDeviceType[ii]->binds->setValue1(ii);
-                       if(using_flags->get_config_ptr()->device_type == ii) actionDeviceType[ii]->setChecked(true);
+                       if(config.device_type == ii) actionDeviceType[ii]->setChecked(true);
                        menuDeviceType->addAction(actionDeviceType[ii]);
                        connect(actionDeviceType[ii], SIGNAL(triggered()),
                                actionDeviceType[ii]->binds, SLOT(do_set_device_type()));
@@ -246,7 +246,7 @@ void Ui_MainWindowBase::ConfigJoystickType(void)
                        actionJoystickType[ii]->setCheckable(true);
                        actionJoystickType[ii]->setVisible(true);
                        actionJoystickType[ii]->binds->setValue1(ii);
-                       if(using_flags->get_config_ptr()->joystick_type == ii) actionJoystickType[ii]->setChecked(true);
+                       if(config.joystick_type == ii) actionJoystickType[ii]->setChecked(true);
                        menuJoystickType->addAction(actionJoystickType[ii]);
                        connect(actionJoystickType[ii], SIGNAL(triggered()),
                                actionJoystickType[ii]->binds, SLOT(do_set_joystick_type()));
@@ -273,7 +273,7 @@ void Ui_MainWindowBase::ConfigKeyboardType(void)
                        actionKeyboardType[ii]->setCheckable(true);
                        actionKeyboardType[ii]->setVisible(true);
                        actionKeyboardType[ii]->binds->setValue1(ii);
-                       if(using_flags->get_config_ptr()->keyboard_type == ii) actionKeyboardType[ii]->setChecked(true);
+                       if(config.keyboard_type == ii) actionKeyboardType[ii]->setChecked(true);
                        menuKeyboardType->addAction(actionKeyboardType[ii]);
                        connect(actionKeyboardType[ii], SIGNAL(triggered()),
                                actionKeyboardType[ii]->binds, SLOT(do_set_keyboard_type()));
@@ -300,7 +300,7 @@ void Ui_MainWindowBase::ConfigMouseType(void)
                        actionMouseType[ii]->setCheckable(true);
                        actionMouseType[ii]->setVisible(true);
                        actionMouseType[ii]->binds->setValue1(ii);
-                       if(using_flags->get_config_ptr()->mouse_type == ii) actionMouseType[ii]->setChecked(true);
+                       if(config.mouse_type == ii) actionMouseType[ii]->setChecked(true);
                        menuMouseType->addAction(actionMouseType[ii]);
                        connect(actionMouseType[ii], SIGNAL(triggered()),
                                actionMouseType[ii]->binds, SLOT(do_set_mouse_type()));
@@ -327,7 +327,7 @@ void Ui_MainWindowBase::ConfigDriveType(void)
                        actionDriveType[i]->setCheckable(true);
                        actionDriveType[i]->setVisible(true);
                        actionDriveType[i]->binds->setValue1(i);
-                       if(i == using_flags->get_config_ptr()->drive_type) actionDriveType[i]->setChecked(true); // Need to write configure
+                       if(i == config.drive_type) actionDriveType[i]->setChecked(true); // Need to write configure
                        actionGroup_DriveType->addAction(actionDriveType[i]);
                        menuDriveType->addAction(actionDriveType[i]);
                        connect(actionDriveType[i], SIGNAL(triggered()),
@@ -354,7 +354,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 == using_flags->get_config_ptr()->sound_type) actionSoundDevice[i]->setChecked(true); // Need to write configure
+                       if(i == config.sound_type) actionSoundDevice[i]->setChecked(true); // Need to write configure
                        tmps = QString::fromUtf8("actionSoundDevice_");
                        actionSoundDevice[i]->setObjectName(tmps + QString::number(i));
                        menuSoundDevice->addAction(actionSoundDevice[i]);
@@ -387,7 +387,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 == using_flags->get_config_ptr()->printer_type) actionPrintDevice[i]->setChecked(true); // Need to write configure
+                       if(i == config.printer_type) actionPrintDevice[i]->setChecked(true); // Need to write configure
                        tmps = QString::fromUtf8("actionPrintDevice_");
                        actionPrintDevice[i]->setObjectName(tmps + QString::number(i));
                        menuPrintDevice->addAction(actionPrintDevice[i]);
@@ -411,6 +411,6 @@ void Ui_MainWindowBase::set_printer_device(int p_type)
        } else {
                if(p_type >= 8) p_type = 0;
        }
-       using_flags->get_config_ptr()->printer_type = p_type;
+       config.printer_type = p_type;
        emit sig_emu_update_config();
 }
index 8b339cd..92cc874 100644 (file)
@@ -119,7 +119,7 @@ void Menu_BinaryClass::do_open_save_dialog()
                QDir dir;
                char app[PATH_MAX];
                initial_dir = dir.currentPath();
-               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX);
+               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX - 1);
                initial_dir = QString::fromLocal8Bit(get_parent_dir(app));
        }
        dlg.setOption(QFileDialog::ReadOnly, false);
index 0fd9a8e..efcf747 100644 (file)
@@ -99,13 +99,13 @@ void Menu_CMTClass::create_pulldown_menu_device_sub(void)
        action_recording->setVisible(true);
        action_recording->setCheckable(false);
 
-       if(using_flags->get_config_ptr()->wave_shaper == 0) {
+       if(config.wave_shaper == 0) {
                action_wave_shaper->setChecked(false);
        } else {
                action_wave_shaper->setChecked(true);
        }
        if(using_flags->is_machine_cmt_mz_series()) {
-               if(using_flags->get_config_ptr()->direct_load_mzt == 0) {
+               if(config.direct_load_mzt == 0) {
                        action_direct_load_mzt->setChecked(false);
                } else {
                        action_direct_load_mzt->setChecked(true);
@@ -228,7 +228,7 @@ void Menu_CMTClass::do_open_rec_dialog()
                QDir dir;
                char app[PATH_MAX];
                initial_dir = dir.currentPath();
-               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX);
+               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX - 1);
                initial_dir = QString::fromLocal8Bit(get_parent_dir(app));
        }
        dlg.setOption(QFileDialog::ReadOnly, false);
index 5aead23..2464344 100644 (file)
@@ -112,7 +112,7 @@ void Ui_MainWindowBase::ConfigCpuSpeed(void)
        actionGroup_CpuSpeed->addAction(actionSpeed_x16);
        //actionGroup_CpuSpeed->addAction(actionSpeed_FULL);
 
-       switch(using_flags->get_config_ptr()->cpu_power) {
+       switch(config.cpu_power) {
        case 0:
                actionSpeed_x1->setChecked(true);
                break;
@@ -129,7 +129,7 @@ void Ui_MainWindowBase::ConfigCpuSpeed(void)
                actionSpeed_x16->setChecked(true);
                break;
        default:
-               using_flags->get_config_ptr()->cpu_power = 0;
+               config.cpu_power = 0;
                actionSpeed_x1->setChecked(true);
                break;
        }
@@ -137,7 +137,7 @@ void Ui_MainWindowBase::ConfigCpuSpeed(void)
 void Ui_MainWindowBase::do_change_boot_mode(int mode)
 {
        if((mode < 0) || (mode >= 8)) return;
-       using_flags->get_config_ptr()->boot_mode = mode;
+       config.boot_mode = mode;
        emit sig_emu_update_config();
 }
 
@@ -160,7 +160,7 @@ void Ui_MainWindowBase::ConfigCPUBootMode(int num)
                tmps = QString::fromUtf8("actionBootMode_") + tmps;
                actionBootMode[i]->setObjectName(tmps);
                actionBootMode[i]->setCheckable(true);
-               if(i == using_flags->get_config_ptr()->boot_mode) actionBootMode[i]->setChecked(true);
+               if(i == config.boot_mode) actionBootMode[i]->setChecked(true);
                actionBootMode[i]->binds->setValue1(i);
                menuBootMode->addAction(actionBootMode[i]);
                actionGroup_BootMode->addAction(actionBootMode[i]);
@@ -173,7 +173,7 @@ void Ui_MainWindowBase::ConfigCPUBootMode(int num)
 void Ui_MainWindowBase::do_change_cpu_type(int mode)
 {
        if((mode < 0) || (mode >= 8)) return;
-       using_flags->get_config_ptr()->cpu_type = mode;
+       config.cpu_type = mode;
        emit sig_emu_update_config();
 }
 
@@ -194,7 +194,7 @@ void Ui_MainWindowBase::ConfigCPUTypes(int num)
                tmps = QString::fromUtf8("actionCpuType_") + tmps;
                actionCpuType[i]->setObjectName(tmps);
                actionCpuType[i]->setCheckable(true);
-               if(i == using_flags->get_config_ptr()->cpu_type) actionCpuType[i]->setChecked(true);
+               if(i == config.cpu_type) actionCpuType[i]->setChecked(true);
                actionCpuType[i]->binds->setValue1(i);
                menuCpuType->addAction(actionCpuType[i]);
                actionGroup_CpuType->addAction(actionCpuType[i]);
@@ -240,7 +240,7 @@ void Ui_MainWindowBase::ConfigControlMenu(void)
                        _TCHAR tmpbuf[_MAX_PATH];
                        actionSave_State[i] = new Action_Control(this, using_flags);
 
-                       strncpy(tmpbuf, create_local_path(_T("%s.sta%d"), using_flags->get_config_name().toLocal8Bit().constData(), i), _MAX_PATH);
+                       strncpy(tmpbuf, create_local_path(_T("%s.sta%d"), using_flags->get_config_name().toLocal8Bit().constData(), i), _MAX_PATH - 1);
                                
                        tmps = QString::fromUtf8("");
                        tmpss = QString::fromUtf8("");
@@ -418,6 +418,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;
-       using_flags->get_config_ptr()->sound_type = num;
+       config.sound_type = num;
        emit sig_emu_update_config();
 }
index b251887..ce0f0e4 100644 (file)
@@ -43,7 +43,7 @@ void Menu_FDClass::create_pulldown_menu_device_sub(void)
        action_count_immediate->setCheckable(true);
        action_count_immediate->binds->setDrive(media_drive);
        
-       p = using_flags->get_config_ptr();
+       p = &config;
        if(p != NULL) {
                if(p->correct_disk_timing[media_drive]) action_correct_timing->setChecked(true);
                if(p->ignore_disk_crc[media_drive]) action_ignore_crc_error->setChecked(true);
index b4a8a6e..1648c7c 100644 (file)
@@ -204,7 +204,7 @@ USING_FLAGS::USING_FLAGS(config_t *cfg)
        machine_has_pcengine = false;
        machine_sc3000 = false;
        machine_z80tvgame = false;
-       p_config = cfg;
+       //p_config = cfg;
 }
 
 USING_FLAGS::~USING_FLAGS()
index babc93d..979eeff 100644 (file)
@@ -131,7 +131,7 @@ void Action_Control::do_set_dev_log_to_syslog(bool f)
 
 void Ui_MainWindowBase::do_set_window_focus_type(bool flag)
 {
-       using_flags->get_config_ptr()->focus_with_click = flag;
+       config.focus_with_click = flag;
        if(flag) {
                graphicsView->setFocusPolicy(Qt::ClickFocus);
                graphicsView->setFocus(0);
@@ -156,31 +156,31 @@ void Ui_MainWindowBase::do_browse_document(QString fname)
 void Ui_MainWindowBase::do_set_sound_files_fdd(bool f)
 {
        if(f) {
-               using_flags->get_config_ptr()->sound_noise_fdd = 1;
+               config.sound_noise_fdd = 1;
        } else {
-               using_flags->get_config_ptr()->sound_noise_fdd = 0;
+               config.sound_noise_fdd = 0;
        }
 }
 
 void Ui_MainWindowBase::do_set_sound_files_relay(bool f)
 {
        if(f) {
-               using_flags->get_config_ptr()->sound_noise_cmt = 1;
+               config.sound_noise_cmt = 1;
        } else {
-               using_flags->get_config_ptr()->sound_noise_cmt = 0;
+               config.sound_noise_cmt = 0;
        }
 }
 
 
 void Ui_MainWindowBase::do_set_conslog(bool f)
 {
-       using_flags->get_config_ptr()->log_to_console = f;
+       config.log_to_console = f;
        csp_logger->set_log_stdout(-1, f);
 }
 
 void Ui_MainWindowBase::do_set_syslog(bool f)
 {
-       using_flags->get_config_ptr()->log_to_syslog = f;
+       config.log_to_syslog = f;
        csp_logger->set_log_syslog(-1, f);
 }
 
@@ -215,32 +215,32 @@ void Ui_MainWindowBase::do_update_device_node_name(int id, const _TCHAR *name)
 
 void Ui_MainWindowBase::do_set_logging_fdc(bool f)
 {
-       using_flags->get_config_ptr()->special_debug_fdc = f;
+       config.special_debug_fdc = f;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::do_set_dev_log_to_console(int num, bool f)
 {
        csp_logger->set_device_node_log(num, 2, CSP_LOG_DEBUG, f);
-       using_flags->get_config_ptr()->dev_log_to_console[num][0] = f;
+       config.dev_log_to_console[num][0] = f;
 }
 
 void Ui_MainWindowBase::do_set_state_log_to_console(bool f)
 {
        csp_logger->set_state_log(2, f);
-       using_flags->get_config_ptr()->state_log_to_console = f;
+       config.state_log_to_console = f;
 }
 
 void Ui_MainWindowBase::do_set_state_log_to_syslog(bool f)
 {
        csp_logger->set_state_log(1, f);
-       using_flags->get_config_ptr()->state_log_to_syslog = f;
+       config.state_log_to_syslog = f;
 }
 
 void Ui_MainWindowBase::do_set_state_log_to_record(bool f)
 {
        csp_logger->set_state_log(0, f);
-       using_flags->get_config_ptr()->state_log_to_recording = f;
+       config.state_log_to_recording = f;
 }
 
 
@@ -248,14 +248,14 @@ void Ui_MainWindowBase::do_set_state_log_to_record(bool f)
 void Ui_MainWindowBase::do_set_emulate_cursor_as(int num)
 {
        if((num < 0) || (num > 2)) return;
-       using_flags->get_config_ptr()->cursor_as_ten_key = num;
+       config.cursor_as_ten_key = num;
        emit sig_emu_update_config();
 }
 
 void Ui_MainWindowBase::do_set_dev_log_to_syslog(int num, bool f)
 {
        csp_logger->set_device_node_log(num, 2, CSP_LOG_DEBUG, f);
-       using_flags->get_config_ptr()->dev_log_to_syslog[num][0] = f;
+       config.dev_log_to_syslog[num][0] = f;
 }
 
 void Ui_MainWindowBase::do_select_render_platform(int num)
@@ -289,9 +289,9 @@ void Ui_MainWindowBase::do_select_render_platform(int num)
                break;
        }
        if(_type >= 0) {
-               using_flags->get_config_ptr()->render_platform = _type;
-               using_flags->get_config_ptr()->render_major_version = _major;
-               using_flags->get_config_ptr()->render_minor_version = _minor;
+               config.render_platform = _type;
+               config.render_major_version = _major;
+               config.render_minor_version = _minor;
        }
 }
 
@@ -299,16 +299,16 @@ void Ui_MainWindowBase::set_dipsw(int num, bool flag)
 {
        if((num < 0) || (num >= 32)) return;
        if(flag) {
-               using_flags->get_config_ptr()->dipswitch = using_flags->get_config_ptr()->dipswitch | (1 << num);
+               config.dipswitch = config.dipswitch | (1 << num);
        } else {
-               using_flags->get_config_ptr()->dipswitch = using_flags->get_config_ptr()->dipswitch & ~(1 << num);
+               config.dipswitch = config.dipswitch & ~(1 << num);
        }
 }
 
 bool Ui_MainWindowBase::get_dipsw(int num)
 {
        if((num < 0) || (num >= 32)) return false;
-       if(((1 << num) & using_flags->get_config_ptr()->dipswitch) == 0) return false;
+       if(((1 << num) & config.dipswitch) == 0) return false;
        return true;
 }
 
@@ -355,10 +355,10 @@ void Ui_MainWindowBase::setupUi(void)
 
                QSurfaceFormat fmt;
                {
-                       int render_type = using_flags->get_config_ptr()->render_platform;
+                       int render_type = config.render_platform;
                        QOpenGLContext *glContext = QOpenGLContext::globalShareContext();
-                       //int _major_version = using_flags->get_config_ptr()->render_major_version;
-                       //int _minor_version = using_flags->get_config_ptr()->render_minor_version;
+                       //int _major_version = config.render_major_version;
+                       //int _minor_version = config.render_minor_version;
 
                        if(render_type == CONFIG_RENDER_PLATFORM_OPENGL_ES) {
                                fmt.setRenderableType(QSurfaceFormat::OpenGLES);
@@ -386,7 +386,7 @@ void Ui_MainWindowBase::setupUi(void)
        bitmapImage = NULL;
        driveData = new CSP_DockDisks(this, using_flags);
        MainWindow->setDockOptions(QMainWindow::AnimatedDocks);
-       if(using_flags->get_config_ptr()->virtual_media_position > 0) {
+       if(config.virtual_media_position > 0) {
                driveData->setVisible(true);
        } else {        
                driveData->setVisible(false);
@@ -397,7 +397,7 @@ void Ui_MainWindowBase::setupUi(void)
        pCentralLayout->setContentsMargins(0, 0, 0, 0);
        pCentralLayout->addWidget(graphicsView);
        pCentralLayout->addWidget(driveData);
-       switch(using_flags->get_config_ptr()->virtual_media_position) {
+       switch(config.virtual_media_position) {
        case 0:
                pCentralLayout->setDirection(QBoxLayout::TopToBottom);
                pCentralLayout->removeWidget(driveData);
@@ -427,13 +427,13 @@ void Ui_MainWindowBase::setupUi(void)
        pCentralWidget->setLayout(pCentralLayout);
        MainWindow->setCentralWidget(pCentralWidget);
        
-       if(using_flags->get_config_ptr()->focus_with_click) {
+       if(config.focus_with_click) {
                graphicsView->setFocusPolicy(Qt::ClickFocus);
                graphicsView->setFocus(0);
        } else {
                graphicsView->setFocusPolicy(Qt::NoFocus);
        }
-       driveData->setOrientation(using_flags->get_config_ptr()->virtual_media_position);
+       driveData->setOrientation(config.virtual_media_position);
        connect(this, SIGNAL(sig_set_orientation_osd(int)), driveData, SLOT(setOrientation(int)));
        connect(graphicsView, SIGNAL(sig_resize_osd(int)), driveData, SLOT(setScreenWidth(int)));
 
@@ -681,16 +681,16 @@ void Ui_MainWindowBase::setupUi(void)
        SET_HELP_MENUENTRY(menuHELP, actionHelp_License, "menuHelp_License", "LICENSE.txt");
        SET_HELP_MENUENTRY(menuHELP, actionHelp_License_JP, "menuHelp_License_JP", "LICENSE.ja.txt");
        
-       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;
+       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;
        w = using_flags->get_screen_width();
        h = using_flags->get_screen_height();
-       if(actionScreenSize[using_flags->get_config_ptr()->window_mode] != NULL) {
-               double nd = actionScreenSize[using_flags->get_config_ptr()->window_mode]->binds->getDoubleValue();
+       if(actionScreenSize[config.window_mode] != NULL) {
+               double nd = actionScreenSize[config.window_mode]->binds->getDoubleValue();
                w = (int)(nd * (double)w);
                h = (int)(nd * (double)h);
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                int tmp_w = w;
                                w = h;
                                h = tmp_w;
@@ -698,7 +698,7 @@ void Ui_MainWindowBase::setupUi(void)
                }
        } else {
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                w = 600;
                                h = 960;
                        } else {                   
@@ -718,9 +718,9 @@ void Ui_MainWindowBase::setupUi(void)
                }
        }
        this->set_screen_size(w, h);
-       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();
+       this->set_screen_aspect(config.window_stretch_type);
+       if(actionScreenSize[config.window_mode] != NULL) {
+               double nd = actionScreenSize[config.window_mode]->binds->getDoubleValue();
                graphicsView->do_set_screen_multiply(nd);
        }
        if(using_flags->is_use_joystick()) {
@@ -863,18 +863,18 @@ void Ui_MainWindowBase::retranselateUi_Depended_OSD(void)
 
 void Ui_MainWindowBase::do_set_roma_kana(bool flag)
 {
-       using_flags->get_config_ptr()->romaji_to_kana = flag;
+       config.romaji_to_kana = flag;
        emit sig_set_roma_kana(flag);
 }
 
 void Ui_MainWindowBase::do_set_numpad_enter_as_fullkey(bool flag)
 {
-       using_flags->get_config_ptr()->numpad_enter_as_fullkey = flag;
+       config.numpad_enter_as_fullkey = flag;
 }
 
 void Ui_MainWindowBase::do_set_print_cpu_statistics(bool flag)
 {
-       using_flags->get_config_ptr()->print_statistics = flag;
+       config.print_statistics = flag;
 }
 
 void Ui_MainWindowBase::CreateEmulatorMenu(void)
@@ -937,7 +937,7 @@ void Ui_MainWindowBase::ConfigMonitorType(void)
                        actionMonitorType[ii]->setCheckable(true);
                        actionMonitorType[ii]->setVisible(true);
                        actionMonitorType[ii]->binds->setValue1(ii);
-                       if(using_flags->get_config_ptr()->monitor_type == ii) actionMonitorType[ii]->setChecked(true);
+                       if(config.monitor_type == ii) actionMonitorType[ii]->setChecked(true);
                        menuMonitorType->addAction(actionMonitorType[ii]);
                        connect(actionMonitorType[ii], SIGNAL(triggered()),
                                        actionMonitorType[ii]->binds, SLOT(do_set_monitor_type()));
@@ -959,7 +959,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                action_DispVirtualMedias[i] = new Action_Control(this, using_flags);
                action_DispVirtualMedias[i]->setCheckable(true);
                action_DispVirtualMedias[i]->setChecked(false);
-               if(i == using_flags->get_config_ptr()->virtual_media_position) action_DispVirtualMedias[i]->setChecked(true);
+               if(i == config.virtual_media_position) action_DispVirtualMedias[i]->setChecked(true);
                action_DispVirtualMedias[i]->setEnabled(true);
                actionGroup_DispVirtualMedias->addAction(action_DispVirtualMedias[i]);
                menu_DispVirtualMedias->addAction(action_DispVirtualMedias[i]);
@@ -970,13 +970,13 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                        
        if(using_flags->is_use_auto_key()) {
                // ToDo: Setup if checked.
-               SET_ACTION_SINGLE(action_UseRomaKana, true, true, (using_flags->get_config_ptr()->romaji_to_kana)); 
+               SET_ACTION_SINGLE(action_UseRomaKana, true, true, (config.romaji_to_kana)); 
                connect(action_UseRomaKana, SIGNAL(toggled(bool)), this, SLOT(do_set_roma_kana(bool)));
        }
-       SET_ACTION_SINGLE(action_NumPadEnterAsFullkey, true, true, (using_flags->get_config_ptr()->numpad_enter_as_fullkey));
+       SET_ACTION_SINGLE(action_NumPadEnterAsFullkey, true, true, (config.numpad_enter_as_fullkey));
        connect(action_NumPadEnterAsFullkey, SIGNAL(toggled(bool)), this, SLOT(do_set_numpad_enter_as_fullkey(bool)));
 
-       SET_ACTION_SINGLE(action_PrintCpuStatistics, true, true, (using_flags->get_config_ptr()->print_statistics));
+       SET_ACTION_SINGLE(action_PrintCpuStatistics, true, true, (config.print_statistics));
        connect(action_PrintCpuStatistics, SIGNAL(toggled(bool)), this, SLOT(do_set_print_cpu_statistics(bool)));
        
        // Cursor to ten key.
@@ -993,7 +993,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                        action_EmulateCursorAs[i]->binds->setValue1(i);
                        actionGroup_EmulateCursorAs->addAction(action_EmulateCursorAs[i]);
                        menu_EmulateCursorAs->addAction(action_EmulateCursorAs[i]);
-                       if(i == using_flags->get_config_ptr()->cursor_as_ten_key) action_EmulateCursorAs[i]->setChecked(true);
+                       if(i == config.cursor_as_ten_key) action_EmulateCursorAs[i]->setChecked(true);
                                
                        connect(action_EmulateCursorAs[i], SIGNAL(triggered()),
                                        action_EmulateCursorAs[i], SLOT(do_set_emulate_cursor_as()));
@@ -1007,7 +1007,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
        actionSpeed_FULL->setVisible(true);
        actionSpeed_FULL->setCheckable(true);
        actionSpeed_FULL->setChecked(false);
-       if(using_flags->get_config_ptr()->full_speed) actionSpeed_FULL->setChecked(true);
+       if(config.full_speed) actionSpeed_FULL->setChecked(true);
        connect(actionSpeed_FULL, SIGNAL(toggle(bool)), this,SLOT(do_emu_full_speed(bool))); // OK?
        
        if(using_flags->is_use_joystick()) {
@@ -1019,11 +1019,11 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                action_SoundFilesFDD->setCheckable(true);
                action_SoundFilesFDD->setEnabled(true);
                action_SoundFilesFDD->setChecked(false);
-               if(using_flags->get_config_ptr()->sound_noise_fdd != 0) {
+               if(config.sound_noise_fdd != 0) {
                        action_SoundFilesFDD->setChecked(true);
                }
                */
-               SET_ACTION_SINGLE(action_SoundFilesFDD, true, true, (using_flags->get_config_ptr()->sound_noise_fdd != 0));
+               SET_ACTION_SINGLE(action_SoundFilesFDD, true, true, (config.sound_noise_fdd != 0));
        }
        if(using_flags->is_use_sound_files_relay()) {
                /*
@@ -1031,16 +1031,16 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                action_SoundFilesRelay->setCheckable(true);
                action_SoundFilesRelay->setEnabled(true);
                action_SoundFilesRelay->setChecked(false);
-               if(using_flags->get_config_ptr()->sound_noise_cmt != 0) {
+               if(config.sound_noise_cmt != 0) {
                        action_SoundFilesRelay->setChecked(true);
                }
                */
-               SET_ACTION_SINGLE(action_SoundFilesRelay, true, true, (using_flags->get_config_ptr()->sound_noise_cmt != 0));
+               SET_ACTION_SINGLE(action_SoundFilesRelay, true, true, (config.sound_noise_cmt != 0));
        }
        action_FocusWithClick = new Action_Control(this, using_flags);
        action_FocusWithClick->setCheckable(true);
        action_FocusWithClick->setEnabled(true);
-       if(using_flags->get_config_ptr()->focus_with_click) {
+       if(config.focus_with_click) {
                action_FocusWithClick->setChecked(true);
        }
 
@@ -1051,14 +1051,14 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
 
        action_Logging_FDC = NULL;
        if(using_flags->is_use_fd()) {
-               SET_ACTION_SINGLE(action_Logging_FDC, true, true, (using_flags->get_config_ptr()->special_debug_fdc != 0));
+               SET_ACTION_SINGLE(action_Logging_FDC, true, true, (config.special_debug_fdc != 0));
                connect(action_Logging_FDC, SIGNAL(toggled(bool)), this, SLOT(do_set_logging_fdc(bool)));
        }
 #if !defined(Q_OS_WIN)
        action_LogToSyslog = new Action_Control(this, using_flags);
        action_LogToSyslog->setCheckable(true);
        action_LogToSyslog->setEnabled(true);
-       if(using_flags->get_config_ptr()->log_to_syslog != 0) action_LogToSyslog->setChecked(true);
+       if(config.log_to_syslog != 0) action_LogToSyslog->setChecked(true);
        menuDevLogToSyslog = new QMenu(this);
        menuDevLogToSyslog->setToolTipsVisible(true);
        for(int i = 0; i < (CSP_LOG_TYPE_VM_DEVICE_END - CSP_LOG_TYPE_VM_DEVICE_0 + 1); i++) {
@@ -1067,7 +1067,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                action_DevLogToSyslog[i]->setEnabled(false);
                action_DevLogToSyslog[i]->binds->setValue1(i);
                menuDevLogToSyslog->addAction(action_DevLogToSyslog[i]);
-               if(using_flags->get_config_ptr()->dev_log_to_syslog[i][0]) action_DevLogToSyslog[i]->setChecked(true);
+               if(config.dev_log_to_syslog[i][0]) action_DevLogToSyslog[i]->setChecked(true);
                connect(action_DevLogToSyslog[i], SIGNAL(toggled(bool)),
                                action_DevLogToSyslog[i], SLOT(do_set_dev_log_to_syslog(bool)));
                connect(action_DevLogToSyslog[i], SIGNAL(sig_set_dev_log_to_syslog(int, bool)),
@@ -1077,7 +1077,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
        action_LogToConsole = new Action_Control(this, using_flags);
        action_LogToConsole->setCheckable(true);
        action_LogToConsole->setEnabled(true);
-       if(using_flags->get_config_ptr()->log_to_console != 0) action_LogToConsole->setChecked(true);
+       if(config.log_to_console != 0) action_LogToConsole->setChecked(true);
 
        //menuDevLogToConsole = new QMenu(menuEmulator);
        menuDevLogToConsole = new QMenu(this);
@@ -1098,7 +1098,7 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
                action_DevLogToConsole[i]->setEnabled(false);
                action_DevLogToConsole[i]->binds->setValue1(i);
                menuDevLogToConsole->addAction(action_DevLogToConsole[i]);
-               if(using_flags->get_config_ptr()->dev_log_to_console[i][0]) action_DevLogToConsole[i]->setChecked(true);
+               if(config.dev_log_to_console[i][0]) action_DevLogToConsole[i]->setChecked(true);
                connect(action_DevLogToConsole[i], SIGNAL(toggled(bool)),
                                action_DevLogToConsole[i], SLOT(do_set_dev_log_to_console(bool)));
                connect(action_DevLogToConsole[i], SIGNAL(sig_set_dev_log_to_console(int, bool)),
@@ -1114,9 +1114,9 @@ void Ui_MainWindowBase::ConfigEmulatorMenu(void)
        actionGroup_SetRenderPlatform = new QActionGroup(this);
        actionGroup_SetRenderPlatform->setExclusive(true);
        {
-                       int render_type = using_flags->get_config_ptr()->render_platform;
-                       int _major_version = using_flags->get_config_ptr()->render_major_version;
-                       //int _minor_version = using_flags->get_config_ptr()->render_minor_version; // ToDo
+                       int render_type = config.render_platform;
+                       int _major_version = config.render_major_version;
+                       //int _minor_version = config.render_minor_version; // ToDo
                        for(i = 0; i < MAX_RENDER_PLATFORMS; i++) {
                                tmps = QString::number(i);
                                action_SetRenderPlatform[i] = new Action_Control(this, using_flags);
@@ -1412,7 +1412,7 @@ void Ui_MainWindowBase::do_set_visible_virtual_media_none()
 {
        QRect rect;
        driveData->setVisible(false);
-       using_flags->get_config_ptr()->virtual_media_position = 0;
+       config.virtual_media_position = 0;
        set_screen_size(graphicsView->width(), graphicsView->height());
        
        pCentralLayout->setDirection(QBoxLayout::TopToBottom);
@@ -1431,7 +1431,7 @@ void Ui_MainWindowBase::do_set_visible_virtual_media_upper()
 {
        QRect rect;
        driveData->setVisible(true);
-       using_flags->get_config_ptr()->virtual_media_position = 1;
+       config.virtual_media_position = 1;
        set_screen_size(graphicsView->width(), graphicsView->height());
        emit sig_set_orientation_osd(1);
        pCentralLayout->setDirection(QBoxLayout::TopToBottom);
@@ -1452,7 +1452,7 @@ void Ui_MainWindowBase::do_set_visible_virtual_media_lower()
 {
        QRect rect;
        driveData->setVisible(true);
-       using_flags->get_config_ptr()->virtual_media_position = 2;
+       config.virtual_media_position = 2;
        set_screen_size(graphicsView->width(), graphicsView->height());
        emit sig_set_orientation_osd(2);
        pCentralLayout->setDirection(QBoxLayout::BottomToTop);
@@ -1472,7 +1472,7 @@ void Ui_MainWindowBase::do_set_visible_virtual_media_left()
 {
 #if 0
        driveData->setVisible(true);
-       using_flags->get_config_ptr()->virtual_media_position = 3;
+       config.virtual_media_position = 3;
        set_screen_size(graphicsView->width(), graphicsView->height());
        emit sig_set_orientation_osd(3);
        pCentralLayout->removeWidget(driveData);
@@ -1485,7 +1485,7 @@ void Ui_MainWindowBase::do_set_visible_virtual_media_right()
 {
 #if 0
        driveData->setVisible(true);
-       using_flags->get_config_ptr()->virtual_media_position = 4;
+       config.virtual_media_position = 4;
        set_screen_size(graphicsView->width(), graphicsView->height());
        emit sig_set_orientation_osd(4);
        pCentralLayout->removeWidget(driveData);
index b7d5e53..c90786c 100644 (file)
@@ -173,7 +173,7 @@ void Menu_MetaClass::do_open_dialog()
                QDir dir;
                char app[PATH_MAX];
                initial_dir = dir.currentPath();
-               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX);
+               strncpy(app, initial_dir.toLocal8Bit().constData(), PATH_MAX - 1);
                initial_dir = QString::fromLocal8Bit(get_parent_dir(app));
        }
        dlg.setOption(QFileDialog::ReadOnly, false);
index c197bd5..5cfbfc6 100644 (file)
@@ -34,7 +34,7 @@ void Object_Menu_Control::set_screen_size(void) {
        float nd, ww, hh;
        float xzoom = using_flags->get_screen_x_zoom();
        float yzoom = using_flags->get_screen_y_zoom();
-       using_flags->get_config_ptr()->window_mode = getNumber();
+       config.window_mode = getNumber();
        nd = getDoubleValue();
        ww = (float)using_flags->get_screen_width();
        hh = (float)using_flags->get_screen_height();
@@ -43,7 +43,7 @@ void Object_Menu_Control::set_screen_size(void) {
                float par_w = (float)using_flags->get_screen_width_aspect() / ww;
                float par_h = (float)using_flags->get_screen_height_aspect() / hh;
                //float par = par_h / par_w;
-               switch(using_flags->get_config_ptr()->window_stretch_type) {
+               switch(config.window_stretch_type) {
                case 0: // refer to X and Y.
                        ww = ww * nd * xzoom;
                        hh = hh * nd * yzoom;
@@ -73,7 +73,7 @@ void Object_Menu_Control::set_screen_size(void) {
 
 void Object_Menu_Control::do_save_as_movie(void)
 {
-       int fps = using_flags->get_config_ptr()->video_frame_rate;
+       int fps = config.video_frame_rate;
        emit sig_start_record_movie(fps);
 }
 
@@ -95,12 +95,12 @@ void Ui_MainWindowBase::do_start_saving_movie(void)
 
 void Ui_MainWindowBase::do_set_render_mode_std(void)
 {
-       using_flags->get_config_ptr()->rendering_type = CONFIG_RENDER_TYPE_STD;
+       config.rendering_type = CONFIG_RENDER_TYPE_STD;
 }
 
 void Ui_MainWindowBase::do_set_render_mode_tv(void)
 {
-       using_flags->get_config_ptr()->rendering_type = CONFIG_RENDER_TYPE_TV;
+       config.rendering_type = CONFIG_RENDER_TYPE_TV;
 }
 
 void Ui_MainWindowBase::do_set_state_saving_movie(bool state)
@@ -111,22 +111,22 @@ void Ui_MainWindowBase::do_set_state_saving_movie(bool state)
 
 void Ui_MainWindowBase::set_gl_scan_line_vert(bool f)
 {
-       using_flags->get_config_ptr()->opengl_scanline_vert = f;
+       config.opengl_scanline_vert = f;
 }
 
 void Ui_MainWindowBase::do_set_separate_thread_draw(bool f)
 {
-       using_flags->get_config_ptr()->use_separate_thread_draw = f;
+       config.use_separate_thread_draw = f;
 }
 
 void Ui_MainWindowBase::set_gl_scan_line_horiz(bool f)
 {
-       using_flags->get_config_ptr()->opengl_scanline_horiz = f;
+       config.opengl_scanline_horiz = f;
 }
 
 void Ui_MainWindowBase::set_osd_virtual_media(bool f)
 {
-       using_flags->get_config_ptr()->use_osd_virtual_media = f;
+       config.use_osd_virtual_media = f;
 }
 
 void Ui_MainWindowBase::ConfigScreenMenu_List(void)
@@ -151,7 +151,7 @@ void Ui_MainWindowBase::ConfigScreenMenu_List(void)
                actionScreenSize[i]->setCheckable(true);
                actionScreenSize[i]->binds->setNumber(i);
 
-               if(i == using_flags->get_config_ptr()->window_mode)  actionScreenSize[i]->setChecked(true);  // OK?
+               if(i == config.window_mode)  actionScreenSize[i]->setChecked(true);  // OK?
 
                actionGroup_ScreenSize->addAction(actionScreenSize[i]);
                actionScreenSize[i]->binds->setDoubleValue(screen_multiply_table[i]);
@@ -173,13 +173,13 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
        actionDisplay_Mode = new Action_Control(this, using_flags);
        actionDisplay_Mode->setObjectName(QString::fromUtf8("actionDisplay_Mode"));
        
-       SET_ACTION_SINGLE(action_ScreenSeparateThread, true, true, (using_flags->get_config_ptr()->use_separate_thread_draw));
+       SET_ACTION_SINGLE(action_ScreenSeparateThread, true, true, (config.use_separate_thread_draw));
        connect(action_ScreenSeparateThread, SIGNAL(toggled(bool)), this, SLOT(do_set_separate_thread_draw(bool)));
        if(using_flags->is_use_scanline()) {
                actionScanLine = new Action_Control(this, using_flags);
                actionScanLine->setObjectName(QString::fromUtf8("actionScanLine"));
                actionScanLine->setCheckable(true);
-               if(using_flags->get_config_ptr()->scan_line) {
+               if(config.scan_line) {
                        actionScanLine->setChecked(true);
                } else {
                        actionScanLine->setChecked(false);
@@ -188,14 +188,14 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                        this, SLOT(set_scan_line(bool)));
        }
        
-       SET_ACTION_SINGLE(action_ScreenUseOSD, true, true, (using_flags->get_config_ptr()->use_osd_virtual_media));
+       SET_ACTION_SINGLE(action_ScreenUseOSD, true, true, (config.use_osd_virtual_media));
        connect(action_ScreenUseOSD, SIGNAL(toggled(bool)),this, SLOT(set_osd_virtual_media(bool)));
        
        if(!using_flags->is_use_one_board_computer() && (using_flags->get_max_button() <= 0)) {
                actionGLScanLineHoriz = new Action_Control(this, using_flags);
                actionGLScanLineHoriz->setObjectName(QString::fromUtf8("actionGLScanLineHoriz"));
                actionGLScanLineHoriz->setCheckable(true);
-               if(using_flags->get_config_ptr()->opengl_scanline_horiz != 0) {
+               if(config.opengl_scanline_horiz != 0) {
                        actionGLScanLineHoriz->setChecked(true);
                } else {
                        actionGLScanLineHoriz->setChecked(false);
@@ -206,7 +206,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                        actionGLScanLineVert = new Action_Control(this, using_flags);
                        actionGLScanLineVert->setObjectName(QString::fromUtf8("actionGLScanLineVert"));
                        actionGLScanLineVert->setCheckable(true);
-                       if(using_flags->get_config_ptr()->opengl_scanline_vert != 0) {
+                       if(config.opengl_scanline_vert != 0) {
                                actionGLScanLineVert->setChecked(true);
                        } else {
                                actionGLScanLineVert->setChecked(false);
@@ -219,7 +219,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                actionRotate = new Action_Control(this, using_flags);
                actionRotate->setObjectName(QString::fromUtf8("actionScanLine"));
                actionRotate->setCheckable(true);
-               if(using_flags->get_config_ptr()->rotate_type) {
+               if(config.rotate_type) {
                        actionRotate->setChecked(true);
                } else {
                        actionRotate->setChecked(false);
@@ -232,7 +232,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
        actionOpenGL_Filter->setObjectName(QString::fromUtf8("actionOpenGL_Filter"));
        actionOpenGL_Filter->setEnabled(true);
        actionOpenGL_Filter->setCheckable(true);
-       if(using_flags->get_config_ptr()->use_opengl_filters) actionOpenGL_Filter->setChecked(true);
+       if(config.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()) ||
@@ -240,26 +240,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(using_flags->get_config_ptr()->window_stretch_type == 0) actionDot_by_Dot->setChecked(true);
+               if(config.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(using_flags->get_config_ptr()->window_stretch_type == 1) actionReferToX_Display->setChecked(true);
+               if(config.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(using_flags->get_config_ptr()->window_stretch_type == 2) actionReferToY_Display->setChecked(true);
+               if(config.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(using_flags->get_config_ptr()->window_stretch_type == 3) actionFill_Display->setChecked(true);
+               if(config.window_stretch_type == 3) actionFill_Display->setChecked(true);
        
                actionGroup_Stretch = new QActionGroup(this);
                actionGroup_Stretch->setExclusive(true);
@@ -306,7 +306,7 @@ void Ui_MainWindowBase::ConfigScreenMenu(void)
                        action_SetRenderMode[i]->setVisible(false);
                        action_SetRenderMode[i]->binds->setValue1(i);
                        
-                       if(i == using_flags->get_config_ptr()->rendering_type) action_SetRenderMode[i]->setChecked(true);
+                       if(i == config.rendering_type) action_SetRenderMode[i]->setChecked(true);
                
                        if(i == CONFIG_RENDER_TYPE_STD) {
                                action_SetRenderMode[i]->setEnabled(true);
index 60f6a6e..eff31b8 100644 (file)
@@ -32,14 +32,14 @@ void Object_Menu_Control::on_set_latency(void) {
 void Ui_MainWindowBase::do_set_sound_strict_rendering(bool f)
 {
        if(using_flags != NULL) {
-               using_flags->get_config_ptr()->sound_strict_rendering = f;
+               config.sound_strict_rendering = f;
        }
 }
 
 void Ui_MainWindowBase::do_set_sound_play_tape(bool f)
 {
        if(using_flags != NULL) {
-               using_flags->get_config_ptr()->sound_play_tape = f;
+               config.sound_play_tape = f;
        }
 }
 
@@ -53,7 +53,7 @@ void Ui_MainWindowBase::rise_volume_dialog(void)
        dlg->setWindowIcon(img);
        this->retranslateVolumeLabels(dlg);
 
-       n = (float)(((using_flags->get_config_ptr()->general_sound_level + 32768) * 1000) / 65535) / 10.0;
+       n = (float)(((config.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("%)");
@@ -76,16 +76,16 @@ void Ui_MainWindowBase::CreateSoundMenu(void)
        menuSound->addAction(actionStart_Record);
        menuSound->addSeparator();
        SET_ACTION_CHECKABLE_SINGLE_CONNECT(menuSound, actionSoundStrictRendering,
-                                                                               "actionSoundStrictRendering", using_flags->get_config_ptr()->sound_strict_rendering,
+                                                                               "actionSoundStrictRendering", config.sound_strict_rendering,
                                                                                SIGNAL(toggled(bool)), SLOT(do_set_sound_strict_rendering(bool)));
        SET_ACTION_CHECKABLE_SINGLE_CONNECT(menuSound, actionSoundPlayTape,
-                                                                               "actionSoundPlayTape", using_flags->get_config_ptr()->sound_play_tape,
+                                                                               "actionSoundPlayTape", config.sound_play_tape,
                                                                                SIGNAL(toggled(bool)), SLOT(do_set_sound_play_tape(bool)));
        
        //actionSoundStrictRendering = new Action_Control(this, using_flags);
        //actionSoundStrictRendering->setObjectName(QString::fromUtf8("actionSoundStrictRendering"));
        //actionSoundStrictRendering->setCheckable(true);
-       //if(using_flags->get_config_ptr()->sound_strict_rendering) actionSoundStrictRendering->setChecked(true);
+       //if(config.sound_strict_rendering) actionSoundStrictRendering->setChecked(true);
        //connect(actionSoundStrictRendering, SIGNAL(toggled(bool)),
        //              this, SLOT(do_set_sound_strict_rendering(bool)));
        //menuSound->addAction(actionSoundStrictRendering);
@@ -130,7 +130,7 @@ void Ui_MainWindowBase::ConfigSoundMenu(void)
                action_Freq[i]->setObjectName(tmps);
                action_Freq[i]->setCheckable(true);
                action_Freq[i]->binds->setNumber(i);
-               if(i == using_flags->get_config_ptr()->sound_frequency) {
+               if(i == config.sound_frequency) {
                        action_Freq[i]->setChecked(true);
                        //freq = using_flags->get_s_freq_table(i);
                }
@@ -148,7 +148,7 @@ void Ui_MainWindowBase::ConfigSoundMenu(void)
                action_Latency[i]->setObjectName(tmps);
                action_Latency[i]->setCheckable(true);
                action_Latency[i]->binds->setNumber(i);
-               if(i == using_flags->get_config_ptr()->sound_latency) action_Latency[i]->setChecked(true);
+               if(i == config.sound_latency) action_Latency[i]->setChecked(true);
                actionGroup_Sound_Latency->addAction(action_Latency[i]);
        }
 
@@ -218,5 +218,5 @@ void Ui_MainWindowBase::retranslateSoundMenu(void)
        action_VolumeDialog->setToolTip(QApplication::translate("MenuSound", "Open a VOLUME dialog.", 0));
 
        menuSound->setToolTipsVisible(true);
-       do_update_volume(using_flags->get_config_ptr()->general_sound_level);
+       do_update_volume(config.general_sound_level);
 }
index 877c941..caf77ba 100644 (file)
@@ -56,7 +56,7 @@ void GLDrawClass::mouseMoveEvent(QMouseEvent *event)
                double xpos = (double)(pos.x()) / (double)width();
                double ypos = (double)(pos.y()) / (double)height();
                if(using_flags->is_use_screen_rotate()) {
-                       if(using_flags->get_config_ptr()->rotate_type) {
+                       if(config.rotate_type) {
                                xx = ypos * (double)d_hh;
                                yy = xpos * (double)d_ww;
                        } else  {
index ce361ea..67f8c27 100644 (file)
@@ -251,9 +251,9 @@ void GLDrawClass::InitFBO(void)
 {
        QOpenGLContext *glContext = QOpenGLContext::currentContext();
        //QOpenGLContext *glContext = QOpenGLContext::globalShareContext();
-       int render_type = using_flags->get_config_ptr()->render_platform;
-       int _major_version = using_flags->get_config_ptr()->render_major_version;
-       int _minor_version = using_flags->get_config_ptr()->render_minor_version;
+       int render_type = config.render_platform;
+       int _major_version = config.render_major_version;
+       int _minor_version = config.render_minor_version;
        QSurfaceFormat _fmt = glContext->format();
        //QSurfaceFormat::RenderableType capability = _fmt.renderableType();
 #if !defined(Q_OS_WIN)
index 21b1d28..db03bc9 100644 (file)
@@ -160,7 +160,7 @@ uint32_t GLDrawClass::get106Scancode2VK(uint32_t data)
 {
        uint32_t vk;
        vk = key_table->get_vk_from_scan(data);
-       if(using_flags->get_config_ptr()->swap_kanji_pause) {
+       if(config.swap_kanji_pause) {
                if(vk == VK_KANJI) {
                        vk = VK_PAUSE;
                } else if(vk == VK_PAUSE) {
@@ -172,7 +172,7 @@ uint32_t GLDrawClass::get106Scancode2VK(uint32_t data)
                if((vk == VK_LMENU) || (vk == VK_RMENU)) vk = VK_MENU;
        }
        if((vk == VK_LCONTROL) || (vk == VK_RCONTROL)) vk = VK_CONTROL;
-       if(using_flags->get_config_ptr()->numpad_enter_as_fullkey) {
+       if(config.numpad_enter_as_fullkey) {
                if(vk == VK_OEM_CSP_KPRET) vk = VK_RETURN;
        }
        return vk;
index 2a292b2..6d63d17 100644 (file)
@@ -41,7 +41,7 @@ void get_short_filename(_TCHAR *dst, _TCHAR *file, int maxlen)
                return;
        }
        l = strlen(file) - i + 1;
-       if(l >= maxlen) l = maxlen;
+       if(l >= maxlen) l = maxlen - 1;
        strncpy(dst, &file[i + 1], l);
        return;
 }
index 256312e..fb0d535 100644 (file)
@@ -33,7 +33,7 @@ void Ui_SndSliderObject::setValue(int level)
                float n;
                if(level < -32768) level = -32678;
                if(level > 32767)  level = 32767;
-               using_flags->get_config_ptr()->general_sound_level = level;
+               config.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, QWidget *parent) : QWidget(0)
        sliderMasterVolume->setMaximum(32768);
        sliderMasterVolume->setSingleStep(256);
        sliderMasterVolume->setPageStep(4096);
-       sliderMasterVolume->setValue(using_flags->get_config_ptr()->general_sound_level);
+       sliderMasterVolume->setValue(config.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, QWidget *parent) : QWidget(0)
                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 = using_flags->get_config_ptr()->sound_volume_l[ii];
-                       int r_val = using_flags->get_config_ptr()->sound_volume_r[ii];
+                       int l_val = config.sound_volume_l[ii];
+                       int r_val = config.sound_volume_r[ii];
                        
                        int s_lvl;
                        int s_balance;
index 52eddaa..eefb643 100644 (file)
@@ -35,21 +35,21 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
 
        for(int i = 0; i < combo_vcodec->count(); i++) {
                int ii = combo_vcodec->itemData(i).toInt();
-               if(ii == using_flags->get_config_ptr()->video_codec_type) {
+               if(ii == config.video_codec_type) {
                        combo_vcodec->setCurrentIndex(ii);
                }
        }
-       video_codec_type = using_flags->get_config_ptr()->video_codec_type;
+       video_codec_type = config.video_codec_type;
        connect(combo_vcodec, SIGNAL(activated(int)), this, SLOT(do_set_video_codec_type(int)));
 
        label_resolution = new QLabel(QApplication::translate("MovieTabGeneral", "Resolution", 0), this);
        combo_resolution = new QComboBox(this);
        combo_resolution->setToolTip(QApplication::translate("MovieTabGeneral", "Set resolution of encoded movie file.", 0));
        
-       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;
-       audio_codec_type = using_flags->get_config_ptr()->audio_codec_type;
+       geometry.setWidth(config.video_width);
+       geometry.setHeight(config.video_height);
+       audio_bitrate = config.audio_bitrate;
+       audio_codec_type = config.audio_codec_type;
 
        label_video_threads = new QLabel(QApplication::translate("MovieTabGeneral", "Video Threads", 0), this);
        combo_video_threads = new QComboBox(this);
@@ -62,7 +62,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_audio_codec->setToolTip(QApplication::translate("MovieTabGeneral", "Set codec of audio.\nMP3 is using LAME.\nAAC is experimental; using libAV's AAC encoder.", 0));
        label_video_fps = new QLabel(QApplication::translate("MovieTabGeneral", "Framerate", 0), this);
        combo_video_fps = new QComboBox(this);
-       video_fps = using_flags->get_config_ptr()->video_frame_rate;
+       video_fps = config.video_frame_rate;
        
        // Value for resolution
        //bool skipf = false;
@@ -170,7 +170,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() == using_flags->get_config_ptr()->video_width) && (s.height() == using_flags->get_config_ptr()->video_height)) {
+               if((s.width() == config.video_width) && (s.height() == config.video_height)) {
                        combo_resolution->setCurrentIndex(i);
                }
        }
@@ -192,11 +192,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 == using_flags->get_config_ptr()->video_threads) {
+               if(br == config.video_threads) {
                        combo_video_threads->setCurrentIndex(i);
                }
        }
-       video_threads = using_flags->get_config_ptr()->video_threads;
+       video_threads = config.video_threads;
        connect(combo_video_threads, SIGNAL(activated(int)), this, SLOT(do_set_video_threads(int)));
 
        // Audio bitrate
@@ -212,7 +212,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        combo_audio_bitrate->addItem(QString::fromUtf8("384kbps"), 384);
        for(int i = 0; i < combo_audio_bitrate->count(); i++) {
                int br = combo_audio_bitrate->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->audio_bitrate) {
+               if(br == config.audio_bitrate) {
                        combo_audio_bitrate->setCurrentIndex(i);
                }
        }
@@ -223,7 +223,7 @@ CSP_TabMovieGeneral::CSP_TabMovieGeneral(MOVIE_SAVER *ms, CSP_DialogMovie *paren
        //combo_audio_codec->addItem(QString::fromUtf8("VORBIS(Maybe not working)"), AUDIO_CODEC_VORBIS);
        for(int i = 0; i < combo_audio_codec->count(); i++) {
                int br = combo_audio_codec->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->audio_codec_type) {
+               if(br == config.audio_codec_type) {
                        combo_audio_codec->setCurrentIndex(i);
                }
        }
@@ -236,7 +236,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 == using_flags->get_config_ptr()->video_frame_rate) {
+               if(fps == config.video_frame_rate) {
                        combo_video_fps->setCurrentIndex(i);
                }
        }
@@ -330,7 +330,7 @@ void CSP_TabMovieGeneral::do_set_codecs(void)
 
        // See:
        // https://libav.org/avconv.html#Video-Options
-       using_flags->get_config_ptr()->audio_bitrate = audio_bitrate;
+       config.audio_bitrate = audio_bitrate;
        emit sig_set_audio_bitrate(audio_bitrate);
 
        switch(video_codec_type) {
@@ -341,7 +341,7 @@ void CSP_TabMovieGeneral::do_set_codecs(void)
                emit sig_video_add_option(QString::fromUtf8("c:v"), QString::fromUtf8("h264"));
                break;
        }
-       using_flags->get_config_ptr()->video_codec_type = video_codec_type;
+       config.video_codec_type = video_codec_type;
 
        switch(audio_codec_type) {
        case AUDIO_CODEC_MP3:
@@ -354,16 +354,16 @@ void CSP_TabMovieGeneral::do_set_codecs(void)
                emit sig_video_add_option(QString::fromUtf8("c:a"), QString::fromUtf8("vorbis"));
                break;
        }
-       using_flags->get_config_ptr()->video_codec_type = video_codec_type;
-       using_flags->get_config_ptr()->audio_codec_type = audio_codec_type;
+       config.video_codec_type = video_codec_type;
+       config.audio_codec_type = audio_codec_type;
 
-       using_flags->get_config_ptr()->video_threads = video_threads;
-       using_flags->get_config_ptr()->video_frame_rate = video_fps;
+       config.video_threads = video_threads;
+       config.video_frame_rate = video_fps;
 
-       using_flags->get_config_ptr()->video_width = geometry.width();
-       using_flags->get_config_ptr()->video_height = geometry.height();
+       config.video_width = geometry.width();
+       config.video_height = geometry.height();
        emit sig_set_video_resolution(geometry);
 
-       using_flags->get_config_ptr()->video_threads = video_threads;
-       using_flags->get_config_ptr()->video_frame_rate = video_fps;
+       config.video_threads = video_threads;
+       config.video_frame_rate = video_fps;
 }
index a31c099..7abf496 100644 (file)
@@ -22,8 +22,8 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        p_movie = ms;
        p_window = parent_window;
 
-       video_maxq = using_flags->get_config_ptr()->video_h264_maxq;
-       video_minq = using_flags->get_config_ptr()->video_h264_minq;
+       video_maxq = config.video_h264_maxq;
+       video_minq = config.video_h264_minq;
 
        label_video_bframes = new QLabel(QApplication::translate("MovieTabH264", "Max B Frames", 0), this);
        combo_video_bframes = new QComboBox(this);
@@ -52,12 +52,12 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
 
        for(int i = 0; i < combo_video_bitrate->count(); i++) {
                int br = combo_video_bitrate->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->video_h264_bitrate) {
+               if(br == config.video_h264_bitrate) {
                        combo_video_bitrate->setCurrentIndex(i);
                }
        }
        connect(combo_video_bitrate, SIGNAL(activated(int)), this, SLOT(do_set_video_bitrate(int)));
-       video_bitrate = using_flags->get_config_ptr()->video_h264_bitrate;
+       video_bitrate = config.video_h264_bitrate;
 
        // Video bframes
        combo_video_bframes->addItem(QString::fromUtf8("0"), 0);
@@ -72,11 +72,11 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_bframes->setToolTip(QApplication::translate("MovieTabH264", "Max numbers of B FRAMEs.\nLarger value will make smaller file, but slowly.", 0));
        for(int i = 0; i < combo_video_bframes->count(); i++) {
                int br = combo_video_bframes->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->video_h264_bframes) {
+               if(br == config.video_h264_bframes) {
                        combo_video_bframes->setCurrentIndex(i);
                }
        }
-       video_bframes = using_flags->get_config_ptr()->video_h264_bframes;
+       video_bframes = config.video_h264_bframes;
        connect(combo_video_bframes, SIGNAL(activated(int)), this, SLOT(do_set_bframes(int)));
 
        // B adapt
@@ -86,37 +86,37 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
        combo_video_b_adapt->setToolTip(QApplication::translate("MovieTabH264", "Set decision of using B FRAMEs.", 0));
        for(int i = 0; i < combo_video_b_adapt->count(); i++) {
                int br = combo_video_b_adapt->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->video_h264_b_adapt) {
+               if(br == config.video_h264_b_adapt) {
                        combo_video_b_adapt->setCurrentIndex(i);
                }
        }
-       video_b_adapt = using_flags->get_config_ptr()->video_h264_b_adapt;
+       video_b_adapt = config.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(using_flags->get_config_ptr()->video_h264_minq);
+       slider_qmin->setValue(config.video_h264_minq);
        label_qmin_val = new QLabel(this);
-       tmps.setNum(using_flags->get_config_ptr()->video_h264_minq);
+       tmps.setNum(config.video_h264_minq);
        label_qmin_val->setText(tmps);
        label_qmin_name = new QLabel(QString::fromUtf8("QP Min"), this);
        slider_qmin->setToolTip(QApplication::translate("MovieTabH264", "Minimum Quant.\nSmaller value is better quality, but making larger file.\nLarger value is dirty picture, but making smaller file.\n15 to 24 is recommended.", 0));
 
-       video_minq = using_flags->get_config_ptr()->video_h264_minq;
+       video_minq = config.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(using_flags->get_config_ptr()->video_h264_maxq);
+       slider_qmax->setValue(config.video_h264_maxq);
        label_qmax_val = new QLabel(this);
-       tmps.setNum(using_flags->get_config_ptr()->video_h264_maxq);
+       tmps.setNum(config.video_h264_maxq);
        label_qmax_val->setText(tmps);
        label_qmax_name = new QLabel(QString::fromUtf8("QP Max"), this);
        slider_qmax->setToolTip(QApplication::translate("MovieTabH264", "Maximum Quant.\nSmaller value is better quality, but making larger file.\nLarger value is dirty picture, but making smaller file.\n20 to 28 is recommended.", 0));
        connect(slider_qmax, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmax(int)));
-       video_maxq = using_flags->get_config_ptr()->video_h264_maxq;
+       video_maxq = config.video_h264_maxq;
        
        // Subme
        combo_video_subme->addItem(QApplication::translate("MovieTabH264", "RD mode decision for I/P-frames", 0), 6);
@@ -129,11 +129,11 @@ CSP_TabMovieH264::CSP_TabMovieH264(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wind
 
        for(int i = 0; i < combo_video_subme->count(); i++) {
                int br = combo_video_subme->itemData(i).toInt();
-               if(br == using_flags->get_config_ptr()->video_h264_subme) {
+               if(br == config.video_h264_subme) {
                        combo_video_subme->setCurrentIndex(i);
                }
        }
-       video_subme = using_flags->get_config_ptr()->video_h264_subme;
+       video_subme = config.video_h264_subme;
        connect(combo_video_subme, SIGNAL(activated(int)), this, SLOT(do_set_subme(int)));
                
        label_title = new QLabel(QApplication::translate("MovieTabH264", "Set H.264 parameter.", 0), this);
@@ -177,13 +177,13 @@ void CSP_TabMovieH264::do_set_codecs(void)
        QString value;
        // See:
        // https://libav.org/avconv.html#Video-Options
-       using_flags->get_config_ptr()->video_h264_bitrate = video_bitrate;
+       config.video_h264_bitrate = video_bitrate;
 
-       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;
+       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;
 }
 
 void CSP_TabMovieH264::do_set_qmin(int n)
index b975e5c..bbf40e2 100644 (file)
@@ -22,8 +22,8 @@ CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_wi
        p_movie = ms;
        p_window = parent_window;
 
-       video_maxq = using_flags->get_config_ptr()->video_mpeg4_maxq;
-       video_minq = using_flags->get_config_ptr()->video_mpeg4_minq;
+       video_maxq = config.video_mpeg4_maxq;
+       video_minq = config.video_mpeg4_minq;
        if(video_maxq < video_minq) {
                int n = video_maxq;
                video_maxq = video_minq;
@@ -60,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 == using_flags->get_config_ptr()->video_mpeg4_bitrate) {
+               if(br == config.video_mpeg4_bitrate) {
                        combo_video_bitrate->setCurrentIndex(i);
                }
        }
        connect(combo_video_bitrate, SIGNAL(activated(int)), this, SLOT(do_set_video_bitrate(int)));
-       video_bitrate = using_flags->get_config_ptr()->video_mpeg4_bitrate;
+       video_bitrate = config.video_mpeg4_bitrate;
 
        // Video bframes
        combo_video_bframes->addItem(QString::fromUtf8("1"), 1);
@@ -78,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 == using_flags->get_config_ptr()->video_mpeg4_bframes) {
+               if(br == config.video_mpeg4_bframes) {
                        combo_video_bframes->setCurrentIndex(i);
                }
        }
-       video_bframes = using_flags->get_config_ptr()->video_mpeg4_bframes;
+       video_bframes = config.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(using_flags->get_config_ptr()->video_mpeg4_minq);
+       slider_qmin->setValue(config.video_mpeg4_minq);
        label_qmin_val = new QLabel(this);
-       tmps.setNum(using_flags->get_config_ptr()->video_mpeg4_minq);
+       tmps.setNum(config.video_mpeg4_minq);
        label_qmin_val->setText(tmps);
        label_qmin_name = new QLabel(QString::fromUtf8("QP Min"), this);
-       video_minq = using_flags->get_config_ptr()->video_mpeg4_minq;
+       video_minq = config.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(using_flags->get_config_ptr()->video_mpeg4_maxq);
+       slider_qmax->setValue(config.video_mpeg4_maxq);
        label_qmax_val = new QLabel(this);
-       tmps.setNum(using_flags->get_config_ptr()->video_mpeg4_maxq);
+       tmps.setNum(config.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 = using_flags->get_config_ptr()->video_mpeg4_maxq;
+       video_maxq = config.video_mpeg4_maxq;
        
        label_title = new QLabel(QApplication::translate("MovieTabMPEG4", "Set MPEG4v1 parameter.", 0), this);
        grid_layout = new QGridLayout(this);
@@ -142,11 +142,11 @@ void CSP_TabMovieMPEG4::do_set_codecs(void)
        QString value;
        // See:
        // https://libav.org/avconv.html#Video-Options
-       using_flags->get_config_ptr()->video_mpeg4_bitrate = video_bitrate;
+       config.video_mpeg4_bitrate = video_bitrate;
 
-       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;
+       config.video_mpeg4_maxq = video_maxq;
+       config.video_mpeg4_minq = video_minq;
+       config.video_mpeg4_bframes = video_bframes;
 }
 
 void CSP_TabMovieMPEG4::do_set_qmin(int n)
index 57598e8..026579d 100644 (file)
@@ -44,17 +44,17 @@ int Ui_MainWindowBase::set_recent_binary_load(int drv, int num)
        
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
        
-       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, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        
-       strcpy(using_flags->get_config_ptr()->initial_binary_dir, get_parent_dir(path_shadow));
-       //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
+       strcpy(config.initial_binary_dir, get_parent_dir(path_shadow));
+       //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX - 1);
        
        emit sig_load_binary(drv, s_path);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
        return 0;
 }
 
@@ -65,17 +65,21 @@ int Ui_MainWindowBase::set_recent_binary_save(int drv, int num)
        
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
        
-       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, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        
-       strcpy(using_flags->get_config_ptr()->initial_binary_dir, get_parent_dir(path_shadow));
-       //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
+       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       
+       strcpy(config.initial_binary_dir, get_parent_dir(path_shadow));
+       //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX - 1);
        
        emit sig_save_binary(drv, s_path);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
        return 0;
 }
 
@@ -86,14 +90,15 @@ 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, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
-       strcpy(using_flags->get_config_ptr()->initial_binary_dir,       get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       strcpy(config.initial_binary_dir,       get_parent_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(using_flags->get_config_ptr()->initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
 }
 
 void Ui_MainWindowBase::_open_binary_save(int drv, const QString fname)
@@ -102,14 +107,15 @@ 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, using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
-       strcpy(using_flags->get_config_ptr()->initial_binary_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
+       strcpy(config.initial_binary_dir, get_parent_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(using_flags->get_config_ptr()->initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
 }
 
 
@@ -132,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(using_flags->get_config_ptr()->recent_binary_path[drv], listBINs[drv]);
+       SETUP_HISTORY(config.recent_binary_path[drv], listBINs[drv]);
        menu_BINs[drv]->do_update_histories(listBINs[drv]);
-       menu_BINs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_binary_dir);
+       menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
        listBINs[drv].clear();
 
        QString name = QString::fromUtf8("Binary");
index 01c1d05..7631d25 100644 (file)
@@ -61,9 +61,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(using_flags->get_config_ptr()->recent_bubble_casette_path[drv], listBubbles[drv]);
+               SETUP_HISTORY(config.recent_bubble_casette_path[drv], listBubbles[drv]);
                menu_bubbles[drv]->do_update_histories(listBubbles[drv]);
-               menu_bubbles[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_bubble_casette_dir);
+               menu_bubbles[drv]->do_set_initialize_directory(config.initial_bubble_casette_dir);
                listB77[drv].clear();
 
                QString name = QString::fromUtf8("BUBBLE");
index 2f63036..4915d59 100644 (file)
@@ -29,11 +29,12 @@ void Ui_MainWindowBase::_open_cart(int drv, const QString fname)
        char path_shadow[PATH_MAX];
 
        if(fname.length() <= 0) return;
-       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
-       strcpy(using_flags->get_config_ptr()->initial_cart_dir,         get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_cart_path[drv], listCARTs[drv]);
+       strcpy(config.initial_cart_dir,         get_parent_dir(path_shadow));
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
        
        emit sig_close_cart(drv);
        emit sig_open_cart(drv, fname);
@@ -52,14 +53,17 @@ void Ui_MainWindowBase::set_recent_cart(int drv, int num)
     
        if((num < 0) || (num >= MAX_HISTORY)) return;
  
-       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, using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       s_path = QString::fromLocal8Bit(config.recent_cart_path[drv][num]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_cart_path[drv], listCARTs[drv]);
+       
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
    
-       strcpy(using_flags->get_config_ptr()->initial_cart_dir,         get_parent_dir(path_shadow));
+       strcpy(config.initial_cart_dir,         get_parent_dir(path_shadow));
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
    
        //eject_cart(drv);
        emit sig_open_cart(drv, s_path);
@@ -100,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(using_flags->get_config_ptr()->recent_cart_path[drv], listCARTs[drv]);
+       SETUP_HISTORY(config.recent_cart_path[drv], listCARTs[drv]);
        menu_Cart[drv]->do_update_histories(listCARTs[drv]);
-       menu_Cart[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_cart_dir);
+       menu_Cart[drv]->do_set_initialize_directory(config.initial_cart_dir);
 
        QString name = QString::fromUtf8("Cart");
        QString tmpv;
index 6eb0405..aa60b4b 100644 (file)
@@ -27,9 +27,9 @@ void Ui_MainWindowBase::CreateCDROMMenu(int drv, int drv_base)
        
        menu_CDROM[drv]->create_pulldown_menu();        
        // Translate Menu
-       SETUP_HISTORY(using_flags->get_config_ptr()->recent_compact_disc_path[drv], listCDROM[drv]);
+       SETUP_HISTORY(config.recent_compact_disc_path[drv], listCDROM[drv]);
        menu_CDROM[drv]->do_update_histories(listCDROM[drv]);
-       menu_CDROM[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
+       menu_CDROM[drv]->do_set_initialize_directory(config.initial_compact_disc_dir);
        
        ext_play = "*.ccd *.cue *.gz";
        desc_play = "Compact Disc";
@@ -52,17 +52,19 @@ int Ui_MainWindowBase::set_recent_cdrom(int drv, int num)
        char path_shadow[PATH_MAX];
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
     
-       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_compact_disc_path[drv][num]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_compact_disc_path[drv], listCDROM[drv]);
+       s_path = QString::fromLocal8Bit(config.recent_compact_disc_path[drv][num]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path[drv], listCDROM[drv]);
    
-       strcpy(using_flags->get_config_ptr()->initial_compact_disc_dir,         get_parent_dir(path_shadow));
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strcpy(config.initial_compact_disc_dir,         get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        emit sig_close_cdrom(drv);
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_VFILE_COMPACTDISC + 0, "Open : filename = %s", path_shadow);
        emit sig_open_cdrom(drv, s_path);
        menu_CDROM[drv]->do_update_histories(listCDROM[drv]);
-       menu_CDROM[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
+       menu_CDROM[drv]->do_set_initialize_directory(config.initial_compact_disc_dir);
        return 0;
 }
 
@@ -75,17 +77,19 @@ void Ui_MainWindowBase::do_open_cdrom(int drv, QString path)
 {
        char path_shadow[PATH_MAX];
        if(path.length() <= 0) return;
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_compact_disc_path[drv], listCDROM[drv]);
-       strcpy(using_flags->get_config_ptr()->initial_compact_disc_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_compact_disc_path[drv], listCDROM[drv]);
+       strcpy(config.initial_compact_disc_dir, get_parent_dir(path_shadow));
        // Copy filename again.
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        emit sig_close_cdrom(drv);
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_VFILE_COMPACTDISC + 0, "Open : filename = %s", path_shadow);
        emit sig_open_cdrom(drv, path);
        menu_CDROM[drv]->do_update_histories(listCDROM[drv]);
-       menu_CDROM[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_compact_disc_dir);
+       menu_CDROM[drv]->do_set_initialize_directory(config.initial_compact_disc_dir);
 }
 
 void Ui_MainWindowBase::retranslateCDROMMenu(void)
index 0b349ac..19f621e 100644 (file)
@@ -30,10 +30,10 @@ void Ui_MainWindowBase::CreateCMTMenu(int drive, int base_drv)
        
        menu_CMT[drive]->create_pulldown_menu();        
        // Translate Menu
-       SETUP_HISTORY(using_flags->get_config_ptr()->recent_tape_path[drive], listCMT[drive]);
+       SETUP_HISTORY(config.recent_tape_path[drive], listCMT[drive]);
        menu_CMT[drive]->do_set_write_protect(false);
        menu_CMT[drive]->do_update_histories(listCMT[drive]);
-       menu_CMT[drive]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
+       menu_CMT[drive]->do_set_initialize_directory(config.initial_tape_dir);
 
        if(using_flags->is_machine_pc6001()) {
                ext_play = "*.wav *.p6 *.cas *.gz";
@@ -77,18 +77,20 @@ int Ui_MainWindowBase::set_recent_cmt(int drv, int num)
 
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
     
-       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_tape_path[drv][num]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path[drv], listCMT[drv]);
+       s_path = QString::fromLocal8Bit(config.recent_tape_path[drv][num]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_tape_path[drv], listCMT[drv]);
    
-       strcpy(using_flags->get_config_ptr()->initial_tape_dir, get_parent_dir(path_shadow));
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strcpy(config.initial_tape_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_VFILE_CMT + 0, "Open READ (from history) : filename = %s", s_path.toLocal8Bit().constData());
        
        emit sig_close_tape(drv);
        emit sig_play_tape(drv, s_path);
        menu_CMT[drv]->do_update_histories(listCMT[drv]);
-       menu_CMT[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
+       menu_CMT[drv]->do_set_initialize_directory(config.initial_tape_dir);
        return 0;
 }
 
@@ -134,30 +136,30 @@ void Ui_MainWindowBase::do_push_apss_rewind_tape(int drive)
 void Ui_MainWindowBase::set_wave_shaper(int drive, bool f)
 {
        if(f) {
-               using_flags->get_config_ptr()->wave_shaper[drive] = 1;
+               config.wave_shaper[drive] = 1;
        } else {
-               using_flags->get_config_ptr()->wave_shaper[drive] = 0;
+               config.wave_shaper[drive] = 0;
        }
 }
 
 bool Ui_MainWindowBase::get_wave_shaper(int drive)
 {
-       if(using_flags->get_config_ptr()->wave_shaper[drive] == 0) return false;
+       if(config.wave_shaper[drive] == 0) return false;
        return true;
 }
 
 void Ui_MainWindowBase::set_direct_load_from_mzt(int drive, bool f)
 {
        if(f) {
-               using_flags->get_config_ptr()->direct_load_mzt[drive] = 1;
+               config.direct_load_mzt[drive] = 1;
        } else {
-               using_flags->get_config_ptr()->direct_load_mzt[drive] = 0;
+               config.direct_load_mzt[drive] = 0;
        }
 }
 
 bool Ui_MainWindowBase::get_direct_load_mzt(int drive)
 {
-       if(using_flags->get_config_ptr()->direct_load_mzt[drive] == 0) return false;
+       if(config.direct_load_mzt[drive] == 0) return false;
        return true;
 }
 
@@ -171,17 +173,19 @@ void Ui_MainWindowBase::do_open_read_cmt(int drive, QString path)
        char path_shadow[PATH_MAX];
 
        if(path.length() <= 0) return;
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path[drive], listCMT[drive]);
-       strcpy(using_flags->get_config_ptr()->initial_tape_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_tape_path[drive], listCMT[drive]);
+       strcpy(config.initial_tape_dir, get_parent_dir(path_shadow));
        // Copy filename again.
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        emit sig_close_tape(drive);
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_VFILE_CMT + 0, "Open READ : filename = %s", path_shadow);
        emit sig_play_tape(drive, path);
        menu_CMT[drive]->do_update_histories(listCMT[drive]);
-       menu_CMT[drive]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
+       menu_CMT[drive]->do_set_initialize_directory(config.initial_tape_dir);
 }
 
 void Ui_MainWindowBase::do_open_write_cmt(int drive, QString path) 
@@ -189,12 +193,14 @@ void Ui_MainWindowBase::do_open_write_cmt(int drive, QString path)
        char path_shadow[PATH_MAX];
 
        if(path.length() <= 0) return;
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_tape_path[drive], listCMT[drive]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_tape_path[drive], listCMT[drive]);
        get_parent_dir(path_shadow);
-       strcpy(using_flags->get_config_ptr()->initial_tape_dir, get_parent_dir(path_shadow));
+       strcpy(config.initial_tape_dir, get_parent_dir(path_shadow));
        // Copy filename again.
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        emit sig_close_tape(drive);
        if(menu_CMT[drive]->getWriteProtect() != false) {
@@ -205,7 +211,7 @@ void Ui_MainWindowBase::do_open_write_cmt(int drive, QString path)
                emit sig_rec_tape(drive, path);
        }
        menu_CMT[drive]->do_update_histories(listCMT[drive]);
-       menu_CMT[drive]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_tape_dir);
+       menu_CMT[drive]->do_set_initialize_directory(config.initial_tape_dir);
 }
 
 
index b2e56e0..b6df615 100644 (file)
@@ -45,19 +45,19 @@ void Object_Menu_Control::no_write_protect_fd(void) {
 
 void Object_Menu_Control::do_set_ignore_crc_error(bool flag)
 {
-       using_flags->get_config_ptr()->ignore_disk_crc[drive] = flag;
+       config.ignore_disk_crc[drive] = flag;
        emit sig_emu_update_config();
 }
 
 void Object_Menu_Control::do_set_correct_disk_timing(bool flag)
 {
-       using_flags->get_config_ptr()->correct_disk_timing[drive] = flag;
+       config.correct_disk_timing[drive] = flag;
        emit sig_emu_update_config();
 }
 
 void Object_Menu_Control::do_set_disk_count_immediate(bool flag)
 {
-       using_flags->get_config_ptr()->disk_count_immediate[drive] = flag;
+       config.disk_count_immediate[drive] = flag;
        emit sig_emu_update_config();
 }
 
@@ -105,9 +105,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(using_flags->get_config_ptr()->recent_floppy_disk_path[drv], listFDs[drv]);
+               SETUP_HISTORY(config.recent_floppy_disk_path[drv], listFDs[drv]);
                menu_fds[drv]->do_update_histories(listFDs[drv]);
-               menu_fds[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_floppy_disk_dir);
+               menu_fds[drv]->do_set_initialize_directory(config.initial_floppy_disk_dir);
                listD88[drv].clear();
        }
 }
index c92d5e5..0ec21a5 100644 (file)
@@ -53,9 +53,9 @@ void Ui_MainWindowBase::CreateHardDiskMenu(int drv, int drv_base)
                
                menu_hdds[drv]->do_clear_inner_media();
                menu_hdds[drv]->do_add_media_extension(ext, desc1);
-               SETUP_HISTORY(using_flags->get_config_ptr()->recent_hard_disk_path[drv], listHDDs[drv]);
+               SETUP_HISTORY(config.recent_hard_disk_path[drv], listHDDs[drv]);
                menu_hdds[drv]->do_update_histories(listHDDs[drv]);
-               menu_hdds[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_hard_disk_dir);
+               menu_hdds[drv]->do_set_initialize_directory(config.initial_hard_disk_dir);
        }
 }
 
index c1e3128..abcfdaf 100644 (file)
@@ -37,9 +37,9 @@ void Ui_MainWindowBase::CreateLaserdiscMenu(int drv, int drv_base)
        
        menu_Laserdisc[drv]->create_pulldown_menu();    
        // Translate Menu
-       SETUP_HISTORY(using_flags->get_config_ptr()->recent_laser_disc_path[drv], listLaserdisc[drv]);
+       SETUP_HISTORY(config.recent_laser_disc_path[drv], listLaserdisc[drv]);
        menu_Laserdisc[drv]->do_update_histories(listLaserdisc[drv]);
-       menu_Laserdisc[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+       menu_Laserdisc[drv]->do_set_initialize_directory(config.initial_laser_disc_dir);
        
        ext_play = "*.ogv *.mp4 *.avi *.mkv";
        desc_play = "Laserisc";
@@ -62,17 +62,19 @@ int Ui_MainWindowBase::set_recent_laserdisc(int drv, int num)
        char path_shadow[PATH_MAX];
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
     
-       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_laser_disc_path[drv][num]);
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_laser_disc_path[drv], listLaserdisc[drv]);
+       s_path = QString::fromLocal8Bit(config.recent_laser_disc_path[drv][num]);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_laser_disc_path[drv], listLaserdisc[drv]);
    
-       strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, get_parent_dir(path_shadow));
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       strcpy(config.initial_laser_disc_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX - 1);
        emit sig_close_laserdisc(drv);
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_VFILE_LASERDISC + 0, "Open : filename = %s", path_shadow);
        emit sig_open_laserdisc(drv, s_path);
        menu_Laserdisc[drv]->do_update_histories(listLaserdisc[drv]);
-       menu_Laserdisc[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+       menu_Laserdisc[drv]->do_set_initialize_directory(config.initial_laser_disc_dir);
        return 0;
 }
 
@@ -86,17 +88,19 @@ void Ui_MainWindowBase::do_open_laserdisc(int drv, QString path)
        char path_shadow[PATH_MAX];
 
        if(path.length() <= 0) return;
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
-       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_laser_disc_path[drv], listLaserdisc[drv]);
-       strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, get_parent_dir(path_shadow));
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_laser_disc_path[drv], listLaserdisc[drv]);
+       strcpy(config.initial_laser_disc_dir, get_parent_dir(path_shadow));
        // Copy filename again.
-       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
+       memset(path_shadow, 0x00, PATH_MAX * sizeof(char));
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX - 1);
 
        emit sig_close_laserdisc(drv);
        csp_logger->debug_log(CSP_LOG_INFO, CSP_LOG_TYPE_VFILE_LASERDISC + 0, "Open : filename = %s", path_shadow);
        emit sig_open_laserdisc(drv, path);
        menu_Laserdisc[drv]->do_update_histories(listLaserdisc[drv]);
-       menu_Laserdisc[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+       menu_Laserdisc[drv]->do_set_initialize_directory(config.initial_laser_disc_dir);
 }
 
 void Ui_MainWindowBase::retranslateLaserdiscMenu(void)
index a5e87a2..1a26f5f 100644 (file)
@@ -63,13 +63,14 @@ void Ui_MainWindowBase::open_quick_disk_dialog(int drv)
        desc2 = desc1 + " (" + ext.toLower() + " " + ext.toUpper() + ")";
        //desc2 = desc1 + " (" + ext.toLower() + ")";
        //desc1 = desc1 + " (" + ext.toUpper() + ")";
-       if(using_flags->get_config_ptr()->initial_quick_disk_dir != NULL) {
-               dirname = using_flags->get_config_ptr()->initial_quick_disk_dir;                
+       if(config.initial_quick_disk_dir != NULL) {
+               dirname = config.initial_quick_disk_dir;                
        } else {
                char app[_MAX_PATH];
                QDir df;
                dirname = df.currentPath();
-               strncpy(app, dirname.toLocal8Bit().constData(), _MAX_PATH);
+               memset(app, 0x00, _MAX_PATH * sizeof(char));
+               strncpy(app, dirname.toLocal8Bit().constData(), _MAX_PATH - 1);
                dirname = get_parent_dir(app);
        }
        QStringList filter;
@@ -99,17 +100,19 @@ int Ui_MainWindowBase::set_recent_quick_disk(int drv, int num)
        QString s_path;
        char path_shadow[_MAX_PATH];
        if((num < 0) || (num >= MAX_HISTORY)) return -1;
-       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, using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
+       s_path = QString::fromLocal8Bit(config.recent_quick_disk_path[drv][num]);
+       memset(path_shadow, 0x00, _MAX_PATH * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH - 1);
+       UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
     
-       strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
-       strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir,  get_parent_dir(path_shadow), _MAX_PATH);
+       memset(path_shadow, 0x00, _MAX_PATH * sizeof(char));
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH - 1);
+       strncpy(config.initial_quick_disk_dir,  get_parent_dir(path_shadow), _MAX_PATH - 1);
        
        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(using_flags->get_config_ptr()->initial_quick_disk_dir);
+       menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
        //if(emu->get_quickdisk_protected(drv)) {
        //      menu_QDs[drv]->do_write_protect_media();
        //} else {
@@ -124,17 +127,19 @@ void Ui_MainWindowBase::_open_quick_disk(int drv, const QString fname)
        QString s_name = fname;
        
        if(fname.length() <= 0) return;
-       strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
+       memset(path_shadow, 0x00, _MAX_PATH * sizeof(char));
+       strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH - 1);
 
-       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);
-       strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir,  get_parent_dir(path_shadow), _MAX_PATH);
+       UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
+               
+       memset(path_shadow, 0x00, _MAX_PATH * sizeof(char));
+       strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH - 1);
+       strncpy(config.initial_quick_disk_dir,  get_parent_dir(path_shadow), _MAX_PATH - 1);
 
        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(using_flags->get_config_ptr()->initial_quick_disk_dir);
+       menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
        //if(emu->get_quickdisk_protected(drv)) {
        //      menu_QDs[drv]->do_write_protect_media();
        //} else {
@@ -157,9 +162,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(using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
+               SETUP_HISTORY(config.recent_quick_disk_path[drv], listQDs[drv]);
                menu_QDs[drv]->do_update_histories(listQDs[drv]);
-               menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
+               menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
 
        }
 }
index 78d3d3f..158a54a 100644 (file)
 
 #include "qt_gldraw.h"
 #include "osd.h"
+#include "config.h"
 
 OSD::OSD(USING_FLAGS *p, CSP_Logger *logger) : OSD_BASE(p, logger)
 {
-       p_config = using_flags->get_config_ptr();
+       //p_config = using_flags->get_config_ptr();
+       p_config = &config;
        set_features();
 }
 
@@ -1112,7 +1114,7 @@ void OSD::initialize(int rate, int samples)
        tmp_path = tmp_path + QString::fromStdString(my_procname);
        tmp_path = tmp_path + QString::fromUtf8(delim);
        memset(app_path, 0x00, sizeof(app_path));
-       strncpy(app_path, tmp_path.toUtf8().constData(), _MAX_PATH);
+       strncpy(app_path, tmp_path.toUtf8().constData(), _MAX_PATH - 1);
        
        console_cmd_str.clear();
        osd_console_opened = false;
index 64f0aa3..1edbe40 100644 (file)
@@ -92,7 +92,7 @@ void OSD_BASE::do_assign_js_setting(int jsnum, int axis_idx, int assigned_value)
        if((jsnum < 0) || (jsnum >= 4)) return;
        if((axis_idx < 0) || (axis_idx >= 16)) return;
        if((assigned_value < -256) || (assigned_value >= 0x10000)) return;
-       p_config->joy_buttons[jsnum][axis_idx] = assigned_value;
+       config.joy_buttons[jsnum][axis_idx] = assigned_value;
 }
 
 void OSD_BASE::update_input()
@@ -187,7 +187,7 @@ void OSD_BASE::key_down(int code, bool extended, bool repeat)
 {
        if((code >= 256) || (code < 0)) return; // WORKAROUND
 //#ifdef USE_AUTO_KEY
-       if(!__USE_AUTO_KEY || (!now_auto_key && !p_config->romaji_to_kana)) {
+       if(!__USE_AUTO_KEY || (!now_auto_key && !config.romaji_to_kana)) {
 //#endif
                //csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_OSD, "KEY DOWN %d", code);
                //if(!dinput_key_available) {
@@ -217,7 +217,7 @@ void OSD_BASE::key_down(int code, bool extended, bool repeat)
                                }
                        }
 
-                       switch(p_config->cursor_as_ten_key) {
+                       switch(config.cursor_as_ten_key) {
                        case CONFIG_CURSOR_AS_2468:
                                if(code == VK_RIGHT) {
                                        code = VK_NUMPAD6;
@@ -335,7 +335,7 @@ void OSD_BASE::key_up(int code, bool extended)
 {
        if((code >= 256) || (code < 0)) return; // WORKAROUND
 //#ifdef USE_AUTO_KEY
-       if(!__USE_AUTO_KEY || (!now_auto_key && !p_config->romaji_to_kana)) {
+       if(!__USE_AUTO_KEY || (!now_auto_key && !config.romaji_to_kana)) {
 //#endif
                //csp_logger->debug_log(CSP_LOG_DEBUG, CSP_LOG_TYPE_OSD, "KEY UP %d", code);
                //if(!dinput_key_available) {
@@ -364,7 +364,7 @@ void OSD_BASE::key_up(int code, bool extended)
                                        return;
                                }
                        }
-                       switch(p_config->cursor_as_ten_key) {
+                       switch(config.cursor_as_ten_key) {
                        case CONFIG_CURSOR_AS_2468:
                                if(code == VK_RIGHT) {
                                        code = VK_NUMPAD6;
index 94389e7..452a9c7 100644 (file)
@@ -108,7 +108,7 @@ void OSD_BASE::initialize_sound(int rate, int samples)
        snddata.snd_total_volume = &snd_total_volume;
        snddata.sound_exit = &sound_exit;
        snddata.sound_debug = &sound_debug;
-       snddata.p_config = p_config;
+       snddata.p_config = &config;
        
        snd_spec_req.format = AUDIO_S16SYS;
        snd_spec_req.channels = 2;
@@ -347,7 +347,7 @@ void OSD_BASE::start_record_sound()
                tmps = tmps + QString::fromUtf8("_");
                tmps = tmps + nowTime.toString(QString::fromUtf8("yyyy-MM-dd_hh-mm-ss.zzz"));
                tmps = tmps + QString::fromUtf8(".wav");
-               strncpy((char *)sound_file_name, tmps.toLocal8Bit().constData(), sizeof(sound_file_name));
+               strncpy((char *)sound_file_name, tmps.toLocal8Bit().constData(), sizeof(sound_file_name) - 1);
                // create wave file
                rec_sound_fio = new FILEIO();
                if(rec_sound_fio->Fopen(bios_path(sound_file_name), FILEIO_WRITE_BINARY)) {
index afac4c5..5859f47 100644 (file)
@@ -418,21 +418,21 @@ void OSD::release_screen()
 int OSD::get_window_mode_width(int mode)
 {
        if(get_use_screen_rotate()) {
-               if(p_config->rotate_type == 1 || p_config->rotate_type == 3) {
-                       return (p_config->window_stretch_type == 0 ? vm_window_height : vm_window_height_aspect) * (mode + WINDOW_MODE_BASE);
+               if(config.rotate_type == 1 || config.rotate_type == 3) {
+                       return (config.window_stretch_type == 0 ? vm_window_height : vm_window_height_aspect) * (mode + WINDOW_MODE_BASE);
                }
        }
-       return (p_config->window_stretch_type == 0 ? vm_window_width : vm_window_width_aspect) * (mode + WINDOW_MODE_BASE);
+       return (config.window_stretch_type == 0 ? vm_window_width : vm_window_width_aspect) * (mode + WINDOW_MODE_BASE);
 }
 
 int OSD::get_window_mode_height(int mode)
 {
        if(get_use_screen_rotate()) {
-               if(p_config->rotate_type == 1 || p_config->rotate_type == 3) {
-                       return (p_config->window_stretch_type == 0 ? vm_window_width : vm_window_width_aspect) * (mode + WINDOW_MODE_BASE);
+               if(config.rotate_type == 1 || config.rotate_type == 3) {
+                       return (config.window_stretch_type == 0 ? vm_window_width : vm_window_width_aspect) * (mode + WINDOW_MODE_BASE);
                }
        }
-       return (p_config->window_stretch_type == 0 ? vm_window_height : vm_window_height_aspect) * (mode + WINDOW_MODE_BASE);
+       return (config.window_stretch_type == 0 ? vm_window_height : vm_window_height_aspect) * (mode + WINDOW_MODE_BASE);
 }
 
 void OSD::initialize_video()
index 3d7c550..17caacc 100644 (file)
@@ -1,6 +1,6 @@
 message("* vm/common_vm")
 
-SET(THIS_LIB_VERSION 1.3.0)
+SET(THIS_LIB_VERSION 1.3.1)
 
 #include(cotire)
 set(s_vm_common_vm_srcs