mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-14 23:34:08 +00:00
move libobs C++ bindings to libobs
This commit is contained in:
parent
922eb7b8e8
commit
991b5739d6
100
libobs/obs.hpp
Normal file
100
libobs/obs.hpp
Normal file
|
@ -0,0 +1,100 @@
|
|||
/******************************************************************************
|
||||
Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
|
||||
/* Useful C++ classes and bindings for base obs data */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "obs.h"
|
||||
|
||||
/* RAII wrappers */
|
||||
|
||||
class OBSSource {
|
||||
obs_source_t source;
|
||||
|
||||
OBSSource(OBSSource &&) = delete;
|
||||
OBSSource(OBSSource const&) = delete;
|
||||
|
||||
OBSSource &operator=(OBSSource const&) = delete;
|
||||
|
||||
public:
|
||||
inline OBSSource(obs_source_t source) : source(source) {}
|
||||
inline ~OBSSource() {obs_source_release(source);}
|
||||
|
||||
inline OBSSource& operator=(obs_source_t p) {source = p; return *this;}
|
||||
|
||||
inline operator obs_source_t() {return source;}
|
||||
|
||||
inline bool operator==(obs_source_t p) const {return source == p;}
|
||||
inline bool operator!=(obs_source_t p) const {return source != p;}
|
||||
};
|
||||
|
||||
class OBSSourceRef {
|
||||
obs_source_t source;
|
||||
|
||||
public:
|
||||
inline OBSSourceRef(obs_source_t source) : source(source)
|
||||
{
|
||||
obs_source_addref(source);
|
||||
}
|
||||
|
||||
inline OBSSourceRef(const OBSSourceRef &ref) : source(ref.source)
|
||||
{
|
||||
obs_source_addref(source);
|
||||
}
|
||||
|
||||
inline OBSSourceRef(OBSSourceRef &&ref) : source(ref.source)
|
||||
{
|
||||
ref.source = NULL;
|
||||
}
|
||||
|
||||
inline ~OBSSourceRef() {obs_source_release(source);}
|
||||
|
||||
inline OBSSourceRef &operator=(obs_source_t sourceIn)
|
||||
{
|
||||
obs_source_addref(sourceIn);
|
||||
obs_source_release(source);
|
||||
source = sourceIn;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline OBSSourceRef &operator=(const OBSSourceRef &ref)
|
||||
{
|
||||
obs_source_addref(ref.source);
|
||||
obs_source_release(source);
|
||||
source = ref.source;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline OBSSourceRef &operator=(OBSSourceRef &&ref)
|
||||
{
|
||||
if (this != &ref) {
|
||||
source = ref.source;
|
||||
ref.source = NULL;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline operator obs_source_t() const {return source;}
|
||||
|
||||
inline bool operator==(obs_source_t p) const {return source == p;}
|
||||
inline bool operator!=(obs_source_t p) const {return source != p;}
|
||||
};
|
|
@ -15,14 +15,15 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
|
||||
/* Useful C++ classes/bindings for util data and pointers */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <util/config-file.h>
|
||||
#include <util/text-lookup.h>
|
||||
#include <obs.h>
|
||||
#include "config-file.h"
|
||||
#include "text-lookup.h"
|
||||
|
||||
/* RAII wrappers */
|
||||
|
||||
|
@ -71,18 +72,18 @@ public:
|
|||
return config != NULL;
|
||||
}
|
||||
|
||||
int Open(const char *file, config_open_type openType)
|
||||
inline int Open(const char *file, config_open_type openType)
|
||||
{
|
||||
Close();
|
||||
return config_open(&config, file, openType);
|
||||
}
|
||||
|
||||
int Save()
|
||||
inline int Save()
|
||||
{
|
||||
return config_save(config);
|
||||
}
|
||||
|
||||
void Close()
|
||||
inline void Close()
|
||||
{
|
||||
config_close(config);
|
||||
config = NULL;
|
||||
|
@ -124,76 +125,3 @@ public:
|
|||
return out;
|
||||
}
|
||||
};
|
||||
|
||||
class OBSSource {
|
||||
obs_source_t source;
|
||||
|
||||
OBSSource(OBSSource &&) = delete;
|
||||
OBSSource(OBSSource const&) = delete;
|
||||
|
||||
OBSSource &operator=(OBSSource const&) = delete;
|
||||
|
||||
public:
|
||||
inline OBSSource(obs_source_t source) : source(source) {}
|
||||
inline ~OBSSource() {obs_source_release(source);}
|
||||
|
||||
inline OBSSource& operator=(obs_source_t p) {source = p; return *this;}
|
||||
|
||||
inline operator obs_source_t() {return source;}
|
||||
|
||||
inline bool operator==(obs_source_t p) const {return source == p;}
|
||||
inline bool operator!=(obs_source_t p) const {return source != p;}
|
||||
};
|
||||
|
||||
class OBSSourceRef {
|
||||
obs_source_t source;
|
||||
|
||||
public:
|
||||
inline OBSSourceRef(obs_source_t source) : source(source)
|
||||
{
|
||||
obs_source_addref(source);
|
||||
}
|
||||
|
||||
inline OBSSourceRef(const OBSSourceRef &ref) : source(ref.source)
|
||||
{
|
||||
obs_source_addref(source);
|
||||
}
|
||||
|
||||
inline OBSSourceRef(OBSSourceRef &&ref) : source(ref.source)
|
||||
{
|
||||
ref.source = NULL;
|
||||
}
|
||||
|
||||
inline ~OBSSourceRef() {obs_source_release(source);}
|
||||
|
||||
inline OBSSourceRef &operator=(obs_source_t sourceIn)
|
||||
{
|
||||
obs_source_addref(sourceIn);
|
||||
obs_source_release(source);
|
||||
source = sourceIn;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline OBSSourceRef &operator=(const OBSSourceRef &ref)
|
||||
{
|
||||
obs_source_addref(ref.source);
|
||||
obs_source_release(source);
|
||||
source = ref.source;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline OBSSourceRef &operator=(OBSSourceRef &&ref)
|
||||
{
|
||||
if (this != &ref) {
|
||||
source = ref.source;
|
||||
ref.source = NULL;
|
||||
}
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline operator obs_source_t() const {return source;}
|
||||
|
||||
inline bool operator==(obs_source_t p) const {return source == p;}
|
||||
inline bool operator!=(obs_source_t p) const {return source != p;}
|
||||
};
|
|
@ -21,9 +21,10 @@
|
|||
#include <util/dstr.h>
|
||||
#include <util/platform.h>
|
||||
|
||||
#include <obs.hpp>
|
||||
|
||||
#include "obs-app.hpp"
|
||||
#include "window-main-basic.hpp"
|
||||
#include "obs-wrappers.hpp"
|
||||
#include "wx-wrappers.hpp"
|
||||
#include "platform.hpp"
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
#include <wx/app.h>
|
||||
|
||||
#include "obs-wrappers.hpp"
|
||||
#include <util/util.hpp>
|
||||
|
||||
class OBSAppBase : public wxApp {
|
||||
public:
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
|
||||
#include <util/bmem.h>
|
||||
|
||||
#include "obs-app.hpp"
|
||||
#include "settings-basic.hpp"
|
||||
#include "window-settings-basic.hpp"
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
|
||||
#include <obs.hpp>
|
||||
|
||||
#include "obs-app.hpp"
|
||||
#include "window-settings-basic.hpp"
|
||||
#include "window-main-basic.hpp"
|
||||
|
|
|
@ -185,7 +185,6 @@
|
|||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\obs\forms\OBSWindows.h" />
|
||||
<ClInclude Include="..\..\..\obs\obs-app.hpp" />
|
||||
<ClInclude Include="..\..\..\obs\obs-wrappers.hpp" />
|
||||
<ClInclude Include="..\..\..\obs\platform.hpp" />
|
||||
<ClInclude Include="..\..\..\obs\settings-basic.hpp" />
|
||||
<ClInclude Include="..\..\..\obs\settings.hpp" />
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
<ClInclude Include="..\..\..\obs\obs-app.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\obs\obs-wrappers.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\obs\wx-wrappers.hpp">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
|
Loading…
Reference in a new issue