azure_kinect/
playback_data_block.rs1use azure_kinect_sys::k4arecord::k4a_playback_data_block_t;
2use std::ptr;
3
4pub struct PlaybackDataBlock<'a> {
5 api_record: &'a azure_kinect_sys::api::ApiRecord,
6 handle: k4a_playback_data_block_t,
7}
8
9impl PlaybackDataBlock<'_> {
10 pub(crate) fn from_handle(
11 api_record: &azure_kinect_sys::api::ApiRecord,
12 handle: k4a_playback_data_block_t,
13 ) -> PlaybackDataBlock {
14 PlaybackDataBlock { api_record, handle }
15 }
16
17 pub fn get_device_timestamp_usec(&self) -> u64 {
19 unsafe {
20 (self
21 .api_record
22 .funcs
23 .k4a_playback_data_block_get_device_timestamp_usec)(self.handle)
24 }
25 }
26
27 pub fn get_buffer_size(&self) -> usize {
29 unsafe {
30 (self
31 .api_record
32 .funcs
33 .k4a_playback_data_block_get_buffer_size)(self.handle) as usize
34 }
35 }
36
37 pub fn get_buffer(&self) -> *const u8 {
39 unsafe { (self.api_record.funcs.k4a_playback_data_block_get_buffer)(self.handle) }
40 }
41}
42
43impl Drop for PlaybackDataBlock<'_> {
44 fn drop(&mut self) {
45 unsafe {
46 (self.api_record.funcs.k4a_playback_data_block_release)(self.handle);
47 }
48 self.handle = ptr::null_mut();
49 }
50}