Tôi đang cố gắng viết một ứng dụng Cocoa đơn giản cho Mac với một mục đích đơn giản: chuyển đổi đầu vào màn hình Dell sang một thiết bị khác (vì vậy tôi có thể chuyển giữa PC và MAC). Tôi đã tìm thấy một ứng dụng cho Windows thực hiện điều đó (mControl bởi entechtaiwan), và họ giải thích những gì họ làm trong đó:Gửi lệnh MCCS trên Cocoa
"Để chuyển đầu vào qua phần mềm bạn sử dụng lệnh VESA MCCS 60h. màn hình, bạn sẽ cần đọc và ghi vào các miếng đệm I/O GPU kết nối với màn hình. Ditto trên máy Mac. "
Có ai biết cách tôi có thể gửi lệnh như vậy từ ứng dụng Cocoa không? Có thể có một thư viện cho điều đó ... không phải nó khá đơn giản sao?
Có lẽ cần làm gì với Kit I/O, mặc dù tôi không biết đủ về Kit I/O nói chung hoặc nhiệm vụ này đặc biệt để đưa ra câu trả lời đúng đắn. Cũng có thể có một API trong I/O Kit hoặc (không thể kiểm tra nhưng giá trị kiểm tra) Quartz Display Services đóng gói nhiệm vụ này - yêu cầu màn hình chuyển đổi đầu vào — mà không cần phải lo lắng về chi tiết triển khai. –
Có một số đề cập về MCCS trong http://www.opensource.apple.com/source/IOGraphics/IOGraphics-468/IOGraphicsFamily/ nhưng chủ yếu về ngắt MCCS - điều đó sẽ cho biết việc nhận các sự kiện MCCS, chứ không phải tạo chúng. Ngoài ra còn có một '/ System/Library/Extensions/AppleMCCSControl.kext' nhưng đó là nguồn đóng và tôi không biết nó làm gì hoặc nếu nó cung cấp một giao diện thú vị. Bạn có thể thử poring trên đầu ra từ 'nm -U /System/Library/Extensions/AppleMCCSControl.kext/Contents/MacOS/AppleMCCSControl | C++ filt | less' – pmdj
Tôi không biết nhiều về các cổng hiển thị nhưng nếu MCCS có bất cứ điều gì để làm với I2C, khía cạnh đó chắc chắn có thể được điều khiển thông qua IOKit. – pmdj