Skip to content

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)