mirror of https://github.com/sipwise/sems.git
- added an example for py_sems (py_sems_ex/early_media.py). - added audio features to py_sems. git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@233 8eb893ce-cfd4-0310-b710-fb5ebe64c474sayer/1.4-spce2.6
parent
5bc77367f5
commit
e6fa3fd711
@ -0,0 +1,110 @@
|
||||
import base64,time,os
|
||||
|
||||
from py_sems_log import *
|
||||
from py_sems import *
|
||||
from py_sems_lib import *
|
||||
|
||||
class PySemsScript(PySemsDialog):
|
||||
|
||||
def __init__(self):
|
||||
|
||||
debug("***** __init__ *******")
|
||||
PySemsDialog.__init__(self)
|
||||
self.initial_req = None
|
||||
self.ann = None
|
||||
|
||||
def onInvite(self,req):
|
||||
|
||||
|
||||
ann_file = self.getAnnounceFile(req)
|
||||
self.ann = AmAudioFile()
|
||||
|
||||
try:
|
||||
self.ann.open(ann_file)
|
||||
|
||||
self.initial_req = AmSipRequest(req)
|
||||
debug("dlg.local_tag: %s" % self.dlg.local_tag)
|
||||
|
||||
debug("***** onInvite *******")
|
||||
(res,sdp_reply) = self.acceptAudio(req.body,req.hdrs)
|
||||
if res < 0:
|
||||
self.dlg.reply(req,500)
|
||||
|
||||
debug("res = %s" % repr(res))
|
||||
debug("sdp_reply = %s" % sdp_reply)
|
||||
|
||||
if self.dlg.reply(req,183,"OK","application/sdp",sdp_reply,"") <> 0:
|
||||
self.setStopped()
|
||||
except:
|
||||
self.dlg.reply(req,500,"File not found","","","")
|
||||
self.ann = None
|
||||
self.setStopped()
|
||||
raise
|
||||
|
||||
|
||||
def onSessionStart(self,req):
|
||||
|
||||
debug("***** onSessionStart *******")
|
||||
PySemsDialog.onSessionStart(self,req)
|
||||
|
||||
self.localreq = AmSipRequest(req)
|
||||
self.setOutput(self.ann)
|
||||
|
||||
|
||||
def onCancel(self):
|
||||
|
||||
debug("***** onCancel *******")
|
||||
|
||||
self.dlg.reply(self.initial_req,487,"Call terminated","","","")
|
||||
self.setStopped()
|
||||
|
||||
|
||||
def getAnnounceFile(self,req):
|
||||
|
||||
announce_file = config["announce_path"] + req.domain + "/" + get_header_param(req.r_uri, "play") + ".wav"
|
||||
|
||||
debug("trying '%s'",announce_file)
|
||||
if os.path.exists(announce_file):
|
||||
return announce_file
|
||||
|
||||
announce_file = config["announce_path"] + req.user + ".wav"
|
||||
debug("trying '%s'",announce_file)
|
||||
if os.path.exists(announce_file):
|
||||
return announce_file
|
||||
|
||||
announce_file = config["announce_path"] + config["announce_file"]
|
||||
debug("using default '%s'",announce_file)
|
||||
return announce_file
|
||||
|
||||
|
||||
def process(self,ev):
|
||||
|
||||
debug("*********** PySemsScript.process **************")
|
||||
if isinstance(ev,AmAudioEvent):
|
||||
if ev.event_id == AmAudioEvent.cleared:
|
||||
|
||||
debug("AmAudioEvent.cleared")
|
||||
|
||||
code = getHeader(self.localreq.hdrs,"P-Final-Reply-Code")
|
||||
reason = getHeader(self.localreq.hdrs,"P-Final-Reply-Reason")
|
||||
|
||||
if reason == "":
|
||||
reason = "OK"
|
||||
|
||||
code_i = 400
|
||||
try:
|
||||
code_i = int(code)
|
||||
if (code_i < 300) or (code_i>699):
|
||||
debug("Invalid reply code: %d",code_i)
|
||||
except:
|
||||
debug("Invalid reply code: %s",code)
|
||||
|
||||
debug("Replying %d %s" % (code_i, reason))
|
||||
self.dlg.reply(self.localreq, code_i, reason, "", "", "")
|
||||
self.setStopped()
|
||||
return
|
||||
|
||||
PySemsDialog.process(self,ev);
|
||||
return
|
||||
|
||||
|
||||
@ -0,0 +1,95 @@
|
||||
|
||||
struct AmEvent
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include "../../../core/AmEvent.h"
|
||||
%End
|
||||
|
||||
int event_id;
|
||||
bool processed;
|
||||
|
||||
AmEvent(int /*event_id*/);
|
||||
virtual ~AmEvent();
|
||||
|
||||
%ConvertToSubClassCode
|
||||
if(dynamic_cast<AmAudioEvent*>(sipCpp)){
|
||||
sipClass = sipClass_AmAudioEvent;
|
||||
}
|
||||
else {
|
||||
sipClass = sipClass_AmEvent;
|
||||
}
|
||||
%End
|
||||
|
||||
};
|
||||
|
||||
class AmAudioEvent: AmEvent
|
||||
{
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "../../../core/AmAudio.h"
|
||||
%End
|
||||
|
||||
public:
|
||||
enum EventType {
|
||||
|
||||
noAudio, // Audio class has nothing to play and/or record anymore
|
||||
|
||||
// Audio input & output have been cleared:
|
||||
// !!! sent only from AmSession !!!
|
||||
cleared
|
||||
};
|
||||
|
||||
AmAudioEvent(int /*id*/);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class AmAudioFile
|
||||
{
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "../../../core/AmAudio.h"
|
||||
%End
|
||||
|
||||
public:
|
||||
AmAudioFile();
|
||||
|
||||
|
||||
enum OpenMode {
|
||||
Read=1,
|
||||
Write=2
|
||||
};
|
||||
|
||||
bool getLoop();
|
||||
%MethodCode
|
||||
sipRes = sipCpp->loop.get();
|
||||
%End
|
||||
|
||||
void setLoop(bool);
|
||||
%MethodCode
|
||||
sipCpp->loop.set(a0);
|
||||
%End
|
||||
|
||||
|
||||
int open(const string& /*filename*/,
|
||||
OpenMode /*mode*/ = AmAudioFile::Read,
|
||||
bool /*is_tmp*/ = false);
|
||||
|
||||
void rewind();
|
||||
void close();
|
||||
int getDataSize();
|
||||
|
||||
|
||||
private:
|
||||
AmAudioFile(const AmAudioFile&);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,7 @@
|
||||
|
||||
%ModuleHeaderCode
|
||||
#include "AmUtils.h"
|
||||
%End
|
||||
|
||||
// get a header parameter value
|
||||
string get_header_param(const string& /*hdr_string*/, const string& /*param_name*/);
|
||||
@ -1,3 +1,3 @@
|
||||
target = py_sems_lib
|
||||
sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
|
||||
headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
|
||||
sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmAudioFile.cpp sippy_sems_libAmAudioEvent.cpp sippy_sems_libAmEvent.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
|
||||
headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmAudioFile.h sippy_sems_libAmAudioEvent.h sippy_sems_libAmEvent.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
|
||||
|
||||
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Interface wrapper code.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#include "sipAPIpy_sems_lib.h"
|
||||
#include "sippy_sems_libAmAudioEvent.h"
|
||||
|
||||
sipAmAudioEvent::sipAmAudioEvent(int a0): AmAudioEvent(a0), sipPySelf(0)
|
||||
{
|
||||
sipCommonCtor(NULL,0);
|
||||
}
|
||||
|
||||
sipAmAudioEvent::sipAmAudioEvent(const AmAudioEvent& a0): AmAudioEvent(a0), sipPySelf(0)
|
||||
{
|
||||
sipCommonCtor(NULL,0);
|
||||
}
|
||||
|
||||
sipAmAudioEvent::~sipAmAudioEvent()
|
||||
{
|
||||
sipCommonDtor(sipPySelf);
|
||||
}
|
||||
|
||||
|
||||
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
|
||||
static void *cast_AmAudioEvent(void *ptr,sipWrapperType *targetClass)
|
||||
{
|
||||
void *res;
|
||||
|
||||
if (targetClass == sipClass_AmAudioEvent)
|
||||
return ptr;
|
||||
|
||||
if ((res = sipCast_AmEvent((AmEvent *)(AmAudioEvent *)ptr,targetClass)) != NULL)
|
||||
return res;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void dealloc_AmAudioEvent(sipWrapper *sipSelf)
|
||||
{
|
||||
if (!sipIsSimple(sipSelf))
|
||||
reinterpret_cast<sipAmAudioEvent *>(sipSelf -> u.cppPtr) -> sipPySelf = NULL;
|
||||
|
||||
if (sipIsPyOwned(sipSelf))
|
||||
{
|
||||
if (!sipIsSimple(sipSelf))
|
||||
delete reinterpret_cast<sipAmAudioEvent *>(sipSelf -> u.cppPtr);
|
||||
else
|
||||
delete reinterpret_cast<AmAudioEvent *>(sipSelf -> u.cppPtr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void *init_AmAudioEvent(sipWrapper *sipSelf,PyObject *sipArgs,int *)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
sipAmAudioEvent *sipCpp = 0;
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
int a0;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"i",&a0))
|
||||
{
|
||||
sipCpp = new sipAmAudioEvent(a0);
|
||||
}
|
||||
}
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
const AmAudioEvent * a0;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"J1",sipClass_AmAudioEvent,&a0))
|
||||
{
|
||||
sipCpp = new sipAmAudioEvent(*a0);
|
||||
}
|
||||
}
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmAudioEvent);
|
||||
return 0;
|
||||
}
|
||||
|
||||
sipCpp -> sipPySelf = sipSelf;
|
||||
|
||||
return sipCpp;
|
||||
}
|
||||
|
||||
|
||||
static void *forceConvertTo_AmAudioEvent(PyObject *valobj,int *iserrp)
|
||||
{
|
||||
if (*iserrp || valobj == NULL)
|
||||
return NULL;
|
||||
|
||||
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmAudioEvent))
|
||||
return sipConvertToCpp(valobj,sipClass_AmAudioEvent,iserrp);
|
||||
|
||||
sipBadClass(sipNm_py_sems_lib_AmAudioEvent);
|
||||
|
||||
*iserrp = 1;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* Define this type's super-types. */
|
||||
static sipSuperClassDef supers_AmAudioEvent[] = {{2, 255, 1}};
|
||||
|
||||
static sipEnumValueInstanceDef enums_AmAudioEvent[] = {
|
||||
{sipNm_py_sems_lib_cleared, AmAudioEvent::cleared},
|
||||
{sipNm_py_sems_lib_noAudio, AmAudioEvent::noAudio}
|
||||
};
|
||||
|
||||
|
||||
/* The main type data structure. */
|
||||
sipTypeDef sipType_AmAudioEvent = {
|
||||
0,
|
||||
"py_sems_lib.AmAudioEvent",
|
||||
-1,
|
||||
supers_AmAudioEvent,
|
||||
0,
|
||||
0, 0,
|
||||
2, enums_AmAudioEvent,
|
||||
0,
|
||||
init_AmAudioEvent,
|
||||
dealloc_AmAudioEvent,
|
||||
cast_AmAudioEvent,
|
||||
forceConvertTo_AmAudioEvent,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Interface header file.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#ifndef _py_sems_libAmAudioEvent_h
|
||||
#define _py_sems_libAmAudioEvent_h
|
||||
|
||||
#line 29 "AmAudio.sip"
|
||||
#include "../../../core/AmAudio.h"
|
||||
#line 13 "sippy_sems_libAmAudioEvent.h"
|
||||
|
||||
#include "sippy_sems_libAmEvent.h"
|
||||
|
||||
|
||||
#define sipClass_AmAudioEvent sipModuleAPI_py_sems_lib.em_types[3]
|
||||
#define sipCast_AmAudioEvent sipType_AmAudioEvent.td_cast
|
||||
#define sipForceConvertTo_AmAudioEvent sipType_AmAudioEvent.td_fcto
|
||||
|
||||
extern sipTypeDef sipType_AmAudioEvent;
|
||||
|
||||
|
||||
class sipAmAudioEvent : public AmAudioEvent
|
||||
{
|
||||
public:
|
||||
sipAmAudioEvent(int);
|
||||
sipAmAudioEvent(const AmAudioEvent&);
|
||||
~sipAmAudioEvent();
|
||||
|
||||
sipWrapper *sipPySelf;
|
||||
|
||||
private:
|
||||
sipAmAudioEvent(const sipAmAudioEvent &);
|
||||
sipAmAudioEvent &operator = (const sipAmAudioEvent &);
|
||||
};
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,255 @@
|
||||
/*
|
||||
* Interface wrapper code.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#include "sipAPIpy_sems_lib.h"
|
||||
#include "sippy_sems_libAmAudioFile.h"
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_getLoop(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
|
||||
{
|
||||
bool sipRes = 0;
|
||||
|
||||
#line 65 "AmAudio.sip"
|
||||
sipRes = sipCpp->loop.get();
|
||||
#line 25 "sippy_sems_libAmAudioFile.cpp"
|
||||
|
||||
return PyBool_FromLong(sipRes);
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_getLoop);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_setLoop(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
bool a0;
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"mb",sipSelf,sipClass_AmAudioFile,&sipCpp,&a0))
|
||||
{
|
||||
#line 70 "AmAudio.sip"
|
||||
sipCpp->loop.set(a0);
|
||||
#line 50 "sippy_sems_libAmAudioFile.cpp"
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_setLoop);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_open(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
const string * a0;
|
||||
int a0IsTemp = 0;
|
||||
AmAudioFile::OpenMode a1 = AmAudioFile::Read;
|
||||
bool a2 = 0;
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"mM1|eb",sipSelf,sipClass_AmAudioFile,&sipCpp,sipConvertTo_string,&a0,&a0IsTemp,&a1,&a2))
|
||||
{
|
||||
int sipRes;
|
||||
|
||||
sipRes = sipCpp -> AmAudioFile::open(*a0,a1,a2);
|
||||
|
||||
if (a0IsTemp)
|
||||
delete const_cast<string *>(a0);
|
||||
|
||||
return PyInt_FromLong((long)sipRes);
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_open);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_rewind(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
|
||||
{
|
||||
sipCpp -> AmAudioFile::rewind();
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_rewind);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_close(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
|
||||
{
|
||||
sipCpp -> AmAudioFile::close();
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_close);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *meth_AmAudioFile_getDataSize(PyObject *sipSelf,PyObject *sipArgs)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
|
||||
{
|
||||
AmAudioFile *sipCpp;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
|
||||
{
|
||||
int sipRes;
|
||||
|
||||
sipRes = sipCpp -> AmAudioFile::getDataSize();
|
||||
|
||||
return PyInt_FromLong((long)sipRes);
|
||||
}
|
||||
}
|
||||
|
||||
/* Raise an exception if the arguments couldn't be parsed. */
|
||||
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_getDataSize);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
|
||||
static void *cast_AmAudioFile(void *ptr,sipWrapperType *targetClass)
|
||||
{
|
||||
if (targetClass == sipClass_AmAudioFile)
|
||||
return ptr;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void dealloc_AmAudioFile(sipWrapper *sipSelf)
|
||||
{
|
||||
if (sipIsPyOwned(sipSelf))
|
||||
{
|
||||
delete reinterpret_cast<AmAudioFile *>(sipSelf -> u.cppPtr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void *init_AmAudioFile(sipWrapper *,PyObject *sipArgs,int *)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
AmAudioFile *sipCpp = 0;
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,""))
|
||||
{
|
||||
sipCpp = new AmAudioFile();
|
||||
}
|
||||
}
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return sipCpp;
|
||||
}
|
||||
|
||||
|
||||
static void *forceConvertTo_AmAudioFile(PyObject *valobj,int *iserrp)
|
||||
{
|
||||
if (*iserrp || valobj == NULL)
|
||||
return NULL;
|
||||
|
||||
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmAudioFile))
|
||||
return sipConvertToCpp(valobj,sipClass_AmAudioFile,iserrp);
|
||||
|
||||
sipBadClass(sipNm_py_sems_lib_AmAudioFile);
|
||||
|
||||
*iserrp = 1;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static PyMethodDef methods_AmAudioFile[] = {
|
||||
{sipNm_py_sems_lib_close, meth_AmAudioFile_close, METH_VARARGS, NULL},
|
||||
{sipNm_py_sems_lib_getDataSize, meth_AmAudioFile_getDataSize, METH_VARARGS, NULL},
|
||||
{sipNm_py_sems_lib_getLoop, meth_AmAudioFile_getLoop, METH_VARARGS, NULL},
|
||||
{sipNm_py_sems_lib_open, meth_AmAudioFile_open, METH_VARARGS, NULL},
|
||||
{sipNm_py_sems_lib_rewind, meth_AmAudioFile_rewind, METH_VARARGS, NULL},
|
||||
{sipNm_py_sems_lib_setLoop, meth_AmAudioFile_setLoop, METH_VARARGS, NULL}
|
||||
};
|
||||
|
||||
static sipEnumValueInstanceDef enums_AmAudioFile[] = {
|
||||
{sipNm_py_sems_lib_Read, AmAudioFile::Read},
|
||||
{sipNm_py_sems_lib_Write, AmAudioFile::Write}
|
||||
};
|
||||
|
||||
|
||||
/* The main type data structure. */
|
||||
sipTypeDef sipType_AmAudioFile = {
|
||||
0,
|
||||
"py_sems_lib.AmAudioFile",
|
||||
-1,
|
||||
0,
|
||||
0,
|
||||
6, methods_AmAudioFile,
|
||||
2, enums_AmAudioFile,
|
||||
0,
|
||||
init_AmAudioFile,
|
||||
dealloc_AmAudioFile,
|
||||
cast_AmAudioFile,
|
||||
forceConvertTo_AmAudioFile,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Interface header file.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#ifndef _py_sems_libAmAudioFile_h
|
||||
#define _py_sems_libAmAudioFile_h
|
||||
|
||||
#line 51 "AmAudio.sip"
|
||||
#include "../../../core/AmAudio.h"
|
||||
#line 13 "sippy_sems_libAmAudioFile.h"
|
||||
|
||||
#include "sippy_sems_libstring.h"
|
||||
|
||||
|
||||
#define sipClass_AmAudioFile sipModuleAPI_py_sems_lib.em_types[1]
|
||||
#define sipCast_AmAudioFile sipType_AmAudioFile.td_cast
|
||||
#define sipForceConvertTo_AmAudioFile sipType_AmAudioFile.td_fcto
|
||||
|
||||
extern sipTypeDef sipType_AmAudioFile;
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,192 @@
|
||||
/*
|
||||
* Interface wrapper code.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#include "sipAPIpy_sems_lib.h"
|
||||
#include "sippy_sems_libAmEvent.h"
|
||||
|
||||
sipAmEvent::sipAmEvent(int a0): AmEvent(a0), sipPySelf(0)
|
||||
{
|
||||
sipCommonCtor(NULL,0);
|
||||
}
|
||||
|
||||
sipAmEvent::sipAmEvent(const AmEvent& a0): AmEvent(a0), sipPySelf(0)
|
||||
{
|
||||
sipCommonCtor(NULL,0);
|
||||
}
|
||||
|
||||
sipAmEvent::~sipAmEvent()
|
||||
{
|
||||
sipCommonDtor(sipPySelf);
|
||||
}
|
||||
|
||||
|
||||
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
|
||||
static void *cast_AmEvent(void *ptr,sipWrapperType *targetClass)
|
||||
{
|
||||
if (targetClass == sipClass_AmEvent)
|
||||
return ptr;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void dealloc_AmEvent(sipWrapper *sipSelf)
|
||||
{
|
||||
if (!sipIsSimple(sipSelf))
|
||||
reinterpret_cast<sipAmEvent *>(sipSelf -> u.cppPtr) -> sipPySelf = NULL;
|
||||
|
||||
if (sipIsPyOwned(sipSelf))
|
||||
{
|
||||
if (!sipIsSimple(sipSelf))
|
||||
delete reinterpret_cast<sipAmEvent *>(sipSelf -> u.cppPtr);
|
||||
else
|
||||
delete reinterpret_cast<AmEvent *>(sipSelf -> u.cppPtr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void *init_AmEvent(sipWrapper *sipSelf,PyObject *sipArgs,int *)
|
||||
{
|
||||
int sipArgsParsed = 0;
|
||||
sipAmEvent *sipCpp = 0;
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
int a0;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"i",&a0))
|
||||
{
|
||||
sipCpp = new sipAmEvent(a0);
|
||||
}
|
||||
}
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
const AmEvent * a0;
|
||||
|
||||
if (sipParseArgs(&sipArgsParsed,sipArgs,"J1",sipClass_AmEvent,&a0))
|
||||
{
|
||||
sipCpp = new sipAmEvent(*a0);
|
||||
}
|
||||
}
|
||||
|
||||
if (!sipCpp)
|
||||
{
|
||||
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmEvent);
|
||||
return 0;
|
||||
}
|
||||
|
||||
sipCpp -> sipPySelf = sipSelf;
|
||||
|
||||
return sipCpp;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *var_AmEvent_processed(PyObject *sipSelf,PyObject *valobj)
|
||||
{
|
||||
bool val;
|
||||
AmEvent *sipCpp = reinterpret_cast<AmEvent *>(sipGetCppPtr((sipWrapper *)sipSelf,sipClass_AmEvent));
|
||||
|
||||
if (!sipCpp)
|
||||
return NULL;
|
||||
|
||||
if (valobj == NULL)
|
||||
{
|
||||
val = sipCpp -> processed;
|
||||
|
||||
valobj = PyBool_FromLong(val);
|
||||
|
||||
return valobj;
|
||||
}
|
||||
|
||||
val = (bool)PyInt_AsLong(valobj);
|
||||
|
||||
if (PyErr_Occurred() != NULL)
|
||||
{
|
||||
sipBadSetType(sipNm_py_sems_lib_AmEvent,sipNm_py_sems_lib_processed);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sipCpp -> processed = val;
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
|
||||
static PyObject *var_AmEvent_event_id(PyObject *sipSelf,PyObject *valobj)
|
||||
{
|
||||
int val;
|
||||
AmEvent *sipCpp = reinterpret_cast<AmEvent *>(sipGetCppPtr((sipWrapper *)sipSelf,sipClass_AmEvent));
|
||||
|
||||
if (!sipCpp)
|
||||
return NULL;
|
||||
|
||||
if (valobj == NULL)
|
||||
{
|
||||
val = sipCpp -> event_id;
|
||||
|
||||
valobj = PyInt_FromLong((long)val);
|
||||
|
||||
return valobj;
|
||||
}
|
||||
|
||||
val = (int)PyInt_AsLong(valobj);
|
||||
|
||||
if (PyErr_Occurred() != NULL)
|
||||
{
|
||||
sipBadSetType(sipNm_py_sems_lib_AmEvent,sipNm_py_sems_lib_event_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
sipCpp -> event_id = val;
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
PyMethodDef variables_AmEvent[] = {
|
||||
{sipNm_py_sems_lib_processed, var_AmEvent_processed, 0, NULL},
|
||||
{sipNm_py_sems_lib_event_id, var_AmEvent_event_id, 0, NULL},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
|
||||
static void *forceConvertTo_AmEvent(PyObject *valobj,int *iserrp)
|
||||
{
|
||||
if (*iserrp || valobj == NULL)
|
||||
return NULL;
|
||||
|
||||
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmEvent))
|
||||
return sipConvertToCpp(valobj,sipClass_AmEvent,iserrp);
|
||||
|
||||
sipBadClass(sipNm_py_sems_lib_AmEvent);
|
||||
|
||||
*iserrp = 1;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* The main type data structure. */
|
||||
sipTypeDef sipType_AmEvent = {
|
||||
0,
|
||||
"py_sems_lib.AmEvent",
|
||||
-1,
|
||||
0,
|
||||
0,
|
||||
0, 0,
|
||||
0, 0,
|
||||
variables_AmEvent,
|
||||
init_AmEvent,
|
||||
dealloc_AmEvent,
|
||||
cast_AmEvent,
|
||||
forceConvertTo_AmEvent,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
{0, 0, 0, 0, 0, 0}
|
||||
};
|
||||
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Interface header file.
|
||||
*
|
||||
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
|
||||
*/
|
||||
|
||||
#ifndef _py_sems_libAmEvent_h
|
||||
#define _py_sems_libAmEvent_h
|
||||
|
||||
#line 5 "AmAudio.sip"
|
||||
#include "../../../core/AmEvent.h"
|
||||
#line 13 "sippy_sems_libAmEvent.h"
|
||||
|
||||
|
||||
#define sipClass_AmEvent sipModuleAPI_py_sems_lib.em_types[2]
|
||||
#define sipCast_AmEvent sipType_AmEvent.td_cast
|
||||
#define sipForceConvertTo_AmEvent sipType_AmEvent.td_fcto
|
||||
|
||||
extern sipTypeDef sipType_AmEvent;
|
||||
|
||||
|
||||
class sipAmEvent : public AmEvent
|
||||
{
|
||||
public:
|
||||
sipAmEvent(int);
|
||||
sipAmEvent(const AmEvent&);
|
||||
~sipAmEvent();
|
||||
|
||||
sipWrapper *sipPySelf;
|
||||
|
||||
private:
|
||||
sipAmEvent(const sipAmEvent &);
|
||||
sipAmEvent &operator = (const sipAmEvent &);
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Reference in new issue