35 lines
1,003 B
Rust
35 lines
1,003 B
Rust
use crate::{
|
|
macros::{wrap_clone, wrap_fields, wrap_free},
|
|
mem::{heap_move_nonnull, heap_remove},
|
|
};
|
|
use servicepoint::{Brightness, GlobalBrightnessCommand, Packet};
|
|
use std::ptr::NonNull;
|
|
|
|
/// Set the brightness of all tiles to the same value.
|
|
///
|
|
/// Returns: a new [GlobalBrightnessCommand] instance.
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_brightness_global_new(
|
|
brightness: Brightness,
|
|
) -> NonNull<GlobalBrightnessCommand> {
|
|
heap_move_nonnull(GlobalBrightnessCommand::from(brightness))
|
|
}
|
|
|
|
#[no_mangle]
|
|
pub unsafe extern "C" fn sp_cmd_brightness_global_into_packet(
|
|
command: NonNull<GlobalBrightnessCommand>,
|
|
) -> NonNull<Packet> {
|
|
heap_move_nonnull(unsafe { heap_remove(command) }.into())
|
|
}
|
|
|
|
wrap_clone!(sp_cmd_brightness_global::GlobalBrightnessCommand);
|
|
wrap_free!(sp_cmd_brightness_global::GlobalBrightnessCommand);
|
|
|
|
wrap_fields!(
|
|
sp_cmd_brightness_global::GlobalBrightnessCommand;
|
|
prop brightness: Brightness {
|
|
get();
|
|
set(value);
|
|
};
|
|
);
|