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