Features¶
GUI¶
Helix provides a GUI library for creating windows and rendering graphics. The GUI library is currently a work in progress and is not yet complete.
ImGui / imgui-rs is used for drawing, if you’re working on a C/C++ project, you’ll need to include the ImGui headers to your project:
// If C++
#include <imgui/imgui.h>
// If C (make sure to set CIMGUI_DEFINE_ENUMS_AND_STRUCTS to 1)
#include <cimgui/cimgui.h>
The following API is provided:
/**
* Can be used to get the display's aspect ratio
**/
float HLXDisplayGetAspectRatio();
Audio¶
Helix provides functionality for audio playback.
Speech¶
Helix provides an API for text-to-speech (TTS):
/**
* Creates and sets up the audio synthesizer, returning a pointer to the instance or nullptr if creation failed
**/
void* SpeechSynthesizerCreate(void);
// Rust: let mut speech_synthesizer = SpeechSynthesizer::new().unwrap();
/**
* Frees the speech synthesizer instance.
**/
void SpeechSynthesizerFree(void* synthesizer);
// Rust: no dedicated method, instance drop will deallocate it
/**
* Sets the volume for the synthesizer, scale from 0-1.
**/
void SpeechSynthesizerSetVolume(void* synthesizer, float volume);
// Rust: speech_synthesizer.set_volume(volume: f32)
/**
* Sets the language of the speaker, takes in a en-US type locale.
**/
void SpeechSynthesizerSetLanguage(void* synthesizer, const char* language);
// Rust: speech_synthesizer.set_language(language: &str)
/**
* Sets the gender of the speaker, accepted values: SpeechSynthesizerGenderFemale/Male/Neutral.
**/
void SpeechSynthesizerSetGender(void* synthesizer, SpeechSynthesizerGender gender);
// Rust: speech_synthesizer.set_gender(gender: SpeechSynthesizerGender)
/**
* Dictates the given text, specifying whether previous utterances should be interrupted.
**/
void SpeechSynthesizerSpeak(void* synthesizer, const char* text, uint8_t interrupt);
// Rust: speech_synthesizer.speak(text: &str, interrupt: bool)