1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use glib::translate::*;
use std::mem;

glib::wrapper! {
    /// A boxed object to express data of queue event.
    ///
    /// A [`EventDataQueue`][crate::EventDataQueue] is a boxed object to express data of queue event. The instance of
    /// object is one of data properties in event.
    ///
    /// The object wraps `struct snd_seq_ev_queue_control` in UAPI of Linux sound subsystem.
    #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
    pub struct EventDataQueue(Boxed<ffi::ALSASeqEventDataQueue>);

    match fn {
        copy => |ptr| glib::gobject_ffi::g_boxed_copy(ffi::alsaseq_event_data_queue_get_type(), ptr as *mut _) as *mut ffi::ALSASeqEventDataQueue,
        free => |ptr| glib::gobject_ffi::g_boxed_free(ffi::alsaseq_event_data_queue_get_type(), ptr as *mut _),
        type_ => || ffi::alsaseq_event_data_queue_get_type(),
    }
}

impl EventDataQueue {
    /// Get the position as param of the queue event.
    ///
    /// # Returns
    ///
    ///
    /// ## `position`
    /// The position as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_get_position_param")]
    #[doc(alias = "get_position_param")]
    pub fn position_param(&self) -> u32 {
        unsafe {
            let mut position = mem::MaybeUninit::uninit();
            ffi::alsaseq_event_data_queue_get_position_param(
                self.to_glib_none().0,
                position.as_mut_ptr(),
            );
            position.assume_init()
        }
    }

    /// Get the numeric identifier of queue for the event.
    ///
    /// # Returns
    ///
    ///
    /// ## `queue_id`
    /// the numeric identifier of queue for the event.
    #[doc(alias = "alsaseq_event_data_queue_get_queue_id")]
    #[doc(alias = "get_queue_id")]
    pub fn queue_id(&self) -> u8 {
        unsafe {
            let mut queue_id = mem::MaybeUninit::uninit();
            ffi::alsaseq_event_data_queue_get_queue_id(
                self.to_glib_none().0,
                queue_id.as_mut_ptr(),
            );
            queue_id.assume_init()
        }
    }

    /// Get the tick time as param of the queue event.
    ///
    /// # Returns
    ///
    ///
    /// ## `tick_time`
    /// The tick time as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_get_tick_time_param")]
    #[doc(alias = "get_tick_time_param")]
    pub fn tick_time_param(&self) -> u32 {
        unsafe {
            let mut tick_time = mem::MaybeUninit::uninit();
            ffi::alsaseq_event_data_queue_get_tick_time_param(
                self.to_glib_none().0,
                tick_time.as_mut_ptr(),
            );
            tick_time.assume_init()
        }
    }

    /// Get the value as param of the queue event.
    ///
    /// # Returns
    ///
    ///
    /// ## `value`
    /// The value as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_get_value_param")]
    #[doc(alias = "get_value_param")]
    pub fn value_param(&self) -> i32 {
        unsafe {
            let mut value = mem::MaybeUninit::uninit();
            ffi::alsaseq_event_data_queue_get_value_param(
                self.to_glib_none().0,
                value.as_mut_ptr(),
            );
            value.assume_init()
        }
    }

    /// Set the position as param of the queue event.
    /// ## `position`
    /// the position as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_set_position_param")]
    pub fn set_position_param(&mut self, position: u32) {
        unsafe {
            ffi::alsaseq_event_data_queue_set_position_param(self.to_glib_none_mut().0, position);
        }
    }

    /// Se the numeric identifier of queue for the event.
    /// ## `queue_id`
    /// The numeric identifier of queue for the event.
    #[doc(alias = "alsaseq_event_data_queue_set_queue_id")]
    pub fn set_queue_id(&mut self, queue_id: u8) {
        unsafe {
            ffi::alsaseq_event_data_queue_set_queue_id(self.to_glib_none_mut().0, queue_id);
        }
    }

    /// Set the tick time as param of the queue event.
    /// ## `tick_time`
    /// The tick time as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_set_tick_time_param")]
    pub fn set_tick_time_param(&mut self, tick_time: u32) {
        unsafe {
            ffi::alsaseq_event_data_queue_set_tick_time_param(self.to_glib_none_mut().0, tick_time);
        }
    }

    /// Set the value as param of the queue event.
    /// ## `value`
    /// The value as param of the queue event.
    #[doc(alias = "alsaseq_event_data_queue_set_value_param")]
    pub fn set_value_param(&mut self, value: i32) {
        unsafe {
            ffi::alsaseq_event_data_queue_set_value_param(self.to_glib_none_mut().0, value);
        }
    }
}

unsafe impl Send for EventDataQueue {}