#ifndef SCREEN_RECORDER_OBS_MANAGER_HPP #define SCREEN_RECORDER_OBS_MANAGER_HPP #include #include #include #include #include #include #include "settings-manager.hpp" using namespace Glib; using namespace std; class OBSManager { public: OBSManager(); virtual ~OBSManager(); ustring GetVersion(); void Initialize(); void SetPreviewWindow(XID wid, Display *wdisplay); void StartRecording(); void StopRecording(); obs_source_t *CreateScreenSource(); obs_source_t *CreateWebcamSource(); obs_source_t *CreateAudioSource(); void Cleanup(); void LoadSettings(SettingsManager *settings); int PreviewWidth = 1280; int PreviewHeight = 720; private: bool isInitialized = false; bool isRecording = false; obs_display_t *display; obs_output_t *output; list sources; ustring mPluginDir; ustring mOutputDir; ustring mWebcamDeviceID; void printTypes(); // Plugins list mPlugins; void loadPlugin(ustring name); void loadPlugins(); }; #endif