/
pyutil.h
63 lines (52 loc) · 2.07 KB
/
pyutil.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* Copyright (C) 2005-2008 Team XBMC
* http://www.xbmc.org
*
* 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, 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 XBMC; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include <Python.h>
#include "utils/StdString.h"
#ifdef __cplusplus
extern "C" {
#endif
// credits and version information
#define PY_XBMC_AUTHOR "Team XBMC <www.xbmc.org>"
#define PY_XBMC_CREDITS "Team XBMC"
#define PY_XBMC_PLATFORM "ALL"
namespace PYXBMC
{
int PyXBMCGetUnicodeString(std::string& buf, PyObject* pObject, int pos = -1);
void PyXBMCGUILock();
void PyXBMCGUIUnlock();
const char* PyXBMCGetDefaultImage(char* controlType, char* textureType, char* cDefault);
bool PyXBMCWindowIsNull(void* pWindow);
void PyXBMCInitializeTypeObject(PyTypeObject* type_object);
void PyXBMCWaitForThreadMessage(int message, int param1, int param2);
bool PyXBMCGetAddonId(std::string &addonId);
}
// Python doesn't play nice with PyXBMC_AddPendingCall
// and PyXBMC_MakePendingCalls as it only allows them from
// the main python thread, which isn't what we want, so we have our own versions.
#define PyXBMC_AddPendingCall _PyXBMC_AddPendingCall
#define PyXBMC_MakePendingCalls _PyXBMC_MakePendingCalls
#define PyXBMC_ClearPendingCalls _PyXBMC_ClearPendingCalls
void _PyXBMC_AddPendingCall(PyThreadState* state, int(*func)(void*), void *arg);
void _PyXBMC_MakePendingCalls();
void _PyXBMC_ClearPendingCalls(PyThreadState* state);
#ifdef __cplusplus
}
#endif