52 lines
1.4 KiB
Rust
52 lines
1.4 KiB
Rust
use crate::mem::{heap_drop, heap_move_nonnull};
|
|
use servicepoint::{ClearCommand, FadeOutCommand, HardResetCommand};
|
|
use std::ptr::NonNull;
|
|
|
|
/// Set all pixels to the off state.
|
|
///
|
|
/// Does not affect brightness.
|
|
///
|
|
/// Returns: a new [ClearCommand] instance.
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_clear_new() -> NonNull<ClearCommand> {
|
|
heap_move_nonnull(ClearCommand)
|
|
}
|
|
|
|
/// Deallocates a [ClearCommand].
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_clear_free(command: NonNull<ClearCommand>) {
|
|
unsafe { heap_drop(command) }
|
|
}
|
|
|
|
/// Kills the udp daemon on the display, which usually results in a restart.
|
|
///
|
|
/// Please do not send this in your normal program flow.
|
|
///
|
|
/// Returns: a new [HardResetCommand] instance.
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_hard_reset_new() -> NonNull<HardResetCommand> {
|
|
heap_move_nonnull(HardResetCommand)
|
|
}
|
|
|
|
/// Deallocates a [HardResetCommand].
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_hard_reset_free(
|
|
command: NonNull<ClearCommand>,
|
|
) {
|
|
unsafe { heap_drop(command) }
|
|
}
|
|
|
|
/// A yet-to-be-tested command.
|
|
///
|
|
/// Returns: a new [FadeOutCommand] instance.
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_fade_out_new() -> NonNull<FadeOutCommand> {
|
|
heap_move_nonnull(FadeOutCommand)
|
|
}
|
|
|
|
/// Deallocates a [FadeOutCommand].
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_fade_out_free(command: NonNull<ClearCommand>) {
|
|
unsafe { heap_drop(command) }
|
|
}
|