Rework cma protocol selection.

Read plugins from current application directory on debug mode.
This commit is contained in:
codestation
2015-02-14 22:03:53 -04:30
parent 4fa13bd9ec
commit ea67001531
8 changed files with 132 additions and 39 deletions

View File

@@ -24,7 +24,7 @@ SOURCES += \
src/sqlitedb.cpp \ src/sqlitedb.cpp \
src/httpdownloader.cpp \ src/httpdownloader.cpp \
src/qlistdb.cpp \ src/qlistdb.cpp \
src/database.cpp \ src/database.cpp
HEADERS += \ HEADERS += \
src/capability.h \ src/capability.h \
@@ -40,7 +40,7 @@ HEADERS += \
src/sqlitedb.h \ src/sqlitedb.h \
src/httpdownloader.h \ src/httpdownloader.h \
src/qlistdb.h \ src/qlistdb.h \
src/database.h \ src/database.h
OTHER_FILES += \ OTHER_FILES += \
resources/xml/psp2-updatelist.xml \ resources/xml/psp2-updatelist.xml \

View File

@@ -42,7 +42,11 @@ bool DeviceCapability::exchangeInfo(vita_device_t *device)
} }
QString hostname = QHostInfo::localHostName(); QString hostname = QHostInfo::localHostName();
int protocol_version = ::getVitaProtocolVersion(); int protocol_version = ::getVitaProtocolVersion();
qDebug() << "Sending Qcma protocol version:" << protocol_version;
const initiator_info_t *pc_info = VitaMTP_Data_Initiator_New(hostname.toUtf8().data(), protocol_version); const initiator_info_t *pc_info = VitaMTP_Data_Initiator_New(hostname.toUtf8().data(), protocol_version);
// Next, we send the client's (this program) info (discard the const here) // Next, we send the client's (this program) info (discard the const here)

View File

@@ -188,20 +188,14 @@ QString readable_size(qint64 size, bool use_gib)
int getVitaProtocolVersion() int getVitaProtocolVersion()
{ {
bool useCustom = QSettings().value("useCustomProtocol").toBool(); QString protocol_mode = QSettings().value("protocolMode", "automatic").toString();
if(useCustom)
{
bool ok;
int protocol = QSettings().value("protocolVersion").toInt(&ok);
if(ok && protocol > 0)
return protocol;
else
return VITAMTP_PROTOCOL_MAX_VERSION;
}
else
{
int protocol; int protocol;
if(protocol_mode == "manual")
{
int index = QSettings().value("protocolIndex").toInt(); int index = QSettings().value("protocolIndex").toInt();
switch(index) switch(index)
{ {
case 0: case 0:
@@ -223,13 +217,32 @@ int getVitaProtocolVersion()
protocol = VITAMTP_PROTOCOL_FW_2_00; protocol = VITAMTP_PROTOCOL_FW_2_00;
break; break;
case 6: case 6:
protocol = VITAMTP_WIRELESS_FW_2_00; protocol = 1300010; // VITAMTP_PROTOCOL_FW_1_80
break;
case 7:
protocol = 1200010; // VITAMTP_PROTOCOL_FW_1_60
break;
case 8:
protocol = 1100010; // VITAMTP_PROTOCOL_FW_1_50
break;
case 9:
protocol = 1000010; // VITAMTP_PROTOCOL_FW_1_00
break; break;
default: default:
protocol = VITAMTP_PROTOCOL_MAX_VERSION; protocol = VITAMTP_PROTOCOL_MAX_VERSION;
break; break;
} }
}
else if(protocol_mode == "custom")
{
bool ok;
int protocol = QSettings().value("protocolVersion").toInt(&ok);
if(!ok || protocol <= 0)
protocol = VITAMTP_PROTOCOL_MAX_VERSION;
}
else
protocol = VITAMTP_PROTOCOL_MAX_VERSION;
return protocol; return protocol;
}
} }

View File

@@ -62,6 +62,32 @@ void ConfigWidget::connectSignals()
connect(mapper, SIGNAL(mapped(int)), this, SLOT(browseBtnPressed(int))); connect(mapper, SIGNAL(mapped(int)), this, SLOT(browseBtnPressed(int)));
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept())); connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject())); connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
connect(ui->protocolModeBox, SIGNAL(currentIndexChanged(int)), this, SLOT(protocolModeChanged(int)));
}
void ConfigWidget::protocolModeChanged(int index)
{
switch(index)
{
case 0:
ui->protocolBox->setEnabled(false);
ui->protocolEdit->setEnabled(false);
break;
case 1:
ui->protocolBox->setEnabled(true);
ui->protocolEdit->setEnabled(false);
break;
case 2:
ui->protocolBox->setEnabled(false);
ui->protocolEdit->setEnabled(true);
break;
default:
ui->protocolBox->setEnabled(false);
ui->protocolEdit->setEnabled(false);
break;
}
} }
void ConfigWidget::setDefaultData() void ConfigWidget::setDefaultData()
@@ -99,7 +125,17 @@ void ConfigWidget::setDefaultData()
ui->videoSkipCheck->setChecked(settings.value("videoSkip", false).toBool()); ui->videoSkipCheck->setChecked(settings.value("videoSkip", false).toBool());
ui->musicSkipCheck->setChecked(settings.value("musicSkip", false).toBool()); ui->musicSkipCheck->setChecked(settings.value("musicSkip", false).toBool());
ui->customProtocolCheckBox->setChecked(settings.value("useCustomProtocol", false).toBool()); QString protocol_mode = settings.value("protocolMode", "automatic").toString();
if(protocol_mode == "manual")
ui->protocolModeBox->setCurrentIndex(1);
else if(protocol_mode == "custom")
ui->protocolModeBox->setCurrentIndex(2);
else
ui->protocolModeBox->setCurrentIndex(0);
protocolModeChanged(ui->protocolModeBox->currentIndex());
ui->protocolBox->setCurrentIndex(settings.value("protocolIndex", 0).toInt()); ui->protocolBox->setCurrentIndex(settings.value("protocolIndex", 0).toInt());
bool ok; bool ok;
@@ -190,9 +226,15 @@ void ConfigWidget::accept()
settings.setValue("photoSkip", ui->photoSkipCheck->isChecked()); settings.setValue("photoSkip", ui->photoSkipCheck->isChecked());
settings.setValue("videoSkip", ui->videoSkipCheck->isChecked()); settings.setValue("videoSkip", ui->videoSkipCheck->isChecked());
settings.setValue("musicSkip", ui->musicSkipCheck->isChecked()); settings.setValue("musicSkip", ui->musicSkipCheck->isChecked());
settings.setValue("useCustomProtocol", ui->customProtocolCheckBox->isChecked());
settings.setValue("protocolIndex", ui->protocolBox->currentIndex()); settings.setValue("protocolIndex", ui->protocolBox->currentIndex());
if(ui->protocolModeBox->currentIndex() == 0)
settings.setValue("protocolMode", "automatic");
else if(ui->protocolModeBox->currentIndex() == 1)
settings.setValue("protocolMode", "manual");
else if(ui->protocolModeBox->currentIndex() == 2)
settings.setValue("protocolMode", "custom");
bool ok; bool ok;
int protocol = ui->protocolEdit->text().toInt(&ok); int protocol = ui->protocolEdit->text().toInt(&ok);

View File

@@ -47,6 +47,7 @@ private:
Ui::ConfigWidget *ui; Ui::ConfigWidget *ui;
private slots: private slots:
void protocolModeChanged(int index);
void browseBtnPressed(int from); void browseBtnPressed(int from);
void accept(); void accept();
}; };

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>532</width> <width>519</width>
<height>457</height> <height>525</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -375,17 +375,17 @@
<property name="fieldGrowthPolicy"> <property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum> <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property> </property>
<item row="0" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_10"> <widget class="QLabel" name="label_10">
<property name="text"> <property name="text">
<string>CMA Protocol version</string> <string>CMA protocol version</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="1" column="1">
<widget class="QComboBox" name="protocolBox"> <widget class="QComboBox" name="protocolBox">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
@@ -425,34 +425,27 @@
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>FW 1.80 - 1300010</string> <string notr="true">FW 1.80 - 1300010</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>FW 1.60 - 1200010</string> <string notr="true">FW 1.60 - 1200010</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>FW 1.50 - 1100010</string> <string notr="true">FW 1.50 - 1100010</string>
</property> </property>
</item> </item>
<item> <item>
<property name="text"> <property name="text">
<string>FW 1.00 - 1000010</string> <string notr="true">FW 1.00 - 1000010</string>
</property> </property>
</item> </item>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="2" column="1">
<widget class="QCheckBox" name="customProtocolCheckBox">
<property name="text">
<string>Use custom version</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="protocolEdit"> <widget class="QLineEdit" name="protocolEdit">
<property name="inputMask"> <property name="inputMask">
<string notr="true">9999999</string> <string notr="true">9999999</string>
@@ -462,6 +455,39 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>CMA protocol selection</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="protocolModeBox">
<item>
<property name="text">
<string>Latest</string>
</property>
</item>
<item>
<property name="text">
<string>Manual</string>
</property>
</item>
<item>
<property name="text">
<string>Custom</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>CMA custom version</string>
</property>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>

View File

@@ -215,14 +215,21 @@ void MainWidget::refreshDatabase()
TrayIndicator *MainWidget::createTrayObject(QWidget *parent) TrayIndicator *MainWidget::createTrayObject(QWidget *parent)
{ {
TrayFunctionPointer create_tray = NULL; TrayFunctionPointer create_tray = NULL;
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
QString desktop = getenv("XDG_CURRENT_DESKTOP"); QString desktop = getenv("XDG_CURRENT_DESKTOP");
qDebug() << "Current desktop: " << desktop; qDebug() << "Current desktop: " << desktop;
#ifdef QT_DEBUG
QString library_path = QApplication::applicationDirPath();
#else
QString library_path = "/usr/lib/qcma";
#endif
if(desktop.toLower() == "kde") if(desktop.toLower() == "kde")
{ {
// KDENotifier // KDENotifier
QLibrary library("/usr/lib/qcma/libqcma_kdenotifier.so"); QLibrary library(library_path + "/libqcma_kdenotifier.so");
if(library.load()) if(library.load())
create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator")); create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator"));
else else
@@ -233,7 +240,7 @@ TrayIndicator *MainWidget::createTrayObject(QWidget *parent)
// if(desktop.toLower() == "unity") // if(desktop.toLower() == "unity")
{ {
// AppIndicator // AppIndicator
QLibrary library("/usr/lib/qcma/libqcma_appindicator.so"); QLibrary library(library_path + "/libqcma_appindicator.so");
if(library.load()) if(library.load())
create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator")); create_tray = reinterpret_cast<TrayFunctionPointer>(library.resolve("createTrayIndicator"));
else else

View File

@@ -35,7 +35,7 @@ class TrayIndicator : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
virtual ~TrayIndicator() {} ~TrayIndicator() {}
virtual void init() = 0; virtual void init() = 0;
virtual bool isVisible() = 0; virtual bool isVisible() = 0;
virtual void setIcon(const QString &icon) = 0; virtual void setIcon(const QString &icon) = 0;