You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
2.2 KiB
50 lines
2.2 KiB
2 months ago
|
% Wraps librealsense2 context class
|
||
|
classdef context < handle
|
||
|
properties (SetAccess = private, Hidden = true)
|
||
|
objectHandle;
|
||
|
end
|
||
|
methods
|
||
|
% Constructor
|
||
|
function this = context()
|
||
|
this.objectHandle = realsense.librealsense_mex('rs2::context', 'new');
|
||
|
end
|
||
|
|
||
|
% Destructor
|
||
|
function delete(this)
|
||
|
if (this.objectHandle ~= 0)
|
||
|
realsense.librealsense_mex('rs2::context', 'delete', this.objectHandle);
|
||
|
end
|
||
|
end
|
||
|
|
||
|
% Functions
|
||
|
function device_array = query_devices(this)
|
||
|
arr = realsense.librealsense_mex('rs2::context', 'query_devices', this.objectHandle);
|
||
|
% TODO: Might be cell array
|
||
|
device_array = arrayfun(@(x) realsense.device(x{:}{:}), arr, 'UniformOutput', false);
|
||
|
end
|
||
|
function sensor_array = query_all_sensors(this)
|
||
|
arr = realsense.librealsense_mex('rs2::context', 'query_all_sensors', this.objectHandle);
|
||
|
sensor_array = arrayfun(@realsense.sensor, arr, 'UniformOutput', false);
|
||
|
end
|
||
|
function device = get_sensor_parent(this, sensor)
|
||
|
narginchk(2, 2);
|
||
|
validateattributes(sensor, {'realsense.sensor'}, {'scalar'}, '', 'sensor', 2);
|
||
|
out = realsense.librealsense_mex('rs2::context', 'get_sensor_parent', this.objectHandle, sensor.objectHandle);
|
||
|
device = realsense.device(out);
|
||
|
end
|
||
|
function playback = load_device(this, file)
|
||
|
narginchk(2, 2);
|
||
|
validateattributes(file, {'string', 'char'}, {'scalartext', 'nonempty'}, '', 'file', 2);
|
||
|
out = realsense.librealsense_mex('rs2::context', 'load_device', this.objectHandle, file);
|
||
|
playback = realsense.playback(out(1), out(2));
|
||
|
end
|
||
|
function unload_device(this, file)
|
||
|
narginchk(2, 2);
|
||
|
validateattributes(file, {'string', 'char'}, {'scalartext', 'nonempty'}, '', 'file', 2);
|
||
|
realsense.librealsense_mex('rs2::context', 'unload_device', this.objectHandle, file);
|
||
|
end
|
||
|
function unload_tracking_module(this)
|
||
|
realsense.librealsense_mex('rs2::context', 'unload_tracking_module', this.objectHandle);
|
||
|
end
|
||
|
end
|
||
|
end
|