zoukankan      html  css  js  c++  java
  • QTE 触控屏支持

    QTE触摸屏加载有两种方法:

    (1)QTE本身触摸屏加载;

    主要注意三个内容:

    编译QTE时,在其自定义配置文件(位于QTDIR/src/tools/qconfig-XXX.h,其XXX为自定义的名字,该特征字可以在configure时用-qconfig XXX指定)所应加的内容:

    #define QT_QWS_IPAQ

    #define QT_QWS_IPAQ_RAW

    去掉鼠标自动识别功能 :#define QT_NO_QWS_MOUSE_AUTO

    去掉不用的鼠标驱动,(在实际中,这一步可以不要,但对于缩减QTE的大小很有帮助),方法主要是在configure时设置配置参数为-no-mouse-pc -no-mouse-bus -no-mouse-yopy -no-mouse-vr41xx 。

    以该编译好的QTE库为基础,编译应用程序;

    在目标机上,要将触摸屏驱动链接好。在QTE3.0的版本中,如果定义了上述的两个IPAQ相关的宏,其默认打开设备文件/dev/h3600_tsraw。如果只定义QT_QWS_IPAQ,则打开设备文件为/dev/h3600_ts。

    在目标机上,设定环境变量:QWS_MOUSE_PROTO=linuxtp:/dev/h3600_tsraw。


    (2)使用tslib方法;

    编译TSLIB1.3:

    进行如下操作

    #./autogen.sh #生成configure文件

    CC= $ARM_TOOL_PATH/arm-linux-gcc

    CXX= $ARM_TOOL_PATH/arm-linux-g++

    ./configure --host=arm-linux --target=arm-linux --disable-inputapi --prefix=$PWD/build

    make

    make install

    将build的整个目录拷贝到目标机,然后在目标机做如下设定,修改/etc/profile文件,在其中加入以下环境变量的设置

    export V_ROOT=/xxx/xxx/build #目标机上build所在的路径

    export TSLIB_TSEVENTTYPE=H3600 #设定类型为H3600,其主要是对着tslib中的设备结构体定义,该定义要与触摸屏驱动中的一致

    export TSLIB_CONSOLEDEVICE=none #设定控制台设备为none,否则默认为/dev/tty。在tslib1.3源码中,只要不是none,它就会打开$ (TSLIB_CONSOLEDEVICE)1,默认的为/dev/tty1的设备,然后从中读取console的可用设置。这样可以避免出现“open consoledevice: No such file or directory KDSETMODE: Bad file descriptor”的错误

    export TSLIB_FBDEVICE=/dev/fb0 #指定帧缓冲设备

    export TSLIB_TSDEVICE=/dev/touchscreen/0raw #指定触摸屏设备节点文件

    export TSLIB_CALIBFILE=$V_ROOT/etc/pointercal #指定触摸屏校准文件pintercal的存放位置

    export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf #指定TSLIB配置文件的位置

    export TSLIB_PLUGINDIR=$V_ROOT/share/ts/plugins #指定触摸屏插件所在路径

    编译TSLIB1.4(TSLIB07072006)

    进行如下操作:

    echo "ac_cv_func_malloc_0_nonnull=yes" > tslib/arm-linux.autogen #为了防止出现undefined reference to `rpl_malloc' 错误

    CONFIG_SITE=arm-linux.autogen ./configure CC=arm-linux-gcc CXX=arm-linux-g++ --host=arm-s3c2410-linux-gnu --target=arm-s3c2410-linux-gnu --disable-input --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld --prefix=$PWD/build

    make

    make install

    将build的整个目录拷贝到目标机,然后在目标机做如下设定,修改/etc/profile文件,在其中加入以下环境变量的设置。其解释类上,不同于TSLIB1.3的是,TLIB1.4通过配置文件ts.conf中module_raw h3600语句来加载对应的设备结构体定义。已废除了TSLIB_TSEVENTTYPE宏。

    export V_ROOT=/xxx/xxx/build

    export TSLIB_TSDEVICE=/dev/touchscreen/0raw

    export TSLIB_CALIBFILE=/etc/pointercal

    export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf

    export TSLIB_PLUGINDIR=$V_ROOT/lib/ts

    export TSLIB_CONSOLEDEVICE=none

    export TSLIB_FBDEVICE=/dev/fb0

    一个值得注意的问题是:TSLIB1.4在ts_config函数中通过while((p=fgets(buf,BUFF_SIZE,f))!=NULL)来加载ts.conf中的语句,而buf只有512byte。所以对于ts.conf没有用的定义语句,请将其删除,以防止误发生段错误。

    以TSLIB库为基础,编译QTE。

  • 相关阅读:
    es5预览本地文件、es6练习代码演示案例
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 836 矩形重叠(暴力)
    Subversion under Linux [Reprint]
    Subversion how[Reprint]
  • 原文地址:https://www.cnblogs.com/buffer/p/1488607.html
Copyright © 2011-2022 走看看