Lisener类(Leap:: Lisener)

Lisener类(Leap:: Lisener)

这个类定义了一系列回调函数,可以用来在一个子类中重载,来响应Controller对象分派到的事件。为了操作Leap Motion事件,创建一个Listener子类的实例,把它分配给Controller的实例。当一个事件发生的时候,这个Controller调用相关的Listener回调函数。Controller对象是从Leap Motion库创建的线程中调用Listener函数,而不是用于创建或设置Listener实例的线程。
Listener(): 构造一个Listener对象。
~Listener(): 破坏一个Listener对象。
void onInit(const Controller & ): 当这个Listener对象是新加入Controller对象中的,就调用一次。
void onConnect(const Controller & ): 当Controller对象和Leap Motion软件连接,硬件插上电源时这个函数被调用。当这个函数被调用,则Controller::isServiceConnected是true,Controller::devices()是不空的,因为至少一个Device对象在列表中,Device::isStreaming()为true。
用法:void SampleListener::onConnect(const Controller& controller) {
std::cout << “Connected” << std::endl;
}
void onDisonnect(const Controller & ): 当Controller对象和Leap Motion软件没连接,硬件没插上电源时这个函数被调用。当Leap Motion硬件断电,用户关闭了Leap Motion软件或Leap Motion软件遇到无法恢复的错误,控制器就会失去连接。注意,当在debug下启动一个应用程序,Leap Motion库不会断开与应用程序的连接,这只是允许你可以在不失去连接的情况下对代码进行单步调试,因为暂停。
用法:void SampleListener::onDisconnect(const Controller& controller) {
std::cout << “Disconnected” << std::endl;
}
void onExit(const Controller & ): 当这个Listener对象从Controller对象中删除或者Controller的实例被破坏时这个函数被调用。
用法:void SampleListener::onExit(const Controller& controller) {
std::cout << “Exited” << std::endl;
}
void onFrame(const Controller & ): 当手和手指跟踪数据的新的一帧可用时这个函数被调用。可以用Controller::frame()函数来访问新的帧数据。注意,当你的onFrame处理程序执行的时候,Controller会跳过一切悬而未决的onFrame事件。如果你的执行返回时间很长,那会跳过多帧。Controller仍然会把跳过的帧插入到帧历史中,通过调用Controller::frame()函数设置历史参数可以访问最近的帧。你可以决定是否因为比较最靠近的帧与最后接收的帧的ID值跳过悬而未决的onFrame事件。
用法:void SampleListener::onFrame(const Controller& controller) {
std::cout << “New frame available” << std::endl;
Leap::Frame frame = controller.frame();
}
void onFocusGained(const Controller & ): 当这个应用程序成为前台时这个函数被调用。只有前台的应用程序可以从Leap Motion控制器中接收跟踪数据。
用法:void SampleListener::onFocusGained(const Controller& controller) {
std::cout << “Focus gained ” << std::endl;
}
void onFocusLost(const Controller & ): 当这个应用程序失去前台聚焦时这个函数被调用。只有前台的应用程序可以从Leap Motion控制器中接收跟踪数据。
用法:void SampleListener::onFocusLost(const Controller& controller) {
std::cout << “Focus lost ” << std::endl;
}
void onServiceConnect(const Controller & ): 当Leap Motion服务与你的应用程序的Controller连接时,这个函数被调用。
void onServiceDisconnect(const Controller & ): 当Leap Motion服务与你的应用程序的Controller断开连接时,这个函数被调用。正常情况下这个函数是不会被调用的,只有当一些外部事件关闭了服务或中断了连接才会调用这个函数。
void onDeviceChange(const Controller & ): 当Leap Motion控制器插电、断电,或设备改变状态,这个函数被调用。状态改变包括帧率的改变和进入或退出“robust”模式。目前是没有办法查询设备是否处于“robust”模式的。可以用Frame::currentFramerate()得到帧率。
void onImages(const Controller&): 的那个新的图片可用的时候,这个函数被调用。可以用Controller::images()函数访问新的帧数据。

译自:https://developer.leapmotion.com/documentation/cpp/api/Leap.Listener.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值