News Image Thumbnail:
![]()
ไดรเวอร์ตัวนี้สำหรับสำหรับอุปกรณ์นำเสนอ Logitech Wireless Presenter R400 และ Logitech Professional Presenter R800 เพื่อให้ปุ่มทุกปุ่มทำงานร่วมกับโปรแกรม Keynote บน OS X ได้
แรงบันดาลใจ
เวลานำเสนองานผมจะใช้โปรแกรม Keynote กับโปรแกรมบน iOS ที่ชื่อว่า Keynote Remote ปัญหาของ Keynote Remote คือมันค่อนข้างช้าและไม่สามารถใช้ได้ในบางสถานการณ์
สำหรับคนที่ต้องนำเสนองานเป็นประจำอาจจะรู้จัก Logitech Wireless Presenter R400 และ Logitech Professional Presenter R800 ปัญหาของอุปกรณ์สองตัวนี้คือมันถูกออกแบบมาให้ใช้กับ โปรแกรม Microsoft PowerPoint บน Windows ทำให้มีสองปุ่มที่ไม่สามารถใช้ได้กับโปรแกรม Keynote คือ ปุ่ม Play Slide กับ ปุ่ม Blank
ผมอยากทำให้อุปกรณ์สองตัวนี้ใช้กับโปรแกรม Keynote ได้อย่างสมบูรณ์ ผมจึงใช้เวลาว่างช่วงปิดเทอมเขียนไดรเวอร์ตัวนี้ขึ้น มา
วิธีใช้
คุณสามารถดาวน์โหลดตัวติดตั้งได้ที่นี่ครับ https://github.com/downloads/ake-koo...lExtension.zip
หลังติดตั้งแนะนำให้รีสตาร์ทเครื่องเพื่อให้ตัวระบบป ฏิบัติการโหลดตัวไดรเวอร์ตอนเปิดขึ้นมา
Source code
คุณสามารถดูได้ที่นี่ครับ https://github.com/ake-koomsin/Logit...sPresenterKext
ข้อมูลทางเทคนิค
จริงๆแล้ว Logitech Wireless Presenter R400 และ Logitech Professional Presenter R800 ก็คือคีย์บอร์ดธรรมดาๆครับ จัดเป็นพวก Human Interface Device (HID)
OS X มี IOKit Framework สำหรับพัฒนาไดรเวอร์ จุดเด่นของ framework อันนี้คือเราสามารถเขียนไดรเวอร์ด้วยเทคนิคการเขียนโ ปรแกรมเชิงวัตถุได้ครับ ภาษาที่ใช้คือ C++
IOKit Framework มี API สำหรับเขียนไดรเวอร์ USB HID ครับ
สิ่งที่จำเป็นต้องรู้ในการเขียนไดรเวอร์กับ IOKit Framework มีดังต่อไปนี้
- VendorID/ProductID เลขสองตัวนี้เป็นเหมือนรหัสประจำตัวของอุปกรณ์ USB
- IOClassProvider เราจำเป็นต้องรู้ว่า class อะไรจะเป็น provider ให้กับไดรเวอร์เรา (สามารถดูแผนผังได้จากโปรแกรม ioreg บนโปรแกรม Terminal)
- เราต้อง subclass ให้ถูก ไม่อย่างนั้นไดรเวอร์จะไม่ทำงานครับ
class ที่ถูก subclass คือ IOEventDriver ครับ ผมรู้จากการดูว่าไดรเวอร์ของคีย์บอร์ดของ Apple เริ่มที่ไหนใน ioreg และศึกษาจาก source code ที่ Apple ปล่อยออกมาบน http://opensource.apple.com/
ไอเดียก็ง่ายๆ ครับ ตัวไดรเวอร์ตรวจจับปุ่มที่เราสนใจและก็เปลี่ยนให้เป็ นปุ่มที่ต้องการ
ปุ่ม Play Slide คือปุ่ม F5 ครับ ผมเปลี่ยนเป็น Command + Alt + P ส่วนปุ่ม Blank คือ ปุ่ม . ครับ ผมเปลี่ยนเป็น B
รายละเอียดที่ลึกกว่านี้ดูได้ใน source code หรือลองสอบถามมาก็ได้ครับ
เรื่องน่ารู้
Logitech Wireless Presenter R400 และ Logitech Professional Presenter R800 มี VendorID และ ProductID เดียวกันครับ ต่างกันที่ว่า R800 มีตัวตั้งเวลาและเลเซอร์สีเขียวที่โฆษณาว่าสว่างกว่า ครับ
อ่านต่อ...
Bookmarks