From 88524d795f0f4376cc2a1e46f0cf9660266bf9db Mon Sep 17 00:00:00 2001 From: "Dipl.-Ing. Jonas Stienen" <jst@akustik.rwth-aachen.de> Date: Tue, 22 Aug 2017 17:15:43 +0200 Subject: [PATCH] Starting module interface impl --- src/vasingletonmethods.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/vasingletonmethods.hpp b/src/vasingletonmethods.hpp index 7726a09..ea8a406 100644 --- a/src/vasingletonmethods.hpp +++ b/src/vasingletonmethods.hpp @@ -96,7 +96,21 @@ static PyObject* va_reset(PyObject*, PyObject*) static PyObject* va_enumerate_modules(PyObject* pSelf, PyObject** ppArgs, Py_ssize_t nArgs, PyObject* pKeywordNames) { VAPY_REQUIRE_CONN_TRY; - VA_EXCEPT_NOT_IMPLEMENTED; + + std::vector< CVAModuleInfo > voModuleInfos; + g_pVANetClient->GetCoreInstance()->EnumerateModules(voModuleInfos); + + PyObject *pModuleList = PyList_New(voModuleInfos.size()); + + for (size_t i = 0; i < voModuleInfos.size(); i++) + { + CVAModuleInfo& oModule(voModuleInfos[i]); + PyObject* pModuleInfo = Py_BuildValue("{s:i,s:s,s:s}", "index", i, "name", oModule.sName, "description", oModule.sDesc); + PyList_SetItem(pModuleList, i, pModuleInfo); // steals reference + } + + return pModuleList; + VAPY_CATCH_RETURN; }; -- GitLab