function init(self) local logosize = 128 local screen_width = sys.get_config("display.width", 600) local screen_height = sys.get_config("display.height", 800) local scale_width = screen_width / logosize local scale_height = screen_height / logosize go.set("#sprite", "scale", vmath.vector3(scale_width, scale_height, 1) ) if camera ~= nil then local sysinfo = sys.get_sys_info() local quality = camera.CAPTURE_QUALITY_HIGH local type = camera.CAMERA_TYPE_FRONT if sysinfo.system_name == 'iPhone OS' then type = camera.CAMERA_TYPE_BACK quality = camera.CAPTURE_QUALITY_MEDIUM end if camera.start_capture(type, quality) then self.cameraframe = camera.get_frame() self.camerainfo = camera.get_info() print("Initialized camera") pprint(self.camerainfo) self.cameratextureheader = {width=self.camerainfo.width, height=self.camerainfo.height, type=resource.TEXTURE_TYPE_2D, format=resource.TEXTURE_FORMAT_RGB, num_mip_maps=1 } end else print("could not start camera capture") end if qrcode == nil then print("could not find qrcode module") end end function final(self) if self.cameraframe ~= nil then camera.stop_capture() end end function update(self, dt) if self.cameraframe then local pathmodelcamera = go.get("#sprite", "texture0") resource.set_texture(pathmodelcamera, self.cameratextureheader, self.cameraframe) local url = qrcode.scan(self.cameraframe, self.camerainfo.width, self.camerainfo.height) if url ~= nil then label.set_text("logo#qrcode", url) else label.set_text("logo#qrcode", "...") end end end