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

#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");
}