From: K.Ohta Date: Tue, 26 Jul 2016 08:57:03 +0000 (+0900) Subject: [UI][Qt][PX7] Add GUI side of laserdisc supporting. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7c708ab9d92d63544e404e84c05de6de3a3ee562;p=csp-qt%2Fcommon_source_project-fm7.git [UI][Qt][PX7] Add GUI side of laserdisc supporting. --- diff --git a/source/src/qt/common/qt_utils.cpp b/source/src/qt/common/qt_utils.cpp index 6962b3c8b..4c7ef1aac 100644 --- a/source/src/qt/common/qt_utils.cpp +++ b/source/src/qt/common/qt_utils.cpp @@ -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))); diff --git a/source/src/qt/gui/CMakeLists.txt b/source/src/qt/gui/CMakeLists.txt index da0e57ea7..11c93b7aa 100644 --- a/source/src/qt/gui/CMakeLists.txt +++ b/source/src/qt/gui/CMakeLists.txt @@ -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 diff --git a/source/src/qt/gui/commonclasses.h b/source/src/qt/gui/commonclasses.h index 1075d83b4..25050440c 100644 --- a/source/src/qt/gui/commonclasses.h +++ b/source/src/qt/gui/commonclasses.h @@ -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); diff --git a/source/src/qt/gui/mainwidget_base.h b/source/src/qt/gui/mainwidget_base.h index 513aa721f..722b6ae39 100644 --- a/source/src/qt/gui/mainwidget_base.h +++ b/source/src/qt/gui/mainwidget_base.h @@ -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 index 000000000..b920674f7 --- /dev/null +++ b/source/src/qt/gui/menu_laserdisc.cpp @@ -0,0 +1,48 @@ +/* + * Qt / Tape Menu, Utilities + * (C) 2015 K.Ohta + * 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 index 000000000..b9764df77 --- /dev/null +++ b/source/src/qt/gui/menu_laserdisc.h @@ -0,0 +1,30 @@ +/* + * Menu_MetaClass : Defines + * (C) 2015 by K.Ohta + * 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 diff --git a/source/src/qt/gui/menu_main.cpp b/source/src/qt/gui/menu_main.cpp index 6f021ae4d..4a714233d 100644 --- a/source/src/qt/gui/menu_main.cpp +++ b/source/src/qt/gui/menu_main.cpp @@ -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 index 000000000..0d0565702 --- /dev/null +++ b/source/src/qt/gui/util_ld.cpp @@ -0,0 +1,116 @@ +/* + * UI->Qt->MainWindow : CD ROM Utils. + * (C) 2015 K.Ohta + * 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(); +}