libobs-wrapper 9.0.4+32.0.2

A safe wrapper around libobs
use num_derive::{FromPrimitive, ToPrimitive};

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsPropertyType {
    Invalid = libobs::obs_property_type_OBS_PROPERTY_INVALID,
    Bool = libobs::obs_property_type_OBS_PROPERTY_BOOL,
    Int = libobs::obs_property_type_OBS_PROPERTY_INT,
    Float = libobs::obs_property_type_OBS_PROPERTY_FLOAT,
    Text = libobs::obs_property_type_OBS_PROPERTY_TEXT,
    Path = libobs::obs_property_type_OBS_PROPERTY_PATH,
    List = libobs::obs_property_type_OBS_PROPERTY_LIST,
    Color = libobs::obs_property_type_OBS_PROPERTY_COLOR,
    Button = libobs::obs_property_type_OBS_PROPERTY_BUTTON,
    Font = libobs::obs_property_type_OBS_PROPERTY_FONT,
    EditableList = libobs::obs_property_type_OBS_PROPERTY_EDITABLE_LIST,
    FrameRate = libobs::obs_property_type_OBS_PROPERTY_FRAME_RATE,
    Group = libobs::obs_property_type_OBS_PROPERTY_GROUP,
    ColorAlpha = libobs::obs_property_type_OBS_PROPERTY_COLOR_ALPHA,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsComboFormat {
    Invalid = libobs::obs_combo_format_OBS_COMBO_FORMAT_INVALID,
    Int = libobs::obs_combo_format_OBS_COMBO_FORMAT_INT,
    Float = libobs::obs_combo_format_OBS_COMBO_FORMAT_FLOAT,
    String = libobs::obs_combo_format_OBS_COMBO_FORMAT_STRING,
    Bool = libobs::obs_combo_format_OBS_COMBO_FORMAT_BOOL,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsComboType {
    Invalid = libobs::obs_combo_type_OBS_COMBO_TYPE_INVALID,
    Editable = libobs::obs_combo_type_OBS_COMBO_TYPE_EDITABLE,
    List = libobs::obs_combo_type_OBS_COMBO_TYPE_LIST,
    Radio = libobs::obs_combo_type_OBS_COMBO_TYPE_RADIO,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsTextType {
    Default = libobs::obs_text_type_OBS_TEXT_DEFAULT,
    Password = libobs::obs_text_type_OBS_TEXT_PASSWORD,
    Multiline = libobs::obs_text_type_OBS_TEXT_MULTILINE,
    Info = libobs::obs_text_type_OBS_TEXT_INFO,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsTextInfoType {
    Normal = libobs::obs_text_info_type_OBS_TEXT_INFO_NORMAL,
    Warning = libobs::obs_text_info_type_OBS_TEXT_INFO_WARNING,
    Error = libobs::obs_text_info_type_OBS_TEXT_INFO_ERROR,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsNumberType {
    Scroller = libobs::obs_number_type_OBS_NUMBER_SCROLLER,
    Slider = libobs::obs_number_type_OBS_NUMBER_SLIDER,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsPathType {
    File = libobs::obs_path_type_OBS_PATH_FILE,
    FileSave = libobs::obs_path_type_OBS_PATH_FILE_SAVE,
    Directory = libobs::obs_path_type_OBS_PATH_DIRECTORY,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsEditableListType {
    Strings = libobs::obs_editable_list_type_OBS_EDITABLE_LIST_TYPE_STRINGS,
    Files = libobs::obs_editable_list_type_OBS_EDITABLE_LIST_TYPE_FILES,
    FilesAndUrls = libobs::obs_editable_list_type_OBS_EDITABLE_LIST_TYPE_FILES_AND_URLS,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsGroupType {
    Invalid = libobs::obs_group_type_OBS_COMBO_INVALID,
    Normal = libobs::obs_group_type_OBS_GROUP_NORMAL,
    Checkable = libobs::obs_group_type_OBS_GROUP_CHECKABLE,
}

#[cfg_attr(target_os = "windows", repr(i32))]
#[cfg_attr(not(target_os = "windows"), repr(u32))]
#[derive(Clone, Copy, Debug, PartialEq, Eq, FromPrimitive, ToPrimitive)]
pub enum ObsButtonType {
    Default = libobs::obs_button_type_OBS_BUTTON_DEFAULT,
    Url = libobs::obs_button_type_OBS_BUTTON_URL,
}