@@ -132,39 +132,35 @@ def stop_video
132132 end
133133 end
134134
135- def set_depth_format ( fmt )
136- l_fmt = fmt . is_a? ( Numeric ) ? fmt : Freenect ::DEPTH_FORMATS [ fmt ]
137- ret = ::FFI ::Freenect . freenect_set_depth_format ( self . device , l_fmt )
138- if ( ret == 0 )
139- @depth_format = fmt
140- else
141- raise DeviceError , "Error calling freenect_set_depth_format(self, #{ fmt } )"
142- end
143- end
144-
145- alias depth_format = set_depth_format
146-
135+ def set_depth_mode ( mode )
136+ mode = Freenect . depth_mode ( :medium , mode ) unless mode . is_a? ( Freenect ::FrameMode )
137+ raise ArgumentError , "Unkown depth mode #{ mode } " if mode . nil?
138+ ret = ::FFI ::Freenect . freenect_set_depth_mode ( self . device , mode )
139+ raise DeviceError , "Error calling freenect_set_depth_mode(self, #{ mode } )" unless ret == 0
140+ end
141+ alias depth_mode = set_depth_mode
142+
147143 # returns the symbolic constant for the current depth format
148- def depth_format
149- ( @depth_format . is_a? ( Numeric ) ) ? Freenect ::DEPTH_FORMATS [ @depth_format ] : @depth_format
144+ def depth_mode
145+ x = ::FFI ::Freenect . freenect_get_current_depth_mode ( self . device )
146+ x . frame_mode_type = :depth unless x . nil?
147+ x
150148 end
151149
152150 # Sets the video format to one of the following accepted values:
153151 #
154- def set_video_format ( fmt )
155- l_fmt = fmt . is_a? ( Numeric ) ? fmt : Freenect ::VIDEO_FORMATS [ fmt ]
156- ret = ::FFI ::Freenect . freenect_set_video_format ( self . device , l_fmt )
157- if ( ret == 0 )
158- @video_format = fmt
159- else
160- raise DeviceError , "Error calling freenect_set_video_format(self, #{ fmt } )"
161- end
162- end
163-
164- alias video_format = set_video_format
165-
166- def video_format
167- ( @video_format . is_a? ( Numeric ) ) ? ::Freenect ::VIDEO_FORMATS [ @video_format ] : @video_format
152+ def set_video_mode ( mode )
153+ mode = Freenect . video_mode ( :medium , mode ) unless mode . is_a? ( Freenect ::FrameMode )
154+ raise ArgumentError , "Unkown video mode #{ mode } " if mode . nil?
155+ ret = ::FFI ::Freenect . freenect_set_video_mode ( self . device , mode )
156+ raise DeviceError , "Error calling freenect_set_video_mode(self, #{ mode } )" unless ret == 0
157+ end
158+ alias video_mode = set_video_mode
159+
160+ def video_mode
161+ x = ::FFI ::Freenect . freenect_get_current_video_mode ( self . device )
162+ x . frame_mode_type = :video unless x . nil?
163+ x
168164 end
169165
170166 # Sets the led to one of the following accepted values:
0 commit comments