音频之耳机按键事件上报流程(Exynos7872)

本文探讨了耳机按键事件在Exynos7872平台上的上报流程,涉及输入子系统,包括Input_sync、Input_report_key和input_event等函数。通过is_event_supported检查设备支持的事件,并通过input_handle_event传递到相应的处理器。讲解了input_get_disposition的作用以及如何确定事件处理方式,同时解释了RCU保护机制在事件处理中的应用。
摘要由CSDN通过智能技术生成

(本文仅用于本人学习记录,仅供参考)

耳机按键检测到动作后事件上报,涉及到输入子系统。

Input_report_key(cod3034x->input,jd->button,1) //向输入子系统报告产生按键事件
    |-- input_event(dev,EV_KEY,code,!!value)
        |-- is_event_supported(type,dev->evbit,EV_MAX)
        |-- input_handle_event(dev,type,code,value)
            |-- input_get_disposition(dev,type,code,&value)
            |-- input_pass_values(dev,dev->vals,dev->num_vals)
                |-- input_to_handler(handle,vals,count)

Input_sync(cod3034x->input);//通知接收者,一个报告发送完毕。

Static inline void Input_report_key(struct input_dev *dev,unsigned int code,int value)
{
    input_event(dev,EV_KEY,code,!!value);
}

Input_report_key函数的参数1是产生事件的输入设备,参数2是产生的事件,参数3是事件的值。
注:C语言中的感叹号(!)是逻辑运算操作符࿰

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值