OSDN Git Service

[UI][Qt][PX7] Add GUI side of laserdisc supporting.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 26 Jul 2016 08:57:03 +0000 (17:57 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 26 Jul 2016 08:57:03 +0000 (17:57 +0900)
source/src/qt/common/qt_utils.cpp
source/src/qt/gui/CMakeLists.txt
source/src/qt/gui/commonclasses.h
source/src/qt/gui/mainwidget_base.h
source/src/qt/gui/menu_laserdisc.cpp [new file with mode: 0644]
source/src/qt/gui/menu_laserdisc.h [new file with mode: 0644]
source/src/qt/gui/menu_main.cpp
source/src/qt/gui/util_ld.cpp [new file with mode: 0644]

index 6962b3c..4c7ef1a 100644 (file)
@@ -217,8 +217,8 @@ void Ui_MainWindow::LaunchEmuThread(void)
        connect(hRunEmu, SIGNAL(sig_change_osd_cdrom(QString)), this, SLOT(do_change_osd_cdrom(QString)));
 #endif 
 #if defined(USE_LASER_DISK)
-       connect(this, SIGNAL(sig_open_laser_disk(QString)), hRunEmu, SLOT(do_open_laser_disk(QString)));
-       connect(this, SIGNAL(sig_close_laser_disk(void)), hRunEmu, SLOT(do_close_laser_disk(void)));
+       connect(this, SIGNAL(sig_open_laserdisc(QString)), hRunEmu, SLOT(do_open_laserdisc(QString)));
+       connect(this, SIGNAL(sig_close_laserdisc(void)), hRunEmu, SLOT(do_close_laserdisc(void)));
 #endif
 #if defined(USE_BINARY_FILE1)
        connect(this, SIGNAL(sig_load_binary(int, QString)), hRunEmu, SLOT(do_load_binary(int, QString)));
index da0e57e..11c93b7 100644 (file)
@@ -15,6 +15,7 @@ set(s_qt_gui_headers
          menu_cart.h
          menu_quickdisk.h
          menu_compactdisc.h
+         menu_laserdisc.h
          menu_binary.h
          menu_bubble.h
          display_about.h
@@ -50,6 +51,7 @@ set(s_qt_gui_srcs
          menu_disk.cpp
          menu_quickdisk.cpp
          menu_compactdisc.cpp
+         menu_laserdisc.cpp
          menu_cmt.cpp
          menu_cart.cpp
          menu_main.cpp
@@ -60,6 +62,7 @@ set(s_qt_gui_srcs
          mainwindow_utils.cpp
          util_fd.cpp
          util_cd.cpp
+         util_ld.cpp
          util_cmt.cpp
          util_qd.cpp
          util_cart.cpp
index 1075d83..2505044 100644 (file)
@@ -98,6 +98,10 @@ signals:
        int sig_eject_cdrom(void);
        int sig_recent_cdrom(int);
                
+       int sig_insert_laserdisc(bool);
+       int sig_eject_laserdisc(void);
+       int sig_recent_laserdisc(int);
+       
        int sig_insert_play_cmt(bool);
        int sig_eject_cmt(void);
        int sig_recent_cmt(int);
@@ -171,6 +175,10 @@ public slots:
        void eject_cdrom(void);
        void on_recent_cdrom();
 
+       void insert_laserdisc(void);
+       void eject_laserdisc(void);
+       void on_recent_laserdisc();
+       
        void start_insert_play_cmt(void);
        void eject_cmt(void);
        void on_recent_cmt(void);
index 513aa72..722b6ae 100644 (file)
@@ -74,6 +74,7 @@ class Menu_QDClass;
 class Menu_BinaryClass;
 class Menu_BubbleClass;
 class Menu_CompactDiscClass;
+class Menu_LaserdiscClass;
 class MOVIE_SAVER;
 
 
@@ -153,6 +154,11 @@ class DLL_PREFIX Ui_MainWindowBase : public QMainWindow
        void CreateCDROMPulldownMenu(void);
        void retranslateCDROMMenu(void);
 
+       void CreateLaserdiscMenu(void);
+       void ConfigLaserdiscMenu(void);
+       void ConfigLaserdiscMenuSub(void);
+       void CreateLaserdiscPulldownMenu(void);
+       void retranslateLaserdiscMenu(void);
 
        void ConfigBinaryMenu(void);
        void retranslateBinaryMenu(int drv, int basedrv);
@@ -211,14 +217,7 @@ class DLL_PREFIX Ui_MainWindowBase : public QMainWindow
        QStringList listCMT;
        bool cmt_write_protect;
        QStringList listCDROM;
-       
-       class Action_Control *actionInsert_LD;
-       class Action_Control *actionEject_LD;
-       QActionGroup   *actionGroup_Opened_LD;
-       class Action_Control *actionRecent_Opened_LD;
-       class Action_Control *action_Recent_List_LD[MAX_HISTORY];
-       QStringList listLaserDisc;
-       
+       QStringList listLaserdisc;
        QStringList listBINs[8];
        // Screen
        class Action_Control *actionZoom;
@@ -319,14 +318,11 @@ class DLL_PREFIX Ui_MainWindowBase : public QMainWindow
        Menu_CMTClass *menu_CMT;
        
        Menu_CompactDiscClass *menu_CDROM;
-       
+       Menu_LaserdiscClass *menu_Laserdisc;
        Menu_CartClass *menu_Cart[8];
-       
-       QMenu *menuLD;
-       QMenu *menuLD_Recent;
        Menu_BinaryClass *menu_BINs[8];
-       
        Menu_BubbleClass *menu_bubbles[8];
+       
        QStringList listBubbles[8];
        QStringList listB77[8];
 
@@ -485,7 +481,7 @@ public slots:
        void do_eject_cdrom(int drv);
        void do_open_cdrom(int drv, QString path);
        void do_change_osd_cdrom(QString tmpstr);
-#if 0
+#if 1
        int set_recent_laserdisc(int num); 
        void do_eject_laserdisc(void); 
        void do_open_laserdisc(QString path);
@@ -633,8 +629,8 @@ signals:
        int sig_open_cart(int drv, QString path);
        int sig_open_cdrom(QString path);
        int sig_close_cdrom(void);
-       int sig_close_laser_disk(void);
-       int sig_open_laser_disk(QString path);
+       int sig_close_laserdisc(void);
+       int sig_open_laserdisc(QString path);
        int sig_load_binary(int drv, QString path);
        int sig_save_binary(int drv, QString path);
        int sig_write_protect_bubble(int, bool);
diff --git a/source/src/qt/gui/menu_laserdisc.cpp b/source/src/qt/gui/menu_laserdisc.cpp
new file mode 100644 (file)
index 0000000..b920674
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Qt / Tape Menu, Utilities
+ * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ * License : GPLv2
+ *   History : 
+ *     Mar 20 2016 : Start
+ */
+
+#include "commonclasses.h"
+#include "mainwidget_base.h"
+#include "menu_laserdisc.h"
+
+#include "qt_dialogs.h"
+//#include "emu.h"
+
+
+Menu_LaserdiscClass::Menu_LaserdiscClass(EMU *ep, QMenuBar *root_entry, QString desc, USING_FLAGS *p, QWidget *parent, int drv) : Menu_MetaClass(ep, root_entry, desc, p, parent, drv)
+{
+       use_write_protect = false;
+       use_d88_menus = false;
+}
+
+Menu_LaserdiscClass::~Menu_LaserdiscClass()
+{
+}
+
+void Menu_LaserdiscClass::create_pulldown_menu_device_sub(void)
+{
+       //
+}
+
+
+void Menu_LaserdiscClass::connect_menu_device_sub(void)
+{
+       connect(this, SIGNAL(sig_open_media(int, QString)),     p_wid, SLOT(do_open_laserdisc(int, QString)));
+       connect(this, SIGNAL(sig_eject_media(int)),     p_wid, SLOT(do_eject_laserdisc(int)));
+       connect(this, SIGNAL(sig_set_recent_media(int, int)), p_wid, SLOT(set_recent_laserdisc(int, int)));
+}
+
+
+void Menu_LaserdiscClass::retranslate_pulldown_menu_device_sub(void)
+{
+       action_insert->setText(QApplication::translate("MainWindow", "Insert Laserdisc", 0));
+       action_eject->setText(QApplication::translate("MainWindow", "Eject Laserdisc", 0));
+
+       this->setTitle(QApplication::translate("MainWindow", "Laserdisc" , 0));
+       action_insert->setIcon(QIcon(":/icon_cd.png"));
+}
diff --git a/source/src/qt/gui/menu_laserdisc.h b/source/src/qt/gui/menu_laserdisc.h
new file mode 100644 (file)
index 0000000..b9764df
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Menu_MetaClass : Defines
+ * (C) 2015 by K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ * Please use this file as templete.
+ */
+
+
+#ifndef _CSP_QT_MENU_LASERDISC_CLASSES_H
+#define _CSP_QT_MENU_LASERDISC_CLASSES_H
+
+#include "menu_metaclass.h"
+
+QT_BEGIN_NAMESPACE
+
+class DLL_PREFIX Menu_LaserdiscClass: public Menu_MetaClass {
+       Q_OBJECT
+protected:
+public:
+       Menu_LaserdiscClass(EMU *ep, QMenuBar *root_entry, QString desc, USING_FLAGS *p, QWidget *parent = 0, int drv = 0);
+       ~Menu_LaserdiscClass();
+       void create_pulldown_menu_device_sub();
+       void connect_menu_device_sub(void);
+       void retranslate_pulldown_menu_device_sub(void);
+public slots:
+signals:
+};
+
+QT_END_NAMESPACE
+
+#endif
index 6f021ae..4a71423 100644 (file)
@@ -25,6 +25,7 @@
 #include "menu_quickdisk.h"
 #include "menu_binary.h"
 #include "menu_compactdisc.h"
+#include "menu_laserdisc.h"
 #include "menu_bubble.h"
 
 #include "qt_gldraw.h"
@@ -107,6 +108,9 @@ void Ui_MainWindowBase::setupUi(void)
        if(using_flags->is_use_compact_disc()) {
                ConfigCDROMMenu();
        }
+       if(using_flags->is_use_laser_disc()) {
+               ConfigLaserdiscMenu();
+       }
        if(using_flags->is_use_bubble()) {
                ConfigBubbleMenu();
        }
@@ -178,6 +182,9 @@ void Ui_MainWindowBase::setupUi(void)
        if(using_flags->is_use_compact_disc()) {
                CreateCDROMMenu();
        }
+       if(using_flags->is_use_laser_disc()) {
+               CreateLaserdiscMenu();
+       }
        if(using_flags->is_use_bubble()) {
                int i;
                for(i = 0; i < using_flags->get_max_bubble(); i++) {
@@ -250,9 +257,9 @@ void Ui_MainWindowBase::setupUi(void)
        if(using_flags->is_use_compact_disc()) {
                menubar->addAction(menu_CDROM->menuAction());
        }
-//     if(using_flags->is_use_laser_disc()) {
-//             menubar->addAction(menu_LaserDisc->menuAction());
-//     }
+       if(using_flags->is_use_laser_disc()) {
+               menubar->addAction(menu_Laserdisc->menuAction());
+       }
        if(using_flags->is_use_bubble()) {
                int i;
                for(i = 0; i < using_flags->get_max_bubble(); i++) {
diff --git a/source/src/qt/gui/util_ld.cpp b/source/src/qt/gui/util_ld.cpp
new file mode 100644 (file)
index 0000000..0d05657
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * UI->Qt->MainWindow : CD ROM Utils.
+ * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ * License: GPLv2
+ *
+ * History:
+ * Mar 20, 2016 : Initial
+ */
+
+
+#include "commonclasses.h"
+#include "mainwidget_base.h"
+#include "qt_dialogs.h"
+#include "agar_logger.h"
+
+#include "menu_laserdisc.h"
+
+
+void Object_Menu_Control::insert_laserdisc(void) {
+       //AGAR_DebugLog(AGAR_LOG_DEBUG, "%d", play);
+       emit sig_insert_laserdisc(play);
+}
+void Object_Menu_Control::eject_laserdisc(void) {
+       emit sig_eject_laserdisc();
+}
+void Object_Menu_Control::on_recent_laserdisc(){
+       emit sig_recent_laserdisc(s_num);
+}
+
+void Ui_MainWindowBase::CreateLaserdiscMenu(void)
+{
+       QString ext_play, desc_play;
+       
+       listLaserdisc.clear();
+       menu_Laserdisc = new Menu_LaserdiscClass(emu, menubar, "Object_Laserdisc_Menu", using_flags, this, 0);
+       menu_Laserdisc->setObjectName(QString::fromUtf8("menuLaserdisc", -1));
+       
+       menu_Laserdisc->create_pulldown_menu(); 
+       // Translate Menu
+       SETUP_HISTORY(using_flags->get_config_ptr()->recent_laser_disc_path, listLaserdisc);
+       menu_Laserdisc->do_update_histories(listLaserdisc);
+       menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+       
+       ext_play = "*.ogv *.mp4 *.avi *.mkv";
+       desc_play = "Laserisc";
+       menu_Laserdisc->do_add_media_extension(ext_play, desc_play);
+
+}
+
+void Ui_MainWindowBase::CreateLaserdiscPulldownMenu(void)
+{
+}
+
+void Ui_MainWindowBase::ConfigLaserdiscMenuSub(void)
+{
+       
+}
+
+int Ui_MainWindowBase::set_recent_laserdisc(int num) 
+{
+       QString s_path;
+       char path_shadow[PATH_MAX];
+       int i;
+       if((num < 0) || (num >= MAX_HISTORY)) return -1;
+    
+       s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_laser_disc_path[num]);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_laser_disc_path, listLaserdisc);
+   
+       get_parent_dir(path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, path_shadow);
+       strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
+       emit sig_close_laserdisc();
+       AGAR_DebugLog(AGAR_LOG_DEBUG, "Laserdisc: Open : filename = %s", path_shadow);
+       emit sig_open_laserdisc(s_path);
+       menu_Laserdisc->do_update_histories(listLaserdisc);
+       menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+       return 0;
+}
+
+void Ui_MainWindowBase::do_eject_laserdisc(void) 
+{
+       emit sig_close_laserdisc();
+}
+
+void Ui_MainWindowBase::do_open_laserdisc(QString path) 
+{
+       char path_shadow[PATH_MAX];
+       int i;
+
+       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, listLaserdisc);
+       get_parent_dir(path_shadow);
+       strcpy(using_flags->get_config_ptr()->initial_laser_disc_dir, path_shadow);
+       // Copy filename again.
+       strncpy(path_shadow, path.toLocal8Bit().constData(), PATH_MAX);
+
+       emit sig_close_laserdisc();
+       AGAR_DebugLog(AGAR_LOG_DEBUG, "CD-ROM: Open : filename = %s", path_shadow);
+       emit sig_open_laserdisc(path);
+       menu_Laserdisc->do_update_histories(listLaserdisc);
+       menu_Laserdisc->do_set_initialize_directory(using_flags->get_config_ptr()->initial_laser_disc_dir);
+}
+
+void Ui_MainWindowBase::retranslateLaserdiscMenu(void)
+{
+       if(using_flags->is_use_laser_disc()) {
+               menu_Laserdisc->retranslateUi();
+       }
+}
+
+void Ui_MainWindowBase::ConfigLaserdiscMenu(void)
+{
+       ConfigLaserdiscMenuSub(); 
+}