diff options
Diffstat (limited to 'extern/audaspace/bindings/python/PyPlaybackManager.cpp')
-rw-r--r-- | extern/audaspace/bindings/python/PyPlaybackManager.cpp | 389 |
1 files changed, 0 insertions, 389 deletions
diff --git a/extern/audaspace/bindings/python/PyPlaybackManager.cpp b/extern/audaspace/bindings/python/PyPlaybackManager.cpp deleted file mode 100644 index 9b6614cae9a..00000000000 --- a/extern/audaspace/bindings/python/PyPlaybackManager.cpp +++ /dev/null @@ -1,389 +0,0 @@ -/******************************************************************************* -* Copyright 2015-2016 Juan Francisco Crespo Galán -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -******************************************************************************/ - -#include "PyPlaybackManager.h" -#include "PySound.h" -#include "PyHandle.h" -#include "PyDevice.h" - -#include "Exception.h" -#include "fx/PlaybackManager.h" - -extern PyObject* AUDError; - -static PyObject * -PlaybackManager_new(PyTypeObject* type, PyObject* args, PyObject* kwds) -{ - PlaybackManagerP* self = (PlaybackManagerP*)type->tp_alloc(type, 0); - - if(self != nullptr) - { - PyObject* object; - if(!PyArg_ParseTuple(args, "O:catKey", &object)) - return nullptr; - Device* device = checkDevice(object); - - try - { - self->playbackManager = new std::shared_ptr<aud::PlaybackManager>(new aud::PlaybackManager(*reinterpret_cast<std::shared_ptr<aud::IDevice>*>(device->device))); - } - catch(aud::Exception& e) - { - Py_DECREF(self); - PyErr_SetString(AUDError, e.what()); - return nullptr; - } - } - - return (PyObject *)self; -} - -static void -PlaybackManager_dealloc(PlaybackManagerP* self) -{ - if(self->playbackManager) - delete reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager); - Py_TYPE(self)->tp_free((PyObject *)self); -} - -PyDoc_STRVAR(M_aud_PlaybackManager_play_doc, - "setVolume(sound, catKey)\n\n" - "Plays a sound through the playback manager and assigns it to a category.\n\n" - ":arg sound: The sound to play.\n" - ":type sound: :class:`Sound`\n" - ":arg catKey: the key of the category in which the sound will be added, if it doesn't exist, a new one will be created.\n" - ":type catKey: int\n" - ":return: The playback handle with which playback can be controlled with.\n" - ":rtype: :class:`Handle`"); - -static PyObject * -PlaybackManager_play(PlaybackManagerP* self, PyObject* args) -{ - PyObject* object; - unsigned int cat; - - if(!PyArg_ParseTuple(args, "OI:catKey", &object, &cat)) - return nullptr; - - Sound* sound = checkSound(object); - if(!sound) - return nullptr; - - Handle* handle; - - handle = (Handle*)Handle_empty(); - if(handle != nullptr) - { - try - { - handle->handle = new std::shared_ptr<aud::IHandle>((*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->play(*reinterpret_cast<std::shared_ptr<aud::ISound>*>(sound->sound), cat)); - } - catch(aud::Exception& e) - { - Py_DECREF(handle); - PyErr_SetString(AUDError, e.what()); - return nullptr; - } - } - - return (PyObject *)handle; -} - -PyDoc_STRVAR(M_aud_PlaybackManager_resume_doc, - "resume(catKey)\n\n" - "Resumes playback of the catgory.\n\n" - ":arg catKey: the key of the category.\n" - ":type catKey: int\n" - ":return: Whether the action succeeded.\n" - ":rtype: bool"); - -static PyObject * -PlaybackManager_resume(PlaybackManagerP* self, PyObject* args) -{ - unsigned int cat; - - if(!PyArg_ParseTuple(args, "I:catKey", &cat)) - return nullptr; - - try - { - return PyBool_FromLong((long)(*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->resume(cat)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_pause_doc, - "pause(catKey)\n\n" - "Pauses playback of the category.\n\n" - ":arg catKey: the key of the category.\n" - ":type catKey: int\n" - ":return: Whether the action succeeded.\n" - ":rtype: bool"); - -static PyObject * -PlaybackManager_pause(PlaybackManagerP* self, PyObject* args) -{ - unsigned int cat; - - if(!PyArg_ParseTuple(args, "I:catKey", &cat)) - return nullptr; - - try - { - return PyBool_FromLong((long)(*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->pause(cat)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_add_category_doc, - "addCategory(volume)\n\n" - "Adds a category with a custom volume.\n\n" - ":arg volume: The volume for ther new category.\n" - ":type volume: float\n" - ":return: The key of the new category.\n" - ":rtype: int\n\n"); - -static PyObject * -PlaybackManager_add_category(PlaybackManagerP* self, PyObject* args) -{ - float vol; - - if(!PyArg_ParseTuple(args, "f:volume", &vol)) - return nullptr; - - try - { - return Py_BuildValue("I", (*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->addCategory(vol)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_get_volume_doc, - "getVolume(catKey)\n\n" - "Retrieves the volume of a category.\n\n" - ":arg catKey: the key of the category.\n" - ":type catKey: int\n" - ":return: The volume of the cateogry.\n" - ":rtype: float\n\n"); - -static PyObject * -PlaybackManager_get_volume(PlaybackManagerP* self, PyObject* args) -{ - unsigned int cat; - - if(!PyArg_ParseTuple(args, "I:catKey", &cat)) - return nullptr; - - try - { - return Py_BuildValue("f", (*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->getVolume(cat)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_set_volume_doc, - "setVolume(volume, catKey)\n\n" - "Changes the volume of a category.\n\n" - ":arg volume: the new volume value.\n" - ":type volume: float\n" - ":arg catKey: the key of the category.\n" - ":type catKey: int\n" - ":return: Whether the action succeeded.\n" - ":rtype: int\n\n"); - -static PyObject * -PlaybackManager_set_volume(PlaybackManagerP* self, PyObject* args) -{ - float volume; - unsigned int cat; - - if(!PyArg_ParseTuple(args, "fI:volume", &volume, &cat)) - return nullptr; - - try - { - return PyBool_FromLong((long)(*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->setVolume(volume, cat)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_stop_doc, - "stop(catKey)\n\n" - "Stops playback of the category.\n\n" - ":arg catKey: the key of the category.\n" - ":type catKey: int\n" - ":return: Whether the action succeeded.\n" - ":rtype: bool\n\n"); - -static PyObject * -PlaybackManager_stop(PlaybackManagerP* self, PyObject* args) -{ - unsigned int cat; - - if(!PyArg_ParseTuple(args, "I:catKey", &cat)) - return nullptr; - - try - { - return PyBool_FromLong((long)(*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->stop(cat)); - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -PyDoc_STRVAR(M_aud_PlaybackManager_clean_doc, - "clean()\n\n" - "Cleans all the invalid and finished sound from the playback manager.\n\n"); - -static PyObject * -PlaybackManager_clean(PlaybackManagerP* self) -{ - try - { - (*reinterpret_cast<std::shared_ptr<aud::PlaybackManager>*>(self->playbackManager))->clean(); - Py_RETURN_NONE; - } - catch(aud::Exception& e) - { - PyErr_SetString(AUDError, e.what()); - return nullptr; - } -} - -static PyMethodDef PlaybackManager_methods[] = { - { "play", (PyCFunction)PlaybackManager_play, METH_VARARGS | METH_KEYWORDS, - M_aud_PlaybackManager_play_doc - }, - { "resume", (PyCFunction)PlaybackManager_resume, METH_VARARGS, - M_aud_PlaybackManager_resume_doc - }, - { "pause", (PyCFunction)PlaybackManager_pause, METH_VARARGS, - M_aud_PlaybackManager_pause_doc - }, - { "stop", (PyCFunction)PlaybackManager_stop, METH_VARARGS, - M_aud_PlaybackManager_stop_doc - }, - { "addCategory", (PyCFunction)PlaybackManager_add_category, METH_VARARGS, - M_aud_PlaybackManager_add_category_doc - }, - { "getVolume", (PyCFunction)PlaybackManager_get_volume, METH_VARARGS, - M_aud_PlaybackManager_get_volume_doc - }, - { "setVolume", (PyCFunction)PlaybackManager_set_volume, METH_VARARGS, - M_aud_PlaybackManager_set_volume_doc - }, - { "clean", (PyCFunction)PlaybackManager_clean, METH_NOARGS, - M_aud_PlaybackManager_clean_doc - }, - { nullptr } /* Sentinel */ -}; - -PyDoc_STRVAR(M_aud_PlaybackManager_doc, - "A PlabackManager object allows to easily control groups os sounds organized in categories."); - -PyTypeObject PlaybackManagerType = { - PyVarObject_HEAD_INIT(nullptr, 0) - "aud.PlaybackManager", /* tp_name */ - sizeof(PlaybackManagerP), /* tp_basicsize */ - 0, /* tp_itemsize */ - (destructor)PlaybackManager_dealloc, /* tp_dealloc */ - 0, /* tp_print */ - 0, /* tp_getattr */ - 0, /* tp_setattr */ - 0, /* tp_reserved */ - 0, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_sequence */ - 0, /* tp_as_mapping */ - 0, /* tp_hash */ - 0, /* tp_call */ - 0, /* tp_str */ - 0, /* tp_getattro */ - 0, /* tp_setattro */ - 0, /* tp_as_buffer */ - Py_TPFLAGS_DEFAULT, /* tp_flags */ - M_aud_PlaybackManager_doc, /* tp_doc */ - 0, /* tp_traverse */ - 0, /* tp_clear */ - 0, /* tp_richcompare */ - 0, /* tp_weaklistoffset */ - 0, /* tp_iter */ - 0, /* tp_iternext */ - PlaybackManager_methods, /* tp_methods */ - 0, /* tp_members */ - 0, /* tp_getset */ - 0, /* tp_base */ - 0, /* tp_dict */ - 0, /* tp_descr_get */ - 0, /* tp_descr_set */ - 0, /* tp_dictoffset */ - 0, /* tp_init */ - 0, /* tp_alloc */ - PlaybackManager_new, /* tp_new */ -}; - -AUD_API PyObject* PlaybackManager_empty() -{ - return PlaybackManagerType.tp_alloc(&PlaybackManagerType, 0); -} - - -AUD_API PlaybackManagerP* checkPlaybackManager(PyObject* playbackManager) -{ - if(!PyObject_TypeCheck(playbackManager, &PlaybackManagerType)) - { - PyErr_SetString(PyExc_TypeError, "Object is not of type PlaybackManager!"); - return nullptr; - } - - return (PlaybackManagerP*)playbackManager; -} - - -bool initializePlaybackManager() -{ - return PyType_Ready(&PlaybackManagerType) >= 0; -} - - -void addPlaybackManagerToModule(PyObject* module) -{ - Py_INCREF(&PlaybackManagerType); - PyModule_AddObject(module, "PlaybackManager", (PyObject *)&PlaybackManagerType); -} |