reaper_medium/
gaccel_register.rs1use crate::{CommandId, ReaperStringArg};
2use reaper_low::raw;
3use reaper_low::raw::gaccel_register_t;
4use std::borrow::Cow;
5use std::ffi::CStr;
6use std::os::raw::c_ushort;
7
8#[derive(Clone, Eq, PartialEq, Hash, Debug)]
15pub struct MediumGaccelRegister {
16 owned_desc: Cow<'static, CStr>,
17 inner: gaccel_register_t,
18}
19
20impl MediumGaccelRegister {
21 pub fn without_key_binding(
23 cmd: CommandId,
24 desc: impl Into<ReaperStringArg<'static>>,
25 ) -> MediumGaccelRegister {
26 let desc = desc.into().into_inner();
27 let desc_ptr = desc.as_ptr();
28 MediumGaccelRegister {
29 owned_desc: desc,
30 inner: raw::gaccel_register_t {
31 accel: raw::ACCEL {
32 fVirt: 0,
33 key: 0,
34 cmd: cmd.get() as c_ushort,
36 },
37 desc: desc_ptr,
38 },
39 }
40 }
41}
42
43impl AsRef<raw::gaccel_register_t> for MediumGaccelRegister {
44 fn as_ref(&self) -> &gaccel_register_t {
45 &self.inner
46 }
47}