9 Commits

18 changed files with 381 additions and 18 deletions

View File

@@ -25,3 +25,11 @@ endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
add_subdirectory(src)
install(
PROGRAMS
install.sh
DESTINATION
.
)

View File

@@ -0,0 +1,27 @@
K1;3d1a77ec-265f-4905-2061-4f1003ee2189;O1;net.drinkingtea.nostalgia.core.Palette;4;{
"colorNames" :
[
"Color 1",
"Color 2",
"Color 3"
],
"pages" :
[
{
"colors" :
[
{
"b" : 10,
"g" : 5,
"r" : 5
},
{},
{
"b" : 31,
"g" : 31,
"r" : 31
}
]
}
]
}

View File

@@ -0,0 +1,269 @@
K1;40f7b4ac-7f90-409e-80e0-64b59b594a63;O1;net.drinkingtea.nostalgia.gfx.TileSheet;5;{
"bpp" : 4,
"defaultPalette" : "uuid://3d1a77ec-265f-4905-2061-4f1003ee2189",
"subsheet" :
{
"columns" : 2,
"name" : "Root",
"pixels" :
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
0,
2,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
2,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2,
0,
2,
0,
0,
0,
0,
0,
2,
0,
0,
2,
0,
0,
0,
0,
2,
0,
0,
0,
2,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"rows" : 2
}
}

13
install.sh Normal file
View File

@@ -0,0 +1,13 @@
#! /usr/bin/env bash
set -eu
dist_dir=.
install -Dm 755 $dist_dir/bin/SlideController /usr/local/bin/SlideController
install -Dm 755 $dist_dir/share/applications/net.drinkingtea.sc9k.desktop /usr/share/applications/net.drinkingtea.sc9k.desktop
cp -r $dist_dir/share/ /usr/
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
sudo gtk-update-icon-cache /usr/share/icons/hicolor
fi

5
release-notes.md Normal file
View File

@@ -0,0 +1,5 @@
# 1.1.0
* Add Linux app icon, desktop file, and install script
* Rename MusicScene SlidesScene and SpeakerScene to NoSlidesScene

View File

@@ -33,3 +33,30 @@ install(
BUNDLE DESTINATION .
)
install(
DIRECTORY
icons
DESTINATION
share
)
install(
FILES
net.drinkingtea.sc9k.desktop
DESTINATION
share/applications
)
if(UNIX)
qt_add_resources(
SlideController "app_images"
PREFIX "/"
FILES
icons/hicolor/16x16/apps/net.drinkingtea.sc9k.png
icons/hicolor/32x32/apps/net.drinkingtea.sc9k.png
icons/hicolor/64x64/apps/net.drinkingtea.sc9k.png
icons/hicolor/128x128/apps/net.drinkingtea.sc9k.png
icons/hicolor/256x256/apps/net.drinkingtea.sc9k.png
icons/hicolor/512x512/apps/net.drinkingtea.sc9k.png
)
endif()

View File

@@ -10,5 +10,5 @@
constexpr auto MaxCameraPresets = 9;
constexpr auto MaxViews = 9;
constexpr auto Version = "1.0-beta6";
constexpr auto Version = "1.1.0";

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 B

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

View File

@@ -13,12 +13,22 @@
int main(int argc, char *argv[]) {
QSettings::setDefaultFormat(QSettings::Format::IniFormat);
#ifndef __APPLE__
#ifdef _WIN32
QApplication::setStyle("Fusion");
#endif
QApplication a(argc, argv);
QApplication::setOrganizationName("DrinkingTea");
QApplication::setApplicationName("Slide Controller 9000");
#ifdef __linux
QIcon icon;
icon.addFile(":/icons/hicolor/16x16/apps/net.drinkingtea.sc9k.png");
icon.addFile(":/icons/hicolor/32x32/apps/net.drinkingtea.sc9k.png");
icon.addFile(":/icons/hicolor/64x64/apps/net.drinkingtea.sc9k.png");
icon.addFile(":/icons/hicolor/128x128/apps/net.drinkingtea.sc9k.png");
icon.addFile(":/icons/hicolor/256x256/apps/net.drinkingtea.sc9k.png");
icon.addFile(":/icons/hicolor/512x512/apps/net.drinkingtea.sc9k.png");
QApplication::setWindowIcon(icon);
#endif
MainWindow w;
w.show();
return QApplication::exec();

View File

@@ -121,18 +121,6 @@ void MainWindow::setupMenu() {
});
menu->addAction(cameraPresetAct);
}
menu->addSeparator();
auto const rebootAct = new QAction(tr("&Reboot"), this);
connect(rebootAct, &QAction::triggered, &m_cameraClient, [this] {
QMessageBox confirm(this);
confirm.setText(tr("Are you sure you want to reboot the camera? This will take about 20 seconds."));
confirm.addButton(tr("&No"), QMessageBox::ButtonRole::NoRole);
confirm.addButton(tr("&Yes"), QMessageBox::ButtonRole::YesRole);
if (confirm.exec()) {
m_cameraClient.reboot();
}
});
menu->addAction(rebootAct);
}
// help menu
{

View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Name=Slide Controller 9000
Comment=Slide and Live Stream Coordinator
GenericName=Slide and Live Stream Coordinator
X-GNOME-FullName=Slide Controller 9000
Type=Application
Exec=/usr/local/bin/SlideController
Terminal=false
X-MultipleArgs=false
Icon=net.drinkingtea.sc9k
Categories=Multimedia
Keywords=slide;controller;sc9k
StartupWMClass=SlideController
StartupNotify=false

View File

@@ -26,18 +26,18 @@ void OBSClient::setScene(QString const&scene) {
}
void OBSClient::showSlides() {
setScene("MusicScene");
setScene(SceneSlides);
}
void OBSClient::hideSlides() {
setScene("SpeakerScene");
setScene(SceneNoSlides);
}
void OBSClient::setSlidesVisible(bool state) {
if (state) {
setScene("MusicScene");
setScene(SceneSlides);
} else {
setScene("SpeakerScene");
setScene(SceneNoSlides);
}
}

View File

@@ -17,6 +17,8 @@
class OBSClient: public QObject {
Q_OBJECT
private:
static constexpr auto SceneSlides = "SlidesScene";
static constexpr auto SceneNoSlides = "NoSlidesScene";
QString m_baseUrl;
QNetworkAccessManager *m_nam = new QNetworkAccessManager(this);
QNetworkAccessManager *m_pollingNam = new QNetworkAccessManager(this);