summaryrefslogtreecommitdiffstats
path: root/docs/release/src/osd/winui/treeview.cpp
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2021-07-28 12:58:54 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2021-07-28 12:58:54 +1000
commitd4ad20f87c886636c61069e1253ad1836f381690 (patch)
tree1f63ea5b1e016c9864424fffd9ceb4654e41de05 /docs/release/src/osd/winui/treeview.cpp
parent956ccb5c4bcb75db93b18580d03a7d7d454d9a07 (diff)
0.234 filestag234
Diffstat (limited to 'docs/release/src/osd/winui/treeview.cpp')
-rw-r--r--docs/release/src/osd/winui/treeview.cpp132
1 files changed, 74 insertions, 58 deletions
diff --git a/docs/release/src/osd/winui/treeview.cpp b/docs/release/src/osd/winui/treeview.cpp
index 3eadeb2b2f0..d5b5a06ecc1 100644
--- a/docs/release/src/osd/winui/treeview.cpp
+++ b/docs/release/src/osd/winui/treeview.cpp
@@ -928,7 +928,7 @@ void CreateBIOSFolders(int parent_index)
void CreateCPUFolders(int parent_index)
{
int device_folder_count = 0;
- LPTREEFOLDER device_folders[512];
+ LPTREEFOLDER device_folders[1024];
LPTREEFOLDER folder;
int nFolder = numFolders;
@@ -940,40 +940,48 @@ void CreateCPUFolders(int parent_index)
for (device_execute_interface &device : execute_interface_enumerator(config.root_device()))
{
// get the name
- std::string dev_name = device.device().name();
+ const char* dev_name = device.device().name();
- // do we have a folder for this device?
- folder = NULL;
- for (int j = 0; j < device_folder_count; j++)
+ if (dev_name)
{
- if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ // do we have a folder for this device?
+ folder = NULL;
+ for (int j = 0; j < device_folder_count; j++)
{
- folder = device_folders[j];
- break;
+ if (strcmp(dev_name, device_folders[j]->m_lpTitle)==0)
+ {
+ folder = device_folders[j];
+ break;
+ }
}
- }
- // are we forced to create a folder?
- if (folder == NULL)
- {
- LPTREEFOLDER lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
- ExtraFolderData[next_folder_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
- memset(ExtraFolderData[next_folder_id], 0, sizeof(EXFOLDERDATA));
- ExtraFolderData[next_folder_id]->m_nFolderId = next_folder_id;
- ExtraFolderData[next_folder_id]->m_nIconId = IDI_CPU;
- ExtraFolderData[next_folder_id]->m_nParent = treeFolders[parent_index]->m_nFolderId;
- ExtraFolderData[next_folder_id]->m_nSubIconId = -1;
- strcpy( ExtraFolderData[next_folder_id]->m_szTitle, device.device().name() );
- ExtraFolderData[next_folder_id++]->m_dwFlags = 0;
- AddFolder(lpTemp);
- folder = treeFolders[nFolder++];
-
- // record that we found this folder
- device_folders[device_folder_count++] = folder;
- }
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+ LPTREEFOLDER lpTemp = NewFolder(dev_name, next_folder_id, parent_index, IDI_CPU, GetFolderFlags(numFolders));
+ ExtraFolderData[next_folder_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
+ memset(ExtraFolderData[next_folder_id], 0, sizeof(EXFOLDERDATA));
+ ExtraFolderData[next_folder_id]->m_nFolderId = next_folder_id;
+ ExtraFolderData[next_folder_id]->m_nIconId = IDI_CPU;
+ ExtraFolderData[next_folder_id]->m_nParent = treeFolders[parent_index]->m_nFolderId;
+ ExtraFolderData[next_folder_id]->m_nSubIconId = -1;
+ strcpy( ExtraFolderData[next_folder_id]->m_szTitle, dev_name );
+ ExtraFolderData[next_folder_id++]->m_dwFlags = 0;
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
- // cpu type #'s are one-based
- AddGame(folder, i);
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ if (device_folder_count >= std::size(device_folders))
+ {
+ printf("CreateCPUFolders buffer overrun: %d\n",device_folder_count);
+ fflush(stdout);
+ }
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
}
}
const char *fname = "CPU";
@@ -996,41 +1004,49 @@ void CreateSoundFolders(int parent_index)
for (device_sound_interface &device : sound_interface_enumerator(config.root_device()))
{
// get the name
- std::string dev_name = device.device().name();
+ const char* dev_name = device.device().name();
- // do we have a folder for this device?
- folder = NULL;
- for (int j = 0; j < device_folder_count; j++)
+ if (dev_name)
{
- if (!strcmp(dev_name.c_str(), device_folders[j]->m_lpTitle))
+ // do we have a folder for this device?
+ folder = NULL;
+ for (int j = 0; j < device_folder_count; j++)
{
- folder = device_folders[j];
- break;
+ if (strcmp(dev_name, device_folders[j]->m_lpTitle)==0)
+ {
+ folder = device_folders[j];
+ break;
+ }
}
- }
- // are we forced to create a folder?
- if (folder == NULL)
- {
- LPTREEFOLDER lpTemp = NewFolder(device.device().name(), next_folder_id, parent_index, IDI_SOUND, GetFolderFlags(numFolders));
- ExtraFolderData[next_folder_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
- memset(ExtraFolderData[next_folder_id], 0, sizeof(EXFOLDERDATA));
-
- ExtraFolderData[next_folder_id]->m_nFolderId = next_folder_id;
- ExtraFolderData[next_folder_id]->m_nIconId = IDI_SOUND;
- ExtraFolderData[next_folder_id]->m_nParent = treeFolders[parent_index]->m_nFolderId;
- ExtraFolderData[next_folder_id]->m_nSubIconId = -1;
- strcpy( ExtraFolderData[next_folder_id]->m_szTitle, device.device().name() );
- ExtraFolderData[next_folder_id++]->m_dwFlags = 0;
- AddFolder(lpTemp);
- folder = treeFolders[nFolder++];
-
- // record that we found this folder
- device_folders[device_folder_count++] = folder;
- }
+ // are we forced to create a folder?
+ if (folder == NULL)
+ {
+ LPTREEFOLDER lpTemp = NewFolder(dev_name, next_folder_id, parent_index, IDI_SOUND, GetFolderFlags(numFolders));
+ ExtraFolderData[next_folder_id] = (EXFOLDERDATA*)malloc(sizeof(EXFOLDERDATA));
+ memset(ExtraFolderData[next_folder_id], 0, sizeof(EXFOLDERDATA));
- // cpu type #'s are one-based
- AddGame(folder, i);
+ ExtraFolderData[next_folder_id]->m_nFolderId = next_folder_id;
+ ExtraFolderData[next_folder_id]->m_nIconId = IDI_SOUND;
+ ExtraFolderData[next_folder_id]->m_nParent = treeFolders[parent_index]->m_nFolderId;
+ ExtraFolderData[next_folder_id]->m_nSubIconId = -1;
+ strcpy( ExtraFolderData[next_folder_id]->m_szTitle, dev_name );
+ ExtraFolderData[next_folder_id++]->m_dwFlags = 0;
+ AddFolder(lpTemp);
+ folder = treeFolders[nFolder++];
+
+ // record that we found this folder
+ device_folders[device_folder_count++] = folder;
+ if (device_folder_count >= std::size(device_folders))
+ {
+ printf("CreateSoundFolders buffer overrun: %d\n",device_folder_count);
+ fflush(stdout);
+ }
+ }
+
+ // cpu type #'s are one-based
+ AddGame(folder, i);
+ }
}
}
const char *fname = "Sound";