diff options
author | Ash Wolf <ninji@wuffs.org> | 2023-06-14 00:50:34 +0100 |
---|---|---|
committer | Ash Wolf <ninji@wuffs.org> | 2023-06-14 00:50:34 +0100 |
commit | 37e364b2c6cc7487a1c888d256a73e5337bb7189 (patch) | |
tree | eaf6e857382eef16c2dd940eb4125536fbe068bd /src/T2DLL/CFilePluginDB.cpp | |
download | t2win-37e364b2c6cc7487a1c888d256a73e5337bb7189.tar.gz t2win-37e364b2c6cc7487a1c888d256a73e5337bb7189.zip |
initial commit
Diffstat (limited to '')
-rw-r--r-- | src/T2DLL/CFilePluginDB.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/T2DLL/CFilePluginDB.cpp b/src/T2DLL/CFilePluginDB.cpp new file mode 100644 index 0000000..83d8456 --- /dev/null +++ b/src/T2DLL/CFilePluginDB.cpp @@ -0,0 +1,42 @@ +#include "CFilePlugin.h" +#include "CFilePluginDB.h" +#include "CFilePluginList.h" + +CFilePluginDB::CFilePluginDB() + : LArray(sizeof(CFilePlugin *)) +{ +} + +/*virtual*/ CFilePluginDB::~CFilePluginDB() { +} + +/*virtual*/ void CFilePluginDB::Add(CFilePlugin* plugin) { + LArrayIterator iter(*this); + BOOL found = false; + CFilePluginList *list; + + while (!found && iter.Next(&list)) { + if (list->GetPluginType() == plugin->GetType()) { + list->Add(plugin); + found = true; + } + } + + if (!found) { + list = new CFilePluginList(plugin->GetType()); + list->Add(plugin); + InsertItemsAt(1, mItemCount + 1, &list); + } +} + +/*virtual*/ CFilePluginList* CFilePluginDB::GetFilePluginList(DWORD pluginType) { + LArrayIterator iter(*this); + CFilePluginList *list; + + while (iter.Next(&list)) { + if (list->GetPluginType() == pluginType) + return list; + } + + return NULL; +} |