mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-15 00:44:19 +09:00
Added expert settings /tune and /tune-list
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
|
||||
@@ -12,6 +12,8 @@ def get_values(entry_dict, entry_type):
|
||||
elif entry_type in dict(entry_dict):
|
||||
values = entry_dict[entry_type]
|
||||
entry_dict.pop(entry_type, None)
|
||||
if values:
|
||||
return sorted(values)
|
||||
return values
|
||||
|
||||
def write_entry(f, entry_dict, entry_type, entry_name):
|
||||
@@ -28,6 +30,74 @@ def write_entry(f, entry_dict, entry_type, entry_name):
|
||||
|
||||
f.write('};\n\n')
|
||||
|
||||
def write_str_case(f, entry_type, val):
|
||||
f.write('\t\t{FreeRDP_' + val + ', ' + str(entry_type) + ', "FreeRDP_' + val + '"},\n')
|
||||
|
||||
def write_str(f, entry_dict):
|
||||
f.write('struct settings_str_entry {\n')
|
||||
f.write('\tsize_t id;\n')
|
||||
f.write('\tsize_t type;\n')
|
||||
f.write('\tconst char* str;\n')
|
||||
f.write('};\n')
|
||||
f.write('static const struct settings_str_entry settings_map[] =\n')
|
||||
f.write('{\n')
|
||||
|
||||
entry_types = ['BOOL', 'UINT16', 'INT16', 'UINT32', 'INT32', 'UINT64', 'INT64', 'char*', '*']
|
||||
for entry_type in entry_types:
|
||||
values = get_values(entry_dict, entry_type)
|
||||
if values:
|
||||
for val in values:
|
||||
write_str_case(f, entry_types.index(entry_type), val)
|
||||
f.write('};\n\n')
|
||||
f.write('SSIZE_T freerdp_settings_get_key_for_name(const char* value)\n')
|
||||
f.write('{\n')
|
||||
f.write('\tsize_t x;\n')
|
||||
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
|
||||
f.write('\t{\n')
|
||||
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
|
||||
f.write('\t\tif (strcmp(value, cur->str) == 0)\n')
|
||||
f.write('\t\t\treturn cur->id;\n')
|
||||
f.write('\t}\n')
|
||||
f.write('\treturn -1;\n')
|
||||
f.write('}\n')
|
||||
f.write('\n')
|
||||
f.write('SSIZE_T freerdp_settings_get_type_for_name(const char* value)\n')
|
||||
f.write('{\n')
|
||||
f.write('\tsize_t x;\n')
|
||||
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
|
||||
f.write('\t{\n')
|
||||
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
|
||||
f.write('\t\tif (strcmp(value, cur->str) == 0)\n')
|
||||
f.write('\t\t\treturn cur->type;\n')
|
||||
f.write('\t}\n')
|
||||
f.write('\treturn -1;\n')
|
||||
f.write('}\n')
|
||||
f.write('\n')
|
||||
f.write('SSIZE_T freerdp_settings_get_type_for_key(size_t key)\n')
|
||||
f.write('{\n')
|
||||
f.write('\tsize_t x;\n')
|
||||
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
|
||||
f.write('\t{\n')
|
||||
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
|
||||
f.write('\t\tif (cur->id == key)\n')
|
||||
f.write('\t\t\treturn cur->type;\n')
|
||||
f.write('\t}\n')
|
||||
f.write('\treturn -1;\n')
|
||||
f.write('}\n')
|
||||
f.write('\n')
|
||||
f.write('const char* freerdp_settings_get_name_for_key(size_t key)\n')
|
||||
f.write('{\n')
|
||||
f.write('\tsize_t x;\n')
|
||||
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
|
||||
f.write('\t{\n')
|
||||
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
|
||||
f.write('\t\tif (cur->id == key)\n')
|
||||
f.write('\t\t\treturn cur->str;\n')
|
||||
f.write('\t}\n')
|
||||
f.write('\treturn NULL;\n')
|
||||
f.write('}\n')
|
||||
f.write('\n')
|
||||
|
||||
def write_getter_case(f, val):
|
||||
f.write('\t\tcase FreeRDP_' + val + ':\n')
|
||||
f.write('\t\t\treturn settings->' + val + ';\n\n')
|
||||
@@ -164,6 +234,17 @@ try:
|
||||
|
||||
f.write('\n')
|
||||
|
||||
with open(name + '/../libfreerdp/common/settings_str.c', 'w+') as f:
|
||||
f.write('/* Generated by ' + '' + ' */\n\n')
|
||||
f.write('#include <freerdp/settings.h>\n')
|
||||
f.write('#include <freerdp/log.h>\n\n')
|
||||
f.write('#define TAG FREERDP_TAG("common.settings")\n\n')
|
||||
|
||||
getter_list = dict(type_list)
|
||||
write_str(f, getter_list)
|
||||
f.write('\n')
|
||||
|
||||
|
||||
with open(name + '/../libfreerdp/core/test/settings_property_lists.h', 'w+') as f:
|
||||
f.write('#ifndef TEST_SETTINGS_PROPERTY_LISTS\n')
|
||||
f.write('#define TEST_SETTINGS_PROPERTY_LISTS\n\n')
|
||||
|
||||
Reference in New Issue
Block a user