Android系统中app层调用硬件信息
2015-05-29 09:58
344 查看
device_create_file(&client->dev, &dev_attr_dev_info);
/*Add By XXX*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
struct v4l2_subdev *sd = dev_get_drvdata(dev);
struct b52_sensor *sensor = to_b52_sensor(sd);
buff += sprintf(buff, "name = %s", sensor->drvdata->name);
buff += sprintf(buff, ", position = %d", sensor->cur_mod_id);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);
/*End Add*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
int i=0;
struct x_subdev *xsd = container_of(dev_get_drvdata(dev), struct x_subdev, subdev);
struct v4l2_subdev *sd = &(xsd->subdev);
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client);
struct sensor_board_data *sdata = ssdd->drv_priv;
buff += sprintf(buff, "name = %s", xsd->name);
/*if(!(strcmp(xsd->name,"sp0a20-pxa-mipi")))
i=1;
buff += sprintf(buff, ", position = %d", i);*/
buff += sprintf(buff, ", position = %d", (sdata->mount_pos & SENSOR_POS_FRONT) >> 1);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);
/*Add By XXX*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
struct v4l2_subdev *sd = dev_get_drvdata(dev);
struct b52_sensor *sensor = to_b52_sensor(sd);
buff += sprintf(buff, "name = %s", sensor->drvdata->name);
buff += sprintf(buff, ", position = %d", sensor->cur_mod_id);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);
/*End Add*/
static ssize_t mobile_camera_show(struct device *dev, struct device_attribute *attr, char *buff)
{
char *buff_bak = buff;
int i=0;
struct x_subdev *xsd = container_of(dev_get_drvdata(dev), struct x_subdev, subdev);
struct v4l2_subdev *sd = &(xsd->subdev);
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct soc_camera_subdev_desc *ssdd = soc_camera_i2c_to_desc(client);
struct sensor_board_data *sdata = ssdd->drv_priv;
buff += sprintf(buff, "name = %s", xsd->name);
/*if(!(strcmp(xsd->name,"sp0a20-pxa-mipi")))
i=1;
buff += sprintf(buff, ", position = %d", i);*/
buff += sprintf(buff, ", position = %d", (sdata->mount_pos & SENSOR_POS_FRONT) >> 1);
return buff - buff_bak;
}
static DEVICE_ATTR(dev_info, S_IRUGO, mobile_camera_show, NULL);
相关文章推荐
- Chapter12. Foundation Classes and selector in Objective-C
- Android---49---使用ServerSocket创建服务器端
- iOS集合
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- SimpleAdapter和Baseadapter填充listActivity-android学习之旅()
- Android自定义控件View(二)继承控件
- 实现iOS应用图标右上角数字badge number提醒
- iOS中的排序笔记
- 微信运营:必须收藏的101条万能微信标题公式
- 类似iOS自带相册应用的图片浏览的实现
- android ids.xml资源的使用
- 更改make版本由于编译4.0Android需要3.81make所以重新安装
- Android中Application类用法
- IOS相册功能
- IOS如何实现灵活的瀑布流(2)
- Cocos2d-x 异步加载纹理学习
- android开发国内镜像
- Android 进行单元测试难在哪-part2
- oc中谓词的使用(NSPredicate)