2013-04-21 13 views
13

爲了簡單的目的,我想爲Mac編寫一個簡單的Cocoa應用程序:將我的Dell監視器輸入切換爲另一個(這樣我可以在PC和MAC之間切換)。我已經找到適合Windows,確實是(mControl由entechtaiwan)的應用程序,他們解釋他們所做的事情在那裏:在Cocoa上發送MCCS命令

「要通過軟件切換輸入您使用VESA MCCS命令60H要發送命令顯示器,您需要讀寫連接到顯示器的GPU I/O墊,Mac上的Ditto。「

有誰知道我該如何從Cocoa應用程序發送這樣的命令?也許有一個圖書館...不應該很簡單嗎?

+0

可能與I/O Kit有關,儘管我通常對I/O Kit不太瞭解,或者本任務專門對此做出了正確的回答。在I/O Kit中可能還有一個API,或者(不可能的但值得檢查的)Quartz顯示服務,它封裝了這個任務 - 告訴顯示器切換輸入 - 而不必擔心實現細節。 – 2013-04-21 20:28:09

+0

在http://www.opensource.apple.com/source/IOGraphics/IOGraphics-468/IOGraphicsFamily/中提到了一些MCCS,但主要是關於MCCS中斷 - 這表示接收MCCS事件,而不產生它們。還有一個'/ System/Library/Extensions/AppleMCCSControl.kext',但這是封閉的源碼,我不知道它是做什麼的,或者它提供了一個有趣的接口。你可以嘗試研究'nm -U /System/Library/Extensions/AppleMCCSControl.kext/Contents/MacOS/AppleMCCSControl | C++ filt |更少' – pmdj 2013-12-17 04:51:36

+0

我對顯示端口瞭解不多,但如果MCCS與I2C有關,那麼肯定可以通過IOKit控制這方面。 – pmdj 2013-12-17 04:55:09

回答

2

似乎是在爲Linux的實現:http://ddccontrol.sourceforge.net

它使用<SYS/msg.h> API。這個API似乎沒有人工頁面,但它可以在Mac上使用。我沒有嘗試編譯ddccontrol工具,但看起來像最接近你可以得到的,它應該是一個很好的起點。