Class: Freenect::Interface

Inherits:
Object
  • Object
show all
Extended by:
Driver
Defined in:
lib/freenect/freenect.rb

Constant Summary

Constants included from Driver

Driver::FREENECT_COUNTS_PER_G, Driver::FREENECT_DEPTH_FORMAT, Driver::FREENECT_DEVICE_FLAGS, Driver::FREENECT_LED_OPTIONS, Driver::FREENECT_LOGLEVEL, Driver::FREENECT_RESOLUTION, Driver::FREENECT_TILT_STATUS_CODE, Driver::FREENECT_VIDEO_FORMAT

Class Method Summary collapse

Methods included from Driver

freenect_find_depth_mode, freenect_find_video_mode, freenect_get_current_depth_mode, freenect_get_current_video_mode, freenect_get_depth_mode, freenect_get_depth_mode_count, freenect_get_tilt_degs, freenect_get_tilt_state, freenect_get_tilt_status, freenect_get_user, freenect_get_video_mode, freenect_get_video_mode_count, freenect_init, freenect_num_devices, freenect_open_device, freenect_process_events, freenect_set_depth_mode, freenect_set_led, freenect_set_tilt_degs, freenect_set_video_buffer, freenect_set_video_mode, freenect_shutdown, freenect_start_depth, freenect_start_video, freenect_stop_depth, freenect_stop_video, freenect_update_tilt_state

Class Method Details

.find_depth_mode(format = :freenect_depth_11bit, resolution = :freenect_resolution_medium) ⇒ Object



85
86
87
# File 'lib/freenect/freenect.rb', line 85

def find_depth_mode(format=:freenect_depth_11bit, resolution=:freenect_resolution_medium)
  freenect_find_depth_mode(resolution, format)
end

.find_video_mode(format = :freenect_video_rgb, resolution = :freenect_resolution_medium) ⇒ Object



62
63
64
# File 'lib/freenect/freenect.rb', line 62

def find_video_mode(format=:freenect_video_rgb, resolution=:freenect_resolution_medium)
  freenect_find_video_mode(resolution, format)
end

.get_acceleration(tilt_state = nil, idx = 0) ⇒ Object



116
117
118
119
120
121
122
123
# File 'lib/freenect/freenect.rb', line 116

def get_acceleration(tilt_state=nil, idx=0)
  tilt_state ||= get_tilt_state(idx)
  xacc = pointer(:double)
  yacc = pointer(:double)
  zacc = pointer(:double)
  freenect_get_mks_accel(tilt_state, xacc, yacc, zacc)
  {:x=>xacc.read_double, :y=>yacc.read_double, :z=>zacc.read_double}
end

.get_current_depth_mode(idx = 0) ⇒ Object



81
82
83
# File 'lib/freenect/freenect.rb', line 81

def get_current_depth_mode(idx=0)
  (@depth_mode || {})[idx]
end

.get_current_video_mode(idx = 0) ⇒ Object



58
59
60
# File 'lib/freenect/freenect.rb', line 58

def get_current_video_mode(idx=0)
  (@video_mode || {})[idx]
end

.get_depth(depth_mode, idx = 0) ⇒ Object



89
90
91
92
93
94
# File 'lib/freenect/freenect.rb', line 89

def get_depth(depth_mode, idx=0)
  depth_p, timestamp_p = pointer(:pointer, 1), pointer(:uint32)
  set_current_depth_mode(depth_mode, idx)
  freenect_sync_get_depth(depth_p, timestamp_p, idx, Freenect::FREENECT_DEPTH_FORMAT[depth_mode[:format][:depth_format]])
  depth_p.read_pointer.get_bytes(0, depth_mode[:bytes])
end

.get_depth_mode(mode_id) ⇒ Object



77
78
79
# File 'lib/freenect/freenect.rb', line 77

def get_depth_mode(mode_id)
  freenect_get_depth_mode(mode_id)
end

.get_depth_mode_countObject



73
74
75
# File 'lib/freenect/freenect.rb', line 73

def get_depth_mode_count
  freenect_get_depth_mode_count
end

.get_device_countObject



44
45
46
47
48
# File 'lib/freenect/freenect.rb', line 44

def get_device_count
  context = Freenect::Context.new
  count = context.get_device_count
  context.close; count
end

.get_tilt(tilt_state = nil, idx = 0) ⇒ Object



100
101
102
103
# File 'lib/freenect/freenect.rb', line 100

def get_tilt(tilt_state=nil, idx=0)
  tilt_state ||= get_tilt_state(idx)
  freenect_get_tilt_degs(tilt_state)
end

.get_tilt_state(idx = 0) ⇒ Object



110
111
112
113
114
# File 'lib/freenect/freenect.rb', line 110

def get_tilt_state(idx=0)
  state_ptr = pointer(:pointer)
  freenect_sync_get_tilt_state(state_ptr, idx)
  FreenectRawTiltState.new(state_ptr.get_pointer(0))
end

.get_tilt_status(tilt_state = nil, idx = 0) ⇒ Object



105
106
107
108
# File 'lib/freenect/freenect.rb', line 105

def get_tilt_status(tilt_state=nil, idx=0)
  tilt_state ||= get_tilt_state(idx)
  freenect_get_tilt_status(tilt_state)
end

.get_video(video_mode, idx = 0) ⇒ Object



66
67
68
69
70
71
# File 'lib/freenect/freenect.rb', line 66

def get_video(video_mode, idx=0)
  video_p, timestamp_p = pointer(:pointer, 1), pointer(:uint32)
  set_current_video_mode(video_mode, idx)
  freenect_sync_get_video(video_p, timestamp_p, idx, Freenect::FREENECT_VIDEO_FORMAT[video_mode[:format][:video_format]])
  video_p.read_pointer.get_bytes(0, video_mode[:bytes])
end

.get_video_mode(mode_id) ⇒ Object



54
55
56
# File 'lib/freenect/freenect.rb', line 54

def get_video_mode(mode_id)
  freenect_get_video_mode(mode_id)
end

.get_video_mode_countObject



50
51
52
# File 'lib/freenect/freenect.rb', line 50

def get_video_mode_count
  freenect_get_video_mode_count
end

.set_led(led_option, idx = 0) ⇒ Object



125
126
127
# File 'lib/freenect/freenect.rb', line 125

def set_led(led_option, idx=0)
  freenect_sync_set_led(Freenect::FREENECT_LED_OPTIONS[led_option], idx)
end

.set_tilt(angle, idx = 0) ⇒ Object



96
97
98
# File 'lib/freenect/freenect.rb', line 96

def set_tilt(angle, idx=0)
  freenect_sync_set_tilt_degs(angle, idx)
end

.stopObject



129
130
131
# File 'lib/freenect/freenect.rb', line 129

def stop
  freenect_sync_stop()
end