You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.1 KiB
95 lines
2.1 KiB
#include "main-window.hpp"
|
|
#include "obs-manager.hpp"
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <gdk/gdkx.h>
|
|
|
|
using namespace std;
|
|
|
|
MainWindow::MainWindow(OBSManager *obs)
|
|
: mBoxMain(Gtk::Orientation::ORIENTATION_VERTICAL, 2),
|
|
mButtonPreview("Start Preview"),
|
|
mButtonStart("Start Recording"),
|
|
mButtonSettings("Settings"),
|
|
mButtonExit("Exit"),
|
|
mLabelVersion("Version: "),
|
|
mSettingsWindow(obs),
|
|
mPreviewWindow(obs)
|
|
{
|
|
set_title("New Recording");
|
|
set_default_size(1048, 720);
|
|
set_border_width(10);
|
|
|
|
mOBS = obs;
|
|
mOBS->startRecording.connect(sigc::mem_fun(*this, &MainWindow::recordingStarted));
|
|
mOBS->stopRecording.connect(sigc::mem_fun(*this, &MainWindow::recordingStopped));
|
|
|
|
mButtonPreview.signal_clicked().connect(
|
|
sigc::mem_fun(*this, &MainWindow::onPreviewClicked));
|
|
mButtonStart.signal_clicked().connect(
|
|
sigc::mem_fun(*this, &MainWindow::onStartClicked));
|
|
mButtonSettings.signal_clicked().connect(
|
|
sigc::mem_fun(*this, &MainWindow::onSettingsClicked));
|
|
mButtonExit.signal_clicked().connect(
|
|
sigc::mem_fun(*this, &MainWindow::onExitClicked));
|
|
|
|
mBoxMain.add(mButtonPreview);
|
|
mBoxMain.add(mButtonStart);
|
|
mBoxMain.add(mButtonSettings);
|
|
mBoxMain.add(mButtonExit);
|
|
mBoxMain.add(mLabelVersion);
|
|
|
|
add(mBoxMain);
|
|
mBoxMain.show_all();
|
|
|
|
string version;
|
|
version.append("OBS Version: ");
|
|
version.append(obs->GetVersion());
|
|
mLabelVersion.set_text(version);
|
|
|
|
mOBS->Initialize();
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
mOBS->Cleanup();
|
|
}
|
|
|
|
void MainWindow::onPreviewClicked()
|
|
{
|
|
mPreviewWindow.show();
|
|
}
|
|
|
|
void MainWindow::onStartClicked()
|
|
{
|
|
if (mOBS->IsRecording())
|
|
mOBS->StopRecording();
|
|
else
|
|
mOBS->StartRecording();
|
|
}
|
|
|
|
void MainWindow::onSettingsClicked()
|
|
{
|
|
mSettingsWindow.set_transient_for(*this);
|
|
mSettingsWindow.show();
|
|
}
|
|
|
|
void MainWindow::onExitClicked()
|
|
{
|
|
mOBS->Cleanup();
|
|
Gtk::Main::quit();
|
|
}
|
|
|
|
void MainWindow::recordingStarted()
|
|
{
|
|
mButtonStart.set_label("Stop Recording");
|
|
}
|
|
|
|
void MainWindow::recordingStopped()
|
|
{
|
|
mButtonStart.set_label("Start Recording");
|
|
}
|
|
|
|
|
|
|