Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
c895632
Add C API shared library (dasher.h / CAPI.cpp)
willwade May 19, 2026
5e653ea
fixing gh actions build
willwade May 19, 2026
51f8588
Make Realize() and NewFrame() public in DasherInterfaceBase
willwade May 19, 2026
1e9b1df
provide explicit data directory support.
willwade May 19, 2026
50e500d
added color utility functions to the C API..
willwade May 19, 2026
a6d4bab
add tests
willwade May 19, 2026
aacad4c
Update FileLogger.cpp
willwade May 19, 2026
a2c075c
fix readme
willwade May 19, 2026
1697c8b
make make ScanFiles search recursively so will find alphabets etc
willwade May 19, 2026
e5babbc
Add legacy colour XML parser and fix colorToARGB for 0-1 range
willwade May 19, 2026
ef98c5f
Add dasher_key_event for switch/keyboard/button input
willwade May 19, 2026
2215a2c
Add parameter schema, palette/alphabet enumeration, and settings save
willwade May 19, 2026
3510a23
Param grouping , user dir seperation, error reporting, pallete accesor
willwade May 19, 2026
738d331
fix test
willwade May 19, 2026
dfa2e7a
Migrating some of Sebastians DasherSettings excel sheet into Paramete…
willwade May 19, 2026
a608d1e
Add settings manifest and generator
willwade May 19, 2026
59af0a7
Add CMake generation for Parameters.cpp
willwade May 19, 2026
c090891
add Parameter code gen - and i10n support
willwade May 19, 2026
59de2aa
add italian and spanish portugese-brazil, pt-PT
willwade May 20, 2026
7e72fdc
adding subgroups for filtering in UI projects
willwade May 20, 2026
49577fb
adding some catch
willwade May 20, 2026
ef4472b
update settings based on the 5 tabs we are inventing
willwade May 20, 2026
f948681
fix uiType for dropdown string params
willwade May 20, 2026
8ffacfc
adding greek
willwade May 20, 2026
4550fa2
fix uiType values to match C++ UIControlType enum (Enum not dropdown)
willwade May 20, 2026
750c75d
read group from Parameter_Value instead of hardcoded parameterGroup s…
willwade May 20, 2026
1bf2ce4
GetPermittedValues: always include current value in results for strin…
willwade May 20, 2026
19fb96d
Fix GetPermittedValues: use m_pSettingsStore for current value lookup
willwade May 20, 2026
c74c210
Qualify Settings::PARAM_STRING in GetPermittedValues
willwade May 20, 2026
e845c8b
adding more euro langs
willwade May 20, 2026
207d5b7
add other langs
willwade May 20, 2026
f319bfa
Add output callback to C API for Direct Mode support
willwade May 20, 2026
8498828
Add WorldAlphabets alphabet generator script and generated files
willwade May 20, 2026
dcdbf56
Replace char-frequency training with real AAC conversational text fro…
willwade May 20, 2026
ebb1af8
Remove superseded generate_alphabets.py (replaced by generate_trainin…
willwade May 20, 2026
fd27dfe
added training credit to Keith
willwade May 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 29 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,38 @@
*.out
*.app

# Build Files
Build
# Build directories
build/
Build/
out/

# Eclipse
# Build logs
build_log.txt

# IDE
.autotools
.cproject
.project

.gradle/
.idea

# Visual Studio Code
.idea/
.ionide/
.vs/
.vscode/
*.user
*.suo
*.sln
*.vcxproj*

# OS
.DS_Store
Thumbs.db

# Backup files
CMakeLists.txt.capi
do_build.cmd

# Runtime settings files
Data/dasher_settings.xml
*.settings.xml
dasher_settings.xml
dasher.log
75 changes: 75 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,28 @@ endif()
set(PUGIXML_BUILD_TESTS OFF CACHE BOOL "" FORCE)
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Thirdparty/pugixml" EXCLUDE_FROM_ALL)

###############################
# Code Generation: Parameters.cpp from settings_manifest.json
###############################

set(PARAMETERS_MANIFEST "${CMAKE_CURRENT_LIST_DIR}/settings_manifest.json")
set(PARAMETERS_GENERATOR "${CMAKE_CURRENT_LIST_DIR}/Scripts/generate_parameters.py")
set(PARAMETERS_OUTPUT "${CMAKE_CURRENT_LIST_DIR}/src/DasherCore/Parameters.cpp")

find_package(Python3 COMPONENTS Interpreter)

if(Python3_Interpreter_FOUND)
add_custom_command(
OUTPUT ${PARAMETERS_OUTPUT}
COMMAND ${Python3_EXECUTABLE} ${PARAMETERS_GENERATOR}
DEPENDS ${PARAMETERS_MANIFEST} ${PARAMETERS_GENERATOR}
COMMENT "Generating Parameters.cpp from settings_manifest.json"
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
)
else()
message(WARNING "Python3 not found. Parameters.cpp will not be auto-regenerated from settings_manifest.json. Edit the JSON and run: python3 Scripts/generate_parameters.py")
endif()

###############################
# Building Core Dasher Library
###############################
Expand All @@ -44,10 +66,63 @@ ADD_library(DasherCore STATIC
${SOURCE_FILES}
)

set_target_properties(DasherCore PROPERTIES
POSITION_INDEPENDENT_CODE ON
)

target_include_directories(DasherCore PUBLIC ${CMAKE_CURRENT_LIST_DIR}/src/)

add_dependencies(DasherCore pugixml)
target_link_libraries(DasherCore pugixml)

source_group(TREE ${CMAKE_CURRENT_LIST_DIR}/src/ FILES ${HEADER_FILES} ${SOURCE_FILES})
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT DasherCore)

###############################
# C API shared library
###############################

option(BUILD_CAPI "Build the C API shared library (dasher.dll / libdasher.so)" ON)

if(BUILD_CAPI)
add_library(dasher SHARED
${CMAKE_CURRENT_LIST_DIR}/src/CAPI.cpp
)

target_include_directories(dasher PRIVATE
${CMAKE_CURRENT_LIST_DIR}/src/
)

target_link_libraries(dasher PRIVATE DasherCore)

if(WIN32)
target_compile_definitions(dasher PRIVATE DASHER_BUILDING)
endif()

set_target_properties(dasher PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
)

# C API Tests
option(BUILD_TESTS "Build the C API unit tests" ON)
if(BUILD_TESTS)
add_executable(dasher_test
${CMAKE_CURRENT_LIST_DIR}/tests/test_capi.cpp
)

target_include_directories(dasher_test PRIVATE
${CMAKE_CURRENT_LIST_DIR}/src/
)

target_link_libraries(dasher_test PRIVATE dasher)

# Allow setting test data directory
if(TEST_DATA_DIR)
target_compile_definitions(dasher_test PRIVATE TEST_DATA_DIR="${TEST_DATA_DIR}")
endif()

add_test(NAME dasher_capi_tests COMMAND dasher_test)
endif()
endif()
Loading
Loading