implement scene adding callbacks, make a few API tweaks
This commit is contained in:
@@ -22,6 +22,37 @@
|
||||
#include "window-settings-basic.hpp"
|
||||
#include "window-main-basic.hpp"
|
||||
|
||||
void OBSBasic::SceneAdded(obs_source_t source)
|
||||
{
|
||||
const char *name = obs_source_getname(source);
|
||||
obs_scene_t scene = obs_scene_fromsource(source);
|
||||
scenes->Append(wxString(name, wxConvUTF8), scene);
|
||||
}
|
||||
|
||||
void OBSBasic::SourceAdded(void *data, calldata_t params)
|
||||
{
|
||||
OBSBasic *window = (OBSBasic*)data;
|
||||
|
||||
obs_source_t source;
|
||||
calldata_getptr(params, "source", (void**)&source);
|
||||
|
||||
obs_source_type type;
|
||||
obs_source_gettype(source, &type, NULL);
|
||||
|
||||
if (type == SOURCE_SCENE)
|
||||
window->SceneAdded(source);
|
||||
}
|
||||
|
||||
void OBSBasic::SourceDestroyed(void *data, calldata_t params)
|
||||
{
|
||||
OBSBasic *window = (OBSBasic*)data;
|
||||
obs_source_t source;
|
||||
|
||||
calldata_getptr(params, "source", (void**)&source);
|
||||
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
bool OBSBasic::Init()
|
||||
{
|
||||
if (!obs_startup())
|
||||
@@ -29,6 +60,16 @@ bool OBSBasic::Init()
|
||||
if (!InitGraphics())
|
||||
return false;
|
||||
|
||||
signal_handler_connect(obs_signalhandler(), "source-add",
|
||||
OBSBasic::SourceAdded, this);
|
||||
signal_handler_connect(obs_signalhandler(), "source-destroy",
|
||||
OBSBasic::SourceDestroyed, this);
|
||||
|
||||
//obs_scene_t scene = obs_scene_create("test scene");
|
||||
//obs_add_source(obs_scene_getsource(scene));
|
||||
|
||||
//obs_load_module("test-input");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -67,11 +108,6 @@ bool OBSBasic::InitGraphics()
|
||||
return true;
|
||||
}
|
||||
|
||||
bool OBSBasic::AddScene(const char *name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void OBSBasic::OnClose(wxCloseEvent &event)
|
||||
{
|
||||
wxGetApp().ExitMainLoop();
|
||||
|
@@ -25,6 +25,11 @@
|
||||
using namespace std;
|
||||
|
||||
class OBSBasic : public OBSBasicBase {
|
||||
void SceneAdded(obs_source_t scene);
|
||||
|
||||
static void SourceAdded(void *data, calldata_t params);
|
||||
static void SourceDestroyed(void *data, calldata_t params);
|
||||
|
||||
bool InitGraphics();
|
||||
|
||||
void NewProject();
|
||||
@@ -60,8 +65,6 @@ public:
|
||||
|
||||
bool Init();
|
||||
|
||||
bool AddScene(const char *name);
|
||||
|
||||
inline wxPanel *GetPreviewPanel() {return previewPanel;}
|
||||
inline wxSizer *GetPreviewContainer() {return previewContainer;}
|
||||
};
|
||||
|
Reference in New Issue
Block a user