Soporte para pantalla táctil multitouch en OS X

¡Hola!

Resulta que tengo un monitor multitáctil Dell S2340T (un juguete bastante caro por cierto) que tiene un regulador del tacto de 3M. Trabaja muy bien en Windows (que yo no tengo planes para usar), una especie de obras en linux (que es mi entorno de trabajo primaria) y no funciona en absoluto en OS X (no es una gran cosa, pero que estaría bien . tenerlo)

Así que me puse en la búsqueda de un conductor y he descubierto lo siguiente:

  • Hay un viejo conductor de TouchBase eso apesta. Es decir, se trata de utilizar algún instalador apestoso que contamina el sistema de archivos raíz de OS X, cuenta con la interfaz de usuario a partir de los años 90. Más que eso, no está firmado y no soporta mi pantalla táctil. Incluso la adición del Vendor ID USB a su Info.plist no fijó una cosa
  • Existe algún nuevo conductor de prueba desde TouchBase que debería funcionar para la mayoría de los dispositivos, pero se limita a 100 toques (una versión de demostración). Bueno, yo no quería humillarse ante ellos y registrarse en su sitio estúpido. Y aún así, incluso si me remendaba el conductor para eliminar las limitaciones de los ensayos, me tengo que firmar con mi certificado y no habría manera legal para que yo distribuyo en el internetz
  • Hay una completa versión del controlador TouchBase que cuesta $ 100. ¿Son jodidamente loco? Por otro lado, yo haría lo mismo. Ver, los usuarios domésticos no les importa, pantallas multitáctiles son muy raros, y la gente está acostumbrada a sofrware piratería. Pero se podría recaudar bastante dinero vendiendo el conductor a los talleres que construyen computadoras personalizadas de Apple (como Axiotron) o PCs de automóviles.
  • Hay algunos controladores para otras pantallas táctiles, pero son para la vieja sola- tocar los dispositivos

no se ve prometedor. Ahora, uno puede preguntarse «¿WTF no está funcionando fuera de la caja? Es un dispositivo HID, debería funcionar en todas partes». Bueno, hay dos problemas:

  • dispositivos multitouch tienen el nuevo tipo de evento HID (llamada usos HID) para la clase digitalizador que el OS X no admite en IOKit. En realidad, ya que utiliza una nueva clase HID (diferente a los monitores de un solo toque), no está aún clasificada como una pantalla táctil por el sistema operativo (y no como un trackpad multitouch)
  • La pantalla táctil es reconocido por el controlador de HID genérica como un ratón. Y aquí viene el problema – al soltar un dedo, el dispositivo informa el puntero debe estar en la (punto <0, 0>) origen que hace que el cursor se ha quedado atascado en la esquina superior izquierda
decidí aprender sobre el sistema HID en OS X y escribir un controlador. Empecé con el código de ejemplo de la documentación de HID y añadí algunos depuración evento. Me enteré de que el dispositivo informa de los acontecimientos tanto como un digitalizador y como un dispositivo señalador. Así que por ahora he preparado un programa de demostración en QT5 que puede reconocer varios toques y dibujar puntos en diferentes colores cuando se toca la pantalla. Echa un vistazo a él en acción:

El código fuente está en https://github.com/astarasikov/ osx-multitouch-demo.

Bueno, parece que yo debería encontrar la manera de convertir esto en un controlador de dispositivo. Probablemente voy a tener que encontrar la manera de enumerar dispositivos HID en función de su clase y crea un archivo kext (Kernel extensión) para XNU (el núcleo usado en OS X) y luego .. vender mi controlador para unos $ 20, ¿verdad?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *