#ifndef SCREEN_RECORDER_OBS_MANAGER_HPP #define SCREEN_RECORDER_OBS_MANAGER_HPP #include "settings-manager.hpp" #include #include #include #include #include using namespace std; class OBSManager { public: OBSManager(); virtual ~OBSManager(); string GetVersion(); void Initialize(); void SetPreviewWindow(XID wid, Display *wdisplay); void StartRecording(); void StopRecording(); OBSSource CreateScreenSource(); OBSSource CreateWebcamSource(); OBSSource CreateAudioSource(); void Cleanup(); void LoadSettings(SettingsManager *settings); bool IsRecording(); int PreviewWidth = 1280; int PreviewHeight = 720; // Signals sigc::signal startRecording; sigc::signal stopRecording; private: void printTypes(); bool isInitialized = false; bool isRecording = false; OBSDisplay mDisplay; OBSOutput mOutput; OBSSignal obsStartRecording; OBSSignal obsStopRecording; list mSources; string mPluginDir; string mOutputDir; string mWebcamDeviceID; // Plugins void loadPlugin(string name); void loadPlugins(); list mPlugins; }; #endif