@@ -1,3 +1,5 @@
const std = @import("std");
pub const obs = @cImport({
@cInclude("obs/util/base.h");
@cInclude("obs/obs-module.h");
@@ -9,6 +11,30 @@ pub const obs = @cImport({
const obs_frontend_cb = *const fn (?*anyopaque) callconv(.C) void;
extern "obs-frontend-api" fn obs_frontend_add_tools_menu_item(name: [*:0]const u8, cb: obs_frontend_cb, ?*anyopaque) void;
extern "obs-frontend-api" fn obs_frontend_get_current_scene() ?*obs.obs_source_t;
extern "obs-frontend-api" fn obs_frontend_set_current_scene(*obs.obs_source_t) callconv(.C) void;
extern "obs-frontend-api" fn obs_frontend_get_scene_names() callconv(.C) [*:null]?[*c]u8;
pub fn currentScene() ?[:0]const u8 {
_ = obs_frontend_get_current_scene() orelse return null;
//const t = @as(?*obs.obs_source_info, @ptrCast(scene));
//if (t.?.get_name) |_gn| {
// const name: ?[*c]const u8 = _gn(scene);
// if (name) |n| return std.mem.span(n);
//}
return null;
}
pub fn setCurrentScene(scene: ?*obs.obs_source_t) void {
obs_frontend_set_current_scene(scene);
}
pub fn getSceneNames() [:null]?[*c]const u8 {
return std.mem.span(obs_frontend_get_scene_names());
}
pub fn init() void {
propertiesInit();
//obs.obs_register_service(&focus_service);