两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于管理計算機監(jiān)視器配置的系統(tǒng)和方法

文檔序號:6651847閱讀:143來源:國知局
專利名稱:用于管理計算機監(jiān)視器配置的系統(tǒng)和方法
技術領域
本發(fā)明一般涉及計算機系統(tǒng),尤其涉及管理計算機顯示器和其他顯示機制。
背景技術
某些計算機系統(tǒng)用戶,尤其是諸如膝上型計算機的移動計算設備的用戶通常需要把他們的計算機系統(tǒng)連接到不同的諸如顯示監(jiān)視器(或簡稱為監(jiān)視器)的顯示機制上。例如,盡管膝上型計算機具有內置的監(jiān)視器,計算機用戶可在給出演示時把膝上型計算機連接到大的監(jiān)視器或連接到等效的投影機設備。其他例子包括把移動計算機連接到辦公室的監(jiān)視器以及家中的不同的監(jiān)視器上。實際上,某些類型的移動計算機系統(tǒng)已經被設計成不具有任何監(jiān)視器,并且要在每個它們連接監(jiān)視器的目的地之間移動。
此外,盡管不是公知的,當代的操作系統(tǒng)(諸如微軟公司的WindowsXP操作系統(tǒng))以各種方式支持多監(jiān)視器,該各種方式包括允許多個監(jiān)視器的屏幕被用作為一個大的屏幕的方式。換句話說,操作系統(tǒng)擴展連接到安裝的視頻卡(或多頭卡)的監(jiān)視器以作為單個桌面而不是在兩臺或更多監(jiān)視器等上同時顯示相同的圖像(稱為克隆模式),通過該桌面用戶能在監(jiān)視器之間移動鼠標指針和拖拉程序窗口。在該擴展屏幕模式中,操作系統(tǒng)維護單獨的用于每個監(jiān)視器的軟件管理的設置,例如,分辨率、刷新率、顏色深度等。也存在這樣的情況,諸如在游戲應用中,多個監(jiān)視器可被用于橫跨監(jiān)視器的單個應用;在這種橫跨模式中,這些監(jiān)視器一般具有相同的設置。
如此,用戶在把計算機系統(tǒng)連接到一個或多個顯示機制的方式上具有大量靈活性。然而,只要有對于顯示機制的計算機系統(tǒng)的當前配置的更改,例如,監(jiān)視器被連接或被斷開連接,那么為了更改而調整可能需要大量的用戶動作。這需要用戶具有基于重配置如何更改設置的知識,并且有時需要用戶記住或試驗理想的設置。
用于該重配置要求的一個原因是存在用戶能連接的多種類型的顯示機制,很多顯示機制具有不同的能力、屏幕大小等。另一個原因是某些計算機系統(tǒng)具有多個用戶,并且每個用戶需要不同的設置。盡管某些用戶不在意當從工作監(jiān)視器更改到家庭監(jiān)視器或從家庭監(jiān)視器更改到工作監(jiān)視器時、或無論何時在不同的用戶注銷后登錄時重配置設置,其他用戶并沒有充分的知識可以做出理想的更改、或不想麻煩地更改,例如,用戶容忍另一用戶的首選項、或在兩個位置使用相同的設置(“最小公分母”解決方案,即便監(jiān)視器中的一個監(jiān)視器的其他設置是較好的)。在其他情況中,即使熟練的計算機用戶也可能對他們需要連接的具體的顯示機制一無所知,諸如一給出演示的需要連接到任何可用的大的監(jiān)視器或投影設備的用戶。此外,在不久的將來,許多電視機和安裝在飛機上的顯示器將提供計算機連接作為計算機監(jiān)視器是可能的,由此飛機旅客和/或在旅館房間內的旅客等將連接到電視機或顯示器,要求計算機的視頻設置的重配置以適應該電視機或顯示器。需要注意的是預設置方案是不可行的;例如,由于不同的情況,可存在這樣的顯示機制的很多變化,每個變化具有不同的能力,例如,旅館房間電視機幾乎肯定比構建在飛機座位內的顯示器大。
實際上,當連接到具體的顯示機制時,用戶需要或想重配置的分辨率、顏色深度以及刷新率全部是可變的。這些設置由顯示機制的能力結合安裝在計算機系統(tǒng)內的視頻卡(或多個視頻卡)的能力所確定的。屏幕大小是另一更改現有設置的原因,如在一個顯示機制上看上去良好的看得見的對象當在另一個顯示機制的設置上使用時可能太小或太大。功耗是另一個需要被考慮的因素,由于具有某些設置(例如,更高的刷新率)要比且其他機制消耗更多的電力,并且當嘗試保存電池壽命時是不理想的。
總之,存在大量用于結合顯示機制操作的配置計算機系統(tǒng)的方式,并且存在大量用戶可連接的顯示機制類型。當多個顯示機制可用于連接到計算機系統(tǒng)時,也存在多種選擇。需要的是一種當連接到一個或多個顯示機制時簡化用戶體驗的方法,并且該方法以一種處理多個可能的用戶情況以及給用戶想要的結果的靈活的方式實現。

發(fā)明內容
簡單地說,本發(fā)明提供一種用于在監(jiān)視器或其他顯示機制的連接后動態(tài)地和智能地配置和/或在斷開連接后重配置計算機系統(tǒng)的監(jiān)視器相關設置的系統(tǒng)和方法。本發(fā)明不僅僅更改用于特定顯示機制的設置更改,也可作為一個整體對監(jiān)視器配置做出更改,包括一個或多個顯示機制的概念以及它們各自的視頻設置和模式、以及諸如監(jiān)視器相互之間的相對位置的信息、以及影響它們的視頻模式(例如,電源方案)的信息。需要注意的是如在此使用的,術語“監(jiān)視器”和“顯示機制”是等同的并且一般可互換使用,(即使在某些其他情況下,諸如投影機的顯示機制按字面解釋不被考慮成監(jiān)視器)。
當監(jiān)視器被插入計算機系統(tǒng)時,軟件中的瞬態(tài)監(jiān)視器管理器組件被通知并嘗試識別監(jiān)視器以查看它是否先前在計算機系統(tǒng)上被配置。搜索持續(xù)存儲的監(jiān)視器配置,查找包括剛剛被連接的監(jiān)視器的標識符的監(jiān)視器配置,該標識符可結合用于相互連接的監(jiān)視器各自的標識符所維護。如果監(jiān)視器配置數據先前被建立,那么剛剛被連接的監(jiān)視器的建立的視頻模式以及任何其他連接的一個監(jiān)視器或多個監(jiān)視器的建立的視頻模式可被獲得以獲得它們的視頻模式。如果沒有精確匹配,那么數據可從先前建立的類似配置中獲得。當需要更改時,所有監(jiān)視器的視頻模式可同時被應用以使只需要一次‘閃爍’或刷新而不需要用戶交互。監(jiān)視器配置被找到,其中任何已經插入的監(jiān)視器的視頻模式都不需要更改。
在一種實現中,本發(fā)明作用于監(jiān)視器的連接或斷開連接,諸如由操作系統(tǒng)中的視頻棧提供的即插即用事件的接收所指示的。當用戶登錄時、當用戶鎖定以及然后解鎖計算機、或當快速用戶切換發(fā)生時,本發(fā)明也操作以處理這樣的情況,其中盡管用戶退出登錄,但是監(jiān)視器更改發(fā)生。
瞬態(tài)監(jiān)視器管理器組件配置一個或多個到達的監(jiān)視器,監(jiān)視器可被配置成已知的配置,當這樣已知的配置已經被先前的建立時,或如果沒有已知的配置被先前地建立,那么監(jiān)視器被配置成最類似的理想的配置(達到盡可能的程度)。尤其,如果匹配的配置沒有被找到,那么基于每個被連接的監(jiān)視器的能力以及系統(tǒng)的視頻能力確定新的配置,雖然其他諸如電源和操作類型(例如,媒體播放對圖像查看)的因素可修改給定的監(jiān)視器配置。
在一種實現中,如果監(jiān)視器先前沒有被連接到計算機系統(tǒng),那么監(jiān)視器被詢問它可能的視頻模式。如果監(jiān)視器響應,那么返回的信息被用以確定該監(jiān)視器相對于當前的視頻卡能力的最佳的可能的設置,并且視頻模式可在沒有用戶交互的情況下被應用,雖然提供給用戶某些用戶接口也是可行的,諸如具體的監(jiān)視器被第一次遇到。如果監(jiān)視器不具有視頻模式信息,那么可以使用標準的(例如,最小的)視頻模式配置。在大部分實例中,僅僅當系統(tǒng)不能找到監(jiān)視器配置且監(jiān)視器不提供視頻模式信息時才需要關于監(jiān)視器配置是否正確的用戶確認。
用于搜索最佳猜測的監(jiān)視器配置的其他增強可被使用以找到最類似的監(jiān)視器配置。這些增強可包括在當前被插入的監(jiān)視器先前已經被查看的情況中(但不是在相同的監(jiān)視器配置中)使用現有設置。
除了智能地配置新連接的監(jiān)視器,在斷開連接后,管理器組件可重配置任何余下的(依舊連接的)一個監(jiān)視器或多個監(jiān)視器為配置更改而調整。這可包括更改設置,也可包括混洗出現在斷開連接的監(jiān)視器上的窗口和其他圖像到余下的一個監(jiān)視器或多個監(jiān)視器。管理器組件跟蹤用戶對配置(例如,設置的一個或多個)做出的任何手動更改并當遇到相同的監(jiān)視器或類似類型的監(jiān)視器時自動地恢復配置。
此外,由于本發(fā)明負責當監(jiān)視器配置更改時設置視頻模式,所以本發(fā)明可被擴展以處理在計算機上保存電力需要的視頻模式更改,在該計算機上電力保存是重要的,諸如當處理可經歷低電池情況的移動設備時。瞬態(tài)監(jiān)視器管理器能被通知電源方案更改以及能執(zhí)行應用統(tǒng)一電源策略規(guī)則。該特性提供其他益處,因為目前移動設備的臨時顯示設備驅動程序是不能識別多顯示器的,并由此移動設備能經常僅僅對它的內置顯示器做出關于電源的視頻模式更改。
其他優(yōu)點將從以下結合附圖的詳細的描述中變得明顯,其中


圖1是框圖,以個人計算機系統(tǒng)的形式表示通用計算設備,本發(fā)明可被結合到該通用計算設備中;
圖2是框圖,一般表示了根據本發(fā)明的多個方面的用于管理一個或多個監(jiān)視器的組件,包括基于當前監(jiān)視器組應用監(jiān)視器配置數據;圖3是流程圖,一般表示了根據本發(fā)明的多個方面的由瞬態(tài)監(jiān)視器管理器組件在監(jiān)視器連接到計算機系統(tǒng)后采用的示例步驟;圖4是流程圖,一般表示了根據本發(fā)明的多個方面的由瞬態(tài)監(jiān)視器管理器在監(jiān)視器從計算機系統(tǒng)斷開連接后采取的示例步驟;圖5是流程圖,一般表示了根據本發(fā)明的多個方面的當用戶交互地更改監(jiān)視器配置數據時由瞬態(tài)監(jiān)視器管理器采取的示例步驟;以及圖6-10包括流程圖,一般表示了根據本發(fā)明的多個方面的由瞬態(tài)監(jiān)視器管理器采取的以處理各種情況的步驟。
詳細描述典型操作環(huán)境圖1示出了一合適的計算系統(tǒng)環(huán)境100的示例,在該環(huán)境中可實現本發(fā)明。計算系統(tǒng)環(huán)境100只是合適的計算環(huán)境的一例,而不是要提出對本發(fā)明的使用范圍或功能進行限制。計算系統(tǒng)環(huán)境100也不應解釋成對于在示例操作環(huán)境100中所示出的任一組件或其組合有任何依賴或需求。
本發(fā)明可用大量其它通用或專用計算系統(tǒng)環(huán)境或配置運行??梢赃m用于本發(fā)明使用的公知的計算系統(tǒng)、環(huán)境、和/或配置的示例包括,但不局限于,個人計算機、服務器計算機、手持設備或膝上型計算機、平板設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費者電器、網絡PC、小型機、大型計算機、包括任何諸如以上系統(tǒng)或設備的分布計算環(huán)境等。
本發(fā)明可以在諸如由計算機執(zhí)行的程序模塊的可執(zhí)行計算機指令的一般上下文中被描述。一般地,程序模塊包括完成特殊任務或執(zhí)行特殊抽象數據類型的例程、程序、對象、組件、數據結構等。本發(fā)明也可以在分布式計算環(huán)境中實踐,其中任務由通過通信網絡連接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序模塊可以定位于包括存儲器儲存器設備的本地和遠程計算機存儲介質。
參見圖1,用于實現本發(fā)明的示例的系統(tǒng)包括一以計算機110形式出現的通用計算設備。計算機110的組件包括,但不局限于,處理單元120、系統(tǒng)存儲器130、以及將包括系統(tǒng)存儲器在內的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是多種總線結構類型中的任何一種,包括存儲器總線或存儲器控制器、外圍總線和使用各種總線體系結構的任一種的局部總線。舉例來說,而非限制,此類體系結構包括工業(yè)標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強型工業(yè)標準體系結構(EISA)總線、視頻電子標準技術協(xié)會(VESA)局部總線、和也被稱為Mezzanine總線的外圍部件互連(PCI)總線。
計算機110通常包括各種計算機可讀介質。計算機可讀介質可以是任何計算機110能夠訪問的可用介質,包括易失性的和非易失性的介質、可移動的和不可移動的介質。舉例來說,而非限制,計算機可讀介質可以包含計算機存儲介質和通信介質。計算機存儲介質包括能以任何方法或技術實現的易失性的和非易失性的、可移動的和不可移動的介質,用于存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息。計算機存儲介質包括,但不局限于,RAM、ROM、EEPROM、閃存或其它存儲技術,CD-ROM、數字化多功能光盤(DVD)或其它光盤存儲、盒式磁帶、磁帶、磁盤存儲器或其它磁存儲設備,或任何其它可以被用來存儲想要的信息并且可以被計算機110訪問的介質。通信介質通常體現為諸如載波或其它傳送機制的已調數據信號中的計算機可讀指令、數據結構、程序模塊或其它數據,也包括任何信息傳遞介質。術語“已調制數據信號”是指在該信號中以編碼信息的方式來設置或改變其一個或多個特征的信號。舉例來說,而非限制,通信介質包括諸如有線網或直線連接的有線介質,和諸如聲音、射頻、紅外線和其它無線介質的無線介質。任何以上所述的組合也可以包括在計算機可讀介質的范圍之內。
系統(tǒng)存儲器130包括以諸如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132的易失性和/或非易失性存儲器的形式的計算機存儲介質。包含如在啟動期間幫助在計算機110內各元素之間傳送信息的基本例程的基本輸入/輸出系統(tǒng)(BIOS)133,通常存儲在ROM 131中。RAM 132通常包含可以被處理單元120立即訪問和/或當前操作的數據和/或程序模塊。舉例來說,而非限制,圖1示出了操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數據137。
計算機110還可以包括其它可移動/不可移動、易失性/非易失性的計算機存儲介質。僅作為示例,圖1示出了從不可移動、非易失性磁性介質讀出或寫入不可移動、非易失性磁性介質的硬盤驅動器141、從可移動、非易失性磁性磁盤152讀出或寫入可移動、非易失性磁性磁盤152的磁盤驅動器151、以及從諸如CD ROM或其它光學介質的可移動、非易失性光盤156讀出或寫入可移動、非易失性光盤156的光盤驅動器155。其它可以使用在示例的操作環(huán)境中的可移動/不可移動、易失性/非易失性計算機存儲介質包括,但不局限于,盒式磁帶、閃存卡、數字多功能光盤、數字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅動141通常通過諸如接口140的不可移動存儲接口連接到系統(tǒng)總線121,磁盤驅動151和光盤驅動155通常通過諸如接口150的可移動存儲接口連接到系統(tǒng)總線121。
以上討論并且在圖1中示出的驅動器及其它們相關的計算存儲介質為計算機110提供了計算機可讀指令、數據結構、程序模塊和其它數據的存儲。在圖1,例如,示出硬盤驅動器141存儲操作系統(tǒng)144、應用程序145、其它程序模塊146、和程序數據147。需要注意的是這些組件可以和操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數據137相同,也可以和它們不同。在此對操作系統(tǒng)144、應用程序145、其它程序模塊146和程序數據147給出了不同的標號來說明至少它們是不同的拷貝。用戶可以通過諸如寫字板、或電子數字轉換器164、麥克風163、鍵盤162和定位設備161把指令和信息輸入到計算機110中,定位設備161通常指如鼠標、跟蹤球或觸摸板。其它輸入設備(圖1中未示)可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設備通常經由和系統(tǒng)總線121相耦合的用戶輸入接口160連接到處理單元120。但是上述和其它輸入設備也可以由其它接口和總線結構連接到處理單元120,諸如,并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器191或其它類型顯示設備也可以通過諸如視頻接口190的接口連接到系統(tǒng)總線121。監(jiān)視器191也可以和觸摸屏等集成在一起。需要注意的是監(jiān)視器和/或觸摸屏可以物理地耦合到包含了計算機110的外殼內,諸如在平板式個人計算機內。另外,諸如計算設備110的計算機也包括其它外圍輸出設備,諸如可以通過一輸出外圍設備接口194等連接的揚聲器195和打印機196。
計算機110可以在網絡化的環(huán)境中運行,該環(huán)境使用邏輯連接連接到一個或多個諸如遠程計算機180的遠程計算機。遠程計算機180可以是個人計算機、服務器、路由器、網絡個人計算機、對等設備或其它普通網絡節(jié)點,通常包括以上描述的和110相關的多個或全部組件,盡管在圖1中只示出了存儲器儲存設備181。在圖1中描繪的邏輯連接包括局域網(LAN)171和廣域網(WAN)173,但是也可以包括其它網絡。這樣的網絡環(huán)境在辦公室、企業(yè)范圍的計算機網絡、內聯(lián)網和因特網中是普遍的。
當在LAN網絡環(huán)境中使用時,計算機110通過網絡接口或適配器170連接到LAN 171。當在WAN網絡環(huán)境中使用時,計算機110通常包括調制解調器172或通過諸如因特網的WAN 173建立通信的其他裝置。調制解調器172可以是內置的或外置的,可以通過用戶輸入接口160或其它適當的機制連接到系統(tǒng)總線121。在一網絡化的環(huán)境中,所描述的和計算機110相關的程序模塊或其中的一部分可以存儲在遠程存儲器儲存設備內。舉例說明,但非限制,圖1示出了駐留在存儲器設備181上的遠程應用程序185。可以理解的是所示的網絡連接是示例的,也可以使用在計算機間建立通信鏈路的其他裝置。
需要注意的是如上描述的,本發(fā)明一般涉及數據源,數據源可以,例如,包括對應于駐留在一個或多個遠程系統(tǒng)上的SQL服務器和/或XML數據提供者(Web服務)的數據源。圖1的計算環(huán)境100被理解包括任何本地和/或遠程數據源,該數據包括SQL服務器提供的數據、Web服務服務器提供的數據和其他。
管理監(jiān)視器配置本發(fā)明一般涉及一種系統(tǒng)和方法,通過該系統(tǒng)和方法可在管理器組件上檢測任何對于配置一個或多個監(jiān)視器的方式的更改,然后該管理器組件以大多數用戶可能首選的方式自動地應用計算機管理的監(jiān)視器配置數據以補償更改。如被理解的那樣,大量實現本發(fā)明的方式是可行的,并且僅僅可供替換的某些方式在此描述。例如,本發(fā)明參考一個或多個視頻卡可被安裝在其內的計算機系統(tǒng)描述,并且在該計算機系統(tǒng)中監(jiān)視器對計算機的連接和監(jiān)視器從計算機處的斷開連接被諸如基于即插即用(PNP)技術的組件的操作系統(tǒng)組件所檢測。然而,本發(fā)明也可在其他類型的設備上實現,諸如連接到電視機的媒體播放器。實際上,諸如計算機監(jiān)視器、電視機、投影設備等可把對應于自己能力的某些數據或標識符發(fā)送到另一設備的任何顯示機制都能從本發(fā)明中獲益。同樣地,本發(fā)明不被限制于任何在此使用的具體示例,而是可以多種在一般計算內提供益處和優(yōu)點的方式使用。
此外,本發(fā)明的某些例子結合各種對于具有標識符的計算機監(jiān)視器的參考所描述,尤其是由視頻電子標準協(xié)會定義的“擴展顯示標識數據”或EDID。一般地,EDID是數據結構,通過該數據結構計算機監(jiān)視器能夠向它連接的主計算機系統(tǒng)通知它的身份和能力(稱為E-EDID的擴展EDID數據結構是該標識符的更新的版本)。然而,本發(fā)明不被限制于具有EDID的監(jiān)視器,而是可與任何標識系統(tǒng)工作。如此,如在此使用的,術語“標識符”和它的變體包括任何用于顯示機制向連接的主系統(tǒng)標識它自己和/或它的能力的方式,包括基于EDID和E-EDID標準的數據結構。
此外,注意如在此使用的,術語“連接的”、“耦合的”、“插入的”以及它們的變體是等同的并且一般表示一種狀態(tài),在該狀態(tài)中數據可在監(jiān)視器和計算機系統(tǒng)之間以至少一個方向發(fā)送而不管數據是通過有線的還是無線的介質發(fā)送。在相反的狀態(tài)中,數據不能用于任何原因而被發(fā)送,原因包括物理通信介質的移除、無線超出范圍或干涉情況、監(jiān)視器或視頻頭的電源關閉狀態(tài)(包括諸如結合膝上型計算機的關閉電源的內置監(jiān)視器)等,該狀態(tài)被等同地稱為“斷開連接的”、“斷開耦合的”或“未被插入的”以及它們各自的變體。
參見附圖,圖2顯示了在其中可實現本發(fā)明的示例組件的排列。在圖2中,包括一個或多個監(jiān)視器2021和2022的顯示機制可連接到一個或多個視頻卡(視頻適配器)204以及從一個或多個視頻卡(視頻適配器)204中斷開連接,該一個或多個視頻卡(視頻適配器)由諸如通過視頻電纜物理地插入監(jiān)視器中。雖然圖2僅僅顯示了兩個監(jiān)視器,可以理解的是任何可行數量的監(jiān)視器可被連接。需要注意的是當代計算機系統(tǒng)支持多個視頻卡,諸如AGP或基于PCI的視頻卡,并且也支持市場上提供的具有多個視頻頭的單個視頻卡。也要注意的是雖然沒有在圖2中特別地表示,視頻“卡”的概念等同于實際上不在可移動卡上的內置視頻電路。
只要諸如監(jiān)視器2022的顯示機制被連接或被斷開連接而計算機系統(tǒng)是可操作時,信號通過視頻棧(例如,硬件和軟件驅動程序層206、208等)由視頻卡204發(fā)送至被配置以感應硬件更改的操作系統(tǒng)機制,如在圖2通過即插即用(PNP)組件210表示的那樣。即插即用組件210通過系統(tǒng)發(fā)送事件至適當的實體,由此稱為瞬態(tài)監(jiān)視器管理器212的用戶模式組件知道有連接或斷開連接事件。注意的是該排列充分利用當前的技術;在可供選擇的配置中,瞬態(tài)監(jiān)視器管理器可被實現為內核組件,和/或被配置以在沒有即插即用組件210的情況下感應監(jiān)視器連接和斷開連接。
與本發(fā)明一致,瞬態(tài)監(jiān)視器管理器212能諸如通過做出詢問,例如,通過由圖形接口213的API調用(例如,基于GDI的軟件),找到有關連接的監(jiān)視器的信息。第一個這樣的詢問可涉及獲取監(jiān)視器的關聯(lián)標識符(例如,EDID),只要監(jiān)視器支持這個標準;部分EDID被用于可能的范圍,而NULL EDID(空EDID)由設置顯示機制為某些最小值以及獲取用戶確認而被處理。更具體地,由于實際上不是所有監(jiān)視器具有唯一序列號,當新的監(jiān)視器被插入時,可使用類似監(jiān)視器的配置。系統(tǒng)可檢測監(jiān)視器的生產代碼以及產品標識符并且檢查該組合是否以前被查看過。如果存在對于這兩條信息的匹配,那么序列號能被用以進一步標識監(jiān)視器。如果序列號不是唯一的,那么來自監(jiān)視器的其他信息(例如,來自EDID數據結構)能被用以標識監(jiān)視器。
序列號不一定是最佳的標識監(jiān)視器的方式。另一種標識監(jiān)視器的方式是把整個EDID或部分EDID轉換至散列碼,并且存儲EDID至散列表。由于監(jiān)視器的牌號和型號是EDID的一部分,用于EDID的進入散列表的入口點包括用于牌號和型號信息的散列表。這排除了再次詢問監(jiān)視器更多信息(如以下描述的)的需要。由于某些監(jiān)視器不具有序列號、或用于監(jiān)視器牌號和型號的唯一序列號,因此使用EDID作為標識符是較佳的。為了幫助進一步標識監(jiān)視器,計算機所連接的網絡可被標識,并且被納入散列碼的信息被用于EDID。
如果監(jiān)視器不具有EDID(或具有NULL EDID(空EDID)),那么各種其他標識機制可被應用。例如,如果可確定監(jiān)視器是內置監(jiān)視器(例如,膝上型計算機的內置LCD面板),那么這是用以區(qū)分監(jiān)視器的標識的一種形式。如果沒有其他方式區(qū)分監(jiān)視器并且它具有NULL EDID(空EDID),那么算法(以下被一般地描述)能指定特殊的監(jiān)視器標識符。然而,如果存在多于一個的NULL EDID(空EDID)監(jiān)視器,那么沒有方法可用于保存兩個監(jiān)視器的不同的監(jiān)視器設置。在這種情況下,兩個監(jiān)視器將共享相同的視頻設置,或算法將監(jiān)視器視為新的監(jiān)視器。
如以下描述的,為了確定當前監(jiān)視器配置,剛剛被連接的監(jiān)視器的標識符被結合一個或多個其他已知的被連接的監(jiān)視器的一個或多個標識符所使用。注意的是當需要時,瞬態(tài)監(jiān)視器管理器212能詢問所有連接的監(jiān)視器(那些能響應的監(jiān)視器)以了解當前被連接的一個或多個監(jiān)視器的組。例如,對以下啟動這是需要的,當對于最后監(jiān)視器配置的任意數量的更改已經在沒有相應感應的PnP事件的情況下在關閉(或休眠等)期間做出時。類似地,在不標識哪個監(jiān)視器被斷開連接的斷開連接事件后,瞬態(tài)監(jiān)視器管理器212可詢問任何余下的監(jiān)視器以通過排除過程確定哪個監(jiān)視器被斷開連接。
根據本發(fā)明的一個方面,一旦瞬態(tài)監(jiān)視器管理器212知道一個或多個當前被連接的監(jiān)視器的組,瞬態(tài)監(jiān)視器管理器212確定監(jiān)視器配置(一組數據)以應用到該組,并可能在不需要任何用戶確認的情況下應用該組。如以下描述的,確定監(jiān)視器配置可取決于監(jiān)視器配置是否先前為該組所被建立,或該組是否對應于新的監(jiān)視器配置,在此事件中瞬態(tài)監(jiān)視器管理器212實質地為該組以智能的方式構建新的監(jiān)視器配置并且然后應用該構建的監(jiān)視器配置。
為了確定相應的監(jiān)視器配置是否已經被先前地建立,瞬態(tài)監(jiān)視器管理器212訪問在數據存儲214內維護的監(jiān)視器配置數據。一般地,如果找到匹配監(jiān)視器配置,那么它被應用,由此新連接的監(jiān)視器和任何其他連接的監(jiān)視器被自動地按需更改以對每個監(jiān)視器恢復先前的視頻狀態(tài)。視頻狀態(tài)涉及能由軟件設置的任何視頻相關的數值(例如,監(jiān)視器的分辨率、刷新率、顏色深度、方位、亮度、對比度、視頻頭狀態(tài)開或關閉、和/或DPI)。對于具有多個監(jiān)視器的配置,視頻狀態(tài)也包括監(jiān)視器相互之間相對的邏輯位置(在相應的計算機桌面上),稱為幾何。注意的是如此監(jiān)視器配置的概念包括用于一個或多個監(jiān)視器的組的視頻設置/模式,以及幾何,和其他影響視頻設置/模式的信息(例如,電源方案)。如可被容易理解的那樣,不是所有可能的信息都需要被知道以持續(xù)存儲和應用監(jiān)視器配置,然而,可用以及可被持續(xù)存儲的配置信息越多,那么當下次相同的組被重新連接時,瞬態(tài)監(jiān)視器管理212能越好地恢復系統(tǒng)到它先前的狀態(tài)。
在電源API 220也顯示了瞬態(tài)監(jiān)視器管理器212可由此至少暫時地修改被應用到監(jiān)視器組的設置??梢匀菀桌斫獾氖侵T如低電池情況的相關電源的事件,或被重新連接到電源的移動設備可在瞬態(tài)監(jiān)視器管理器212被檢測,并且從而被用為更改視頻設置的基礎。
圖3是概括當監(jiān)視器被檢測為已經被例如即插即用事件插入時(如通過步驟300表示的),由瞬態(tài)監(jiān)視器管理器212執(zhí)行的各種操作流程圖。步驟302表示關于這是新的監(jiān)視器還是以前已經被該計算系統(tǒng)遇到的監(jiān)視器的確定。該步驟隱含地包括計算與監(jiān)視器關聯(lián)的標識符,該標識符可被視為是通過后面的獲取標識符的詢問類型操作獲取的,雖然對于標識符而言被結合連接事件所提供是可行的。各種確定監(jiān)視器是否先前已經被連接的方式在以下被描述,雖然一般地,如果監(jiān)視器先前已經被連接,那么監(jiān)視器對應于至少一個具有在數據存儲214內持續(xù)存儲的數據的監(jiān)視器配置。注意的是實用程序等可被用以從數據存儲214中清除不再需要的監(jiān)視器配置,但是用于本示例描述的目的,假設任何先前的監(jiān)視器配置依舊被存儲在數據存儲214中。
如果監(jiān)視器對應于至少一個監(jiān)視器配置,那么它對于計算機系統(tǒng)而言不是新的,步驟302分出至步驟304,在此全部配置(包括任何其他連接的監(jiān)視器)被估算,在任何包括對應于剛剛被連接的監(jiān)視器的標識符的數據的監(jiān)視器配置中尋找精確匹配。一般地,瞬態(tài)監(jiān)視器管理器212尋找用戶先前具有的監(jiān)視器的同樣的配置。如果在步驟304找到一個,那么監(jiān)視器配置在步驟306被用以重置(一個或多個)監(jiān)視器的組為它先前的配置,并且瞬態(tài)監(jiān)視器管理器212的這個過程結束直到再次需要。注意的是要求某些比在步驟302和/或304的精確匹配較松的條件是可行的,諸如當剛剛被連接的監(jiān)視器與另一監(jiān)視器足夠的類似以被認為匹配時(例如,相同的牌號和型號)。如可被容易理解的,現有監(jiān)視器配置的應用可以是用于多個類型的用戶合理地經常發(fā)生,該用戶包括使移動設備在各位置之間移動并插入各監(jiān)視器的用戶、共享相同的計算機但具有不同設置(監(jiān)視器配置基于每個用戶持續(xù)存儲)的用戶等。
在步驟304,盡管監(jiān)視器在步驟302被識別,但是全部的配置是新的是可能的。例如,剛剛被連接的監(jiān)視器已經創(chuàng)建出先前從未被使用的監(jiān)視器組合,或剛剛被連接的監(jiān)視器已經總在某組合中被使用,但是現在由它單獨連接。如果全部配置是新的,那么步驟304分出至步驟314,在此用于該新的監(jiān)視器的“最佳”配置被瞬態(tài)監(jiān)視器管理器212自動地選擇;(注意的是“最佳”是在引號內以表明這個不一定是最佳的,僅僅是關于用戶最想找到的最佳猜測)。例如,來自非匹配監(jiān)視器配置的設置可被選擇并被應用為最佳猜測,在該非匹配監(jiān)視器配置中監(jiān)視器是最新使用的。注意的是在應用配置之前,需要針對視頻卡的兼容性評估設置,該視頻卡與監(jiān)視器最后連接的視頻卡可能是不同的。如果是不兼容的,可選擇更早些使用的配置,和/或設置被更改為與視頻卡兼容的最接近的數值。
步驟314分出至(可選的)步驟320以通過用戶界面對話框等確認應用的配置對用戶而言是可接受的,以及如果用戶首選更改監(jiān)視器配置,那么用戶接口一般提供修改監(jiān)視器配置(例如,顯示屬性)的鏈接。在步驟320的用戶交互后(用戶可選擇在將來繞過),瞬態(tài)監(jiān)視器管理器212的這個過程結束,直到在連接事件后再次需要。
注意的是在用戶交互后,可獲取其他信息。例如,用戶可被詢問他或她是否正在給出演示。如果是,那么可做出其他類型的更改,例如,監(jiān)視器配置可為無屏幕空白/無屏幕保護程序而設置,通知可被關閉等。
返回步驟302,如果監(jiān)視器對于計算機系統(tǒng)而言是新的(例如,沒有在計算機系統(tǒng)的現有監(jiān)視器配置中找到),那么步驟302則分出至步驟304,表示詢問監(jiān)視器它的能力,也就是說,任何監(jiān)視器能提供的相關配置的信息。例如,某些當代的監(jiān)視器能提供從中能確定DPI的諸如它們的屏幕維度的信息,以及其他諸如首選的操作分辨率、刷新率、顏色深度、和其他設置的信息。注意的是該信息中的某些或所有可在先前在步驟302估計的標識符內;如果是的話,那么沒有理由在步驟310再次詢問它。然而,如以下描述的,API等可被提供,其中EDID中被選擇的部分可被檢索,例如,在一個調用中的序列號、在另一調用中的能力、并如此可做出多個詢問。
或者,如果在步驟312沒有詳細的信息可用,但是有足夠的其他信息可用并表明剛剛被連接的監(jiān)視器與另一系統(tǒng)已知的監(jiān)視器非常類似(例如,相同的牌號和型號),那么另一監(jiān)視器的配置信息可被代替用于該監(jiān)視器的配置信息。如圖3中表示的,當足夠的信息可用,并且該信息被用以為剛剛被連接的監(jiān)視器選擇和應用最佳猜測配置,那么步驟312分出至步驟314。注意的是監(jiān)視器提供(或代替的類似)的信息作為視頻卡的限制的結果可能需要修改,這可通過以下描述的循環(huán)迭代所實現。
如果在步驟312監(jiān)視器不能提供足夠的信息,那么步驟316則被執(zhí)行以嘗試某些最小配置。例如,絕大多數個人計算機和監(jiān)視器至少支持VGA標準,允許用戶查看包括對于手動地更改視頻設置而言足夠的用戶界面的有意義的圖形。步驟320跟隨配置嘗試,允許用戶做出這樣的更改和/或確認該配置是可被接受的。注意的是盡管沒有在圖3中顯示,讓步驟316開始于某些比VGA更好的配置(例如,具有更好的分辨率)是可行的,然后如果用戶不采取動作,那么在返回步驟316之后在步驟320超時,其后在步驟316可嘗試某些較少的配置。換句話說,過程可從步驟316前進到步驟320,并且,在某些允許交互的時間后,循環(huán)返回步驟316,重新把分辨率減到最小值直到用戶在步驟320交互或達到最小值(諸如VGA)。一旦用戶在步驟320確認,過程結束。如果用戶從未確認,那么可假定監(jiān)視器沒有在正常工作或它不至少支持VGA,在這種情況下計算機系統(tǒng)可采取其他動作,諸如在另一監(jiān)視器上向用戶通知此問題,和/或不將這個監(jiān)視器作為當前配置的一部分包括,好像它從未被連接。
如此,當監(jiān)視器被插入時,監(jiān)視器配置需要被找到或被配置以使對于視頻設置的更改可被應用。一種實現這個的快速方式是基于曾經是配置的一部分的監(jiān)視器尋找過去的監(jiān)視器配置。如此,做出第一搜索以迅速標識新連接的監(jiān)視器是否先前已經是監(jiān)視器配置的一部分了。監(jiān)視器的身份可通過包括在EDID內的序列號所確定,該序列號在目前版本中32位的數。在沒有序列號的情況下,一個或多個其他(例如,EDID)字段可被散列以提供有用于如上所述的標識目的的數值。工具API調用等(例如,通過圖形接口組件213)可被用以檢索EDID。
在示例實現中,多種加快查找的方式包括使用散列表和/或以平衡二叉樹排列已知的監(jiān)視器標識符,例如,已知的監(jiān)視器信息可被包括在數組中并且二叉樹中的每個節(jié)點可以是監(jiān)視器數組中的索引,以使每個在監(jiān)視器數組中的條目包括指針列表,每個指針指向每個監(jiān)視器是其一部分的監(jiān)視器配置。一般地,二叉樹可在此后被用以說明可能的實現。在這樣的實現中,監(jiān)視器配置被存儲在稱為監(jiān)視器配置列表的最近使用的監(jiān)視器配置列表中,具有指向包括在監(jiān)視器數組的元素的監(jiān)視器配置列表指針鏈表并且被排序,以使列表的頭指向該監(jiān)視器是其一部分的最近的監(jiān)視器配置。
由于監(jiān)視器配置可從一個用戶向下一個用戶更改,如果瞬態(tài)監(jiān)視器管理器212是內核組件,那么當存在用戶上下文更改時,監(jiān)視器數組和監(jiān)視器配置列表之間的鏈接被重置。監(jiān)視器配置列表中的每個節(jié)點包括數據,諸如時間標記(用于以排列最近使用順序排列)、配置中的監(jiān)視器數量、電源方案(例如,表示為GUID)、版本號(用于數據結構將來可能的版本)、視頻端口狀態(tài)(也就是說,視頻端口是活動的還是停用的)、監(jiān)視器的幾何以及在該配置和它們各自狀態(tài)中標識監(jiān)視器的監(jiān)視器/狀態(tài)數組?;蛘?,視頻設置可從監(jiān)視器狀態(tài)信息中提取。
監(jiān)視器/狀態(tài)數組具有包括對應于監(jiān)視器數組內的監(jiān)視器的索引條目的元素以及包含監(jiān)視器狀態(tài)的結構。狀態(tài)包含諸如監(jiān)視器的分辨率、刷新率、顏色深度以及方位的信息。存在這樣的情況,視頻頭狀態(tài)需要獨立于監(jiān)視器的出現而被跟蹤。在這種情況下,視頻頭狀態(tài)被存儲在監(jiān)視器配置列表條目節(jié)點中而不是監(jiān)視器狀態(tài)中。
當機器用已知的監(jiān)視器啟動時,監(jiān)視器身份可被獲取。例如監(jiān)視器A、監(jiān)視器B和監(jiān)視器C可在一配置中,其中諸如監(jiān)視器A具有為5的ID、監(jiān)視器B具有為3的ID以及監(jiān)視器C具有為7的ID。二叉樹被檢查,并且在這個示例中這些是已知的監(jiān)視器,對應于ID 5、3以及7的節(jié)點被找到。每個節(jié)點包括在監(jiān)視器數組內的索引。指向包括在每個數組元素內的監(jiān)視器配置列表的指針列表被向下過濾以僅僅對應于那些當前正在使用的監(jiān)視器數量(3)和電源方案。接下來在指向每個監(jiān)視器的監(jiān)視器配置列表的指針上執(zhí)行比較以查看是否存在匹配。如果存在對于三個監(jiān)視器的匹配,那么從監(jiān)視器配置列表監(jiān)視器狀態(tài)中獲取的視頻設置以及從監(jiān)視器配置列表節(jié)點中獲取的幾何被應用(通過圖形接口214)。在任何監(jiān)視器的幾何都不匹配存儲的幾何的情況下,存儲的幾何不被使用。如一個示例,認為監(jiān)視器B在監(jiān)視器C被插入之前被移動到監(jiān)視器A的左邊。在這種情況下,監(jiān)視器B移動到監(jiān)視器A左邊是已知的,那么由于存儲的幾何顯示監(jiān)視器B在監(jiān)視器A的右邊,用于監(jiān)視器A、B和C(當被插入時)的存儲的幾何不被使用。
在未知的監(jiān)視器被插入的情況下,盡管視頻模式可由循環(huán)迭代可能的模式所確定,以便可能地恢復過去的設置,但執(zhí)行對于監(jiān)視器型號的搜索以嘗試提供給用戶用于類似的監(jiān)視器的過去使用的模式。如果對于型號的搜索失敗,那么可使用監(jiān)視器能力,其中監(jiān)視器能力包括屏幕大小和/或模式以及監(jiān)視器支持的刷新率的組合。諸如監(jiān)視器類型的信息能增強理想模式的選擇,例如,LCD、CRT、等離子或某些其他類型。一個示例是,當用戶從一個會議室移向另一個會議室,并把相同的計算機插入會議室中不一樣但類似的監(jiān)視器時。在這種情況下,監(jiān)視器ID不能在使用監(jiān)視器ID的二叉樹的監(jiān)視器數組中找到。當搜索失敗時,將執(zhí)行顯示機制的型號的搜索。
兩種搜索型號的方式包括創(chuàng)建另一能被搜索型號的二叉樹,或通過監(jiān)視器數組執(zhí)行線性搜索。由于對于大多數用戶而言未知監(jiān)視器被添加的次數相對于已知監(jiān)視器被插進或從計算機中拔出的次數是很少的,并且由于創(chuàng)建二叉樹需要通過監(jiān)視器數組的線性搜索,所以簡單的線性搜索可能是有優(yōu)勢的。
另一情況是未知的監(jiān)視可被插入,包括當只有未知的監(jiān)視器被插入時,諸如具有不具有內置監(jiān)視器的移動計算設備。如果計算機已經在運行,那么向瞬態(tài)監(jiān)視器管理器212通知正在被插入的一個或多個新的監(jiān)視器?;蛘撸绻嬎銠C是第一次啟動,那么瞬態(tài)監(jiān)視器管理器212首先檢測以查看什么監(jiān)視器被插入到計算機中。在另一情況中,每個新監(jiān)視器的監(jiān)視器ID被獲取,并且在該“未知監(jiān)視器”的示例中,二叉樹的檢測顯示沒有任何已知的監(jiān)視器具有這樣的監(jiān)視器ID。然后,型號被獲取,并且被用以為型號的每種情況搜索監(jiān)視器數組(例如,線性地)。每當存在一匹配,數組索引被添加到鏈表中。
如果僅有一個鏈表,那么鏈表被線性地檢測并且數組索引被用以訪問對于監(jiān)視器配置列表的指針。當監(jiān)視器配置列表條目被用于一監(jiān)視器而過濾并且找到最新的條目時,關聯(lián)的視頻設置數據被用以設置監(jiān)視器配置,并且監(jiān)視器配置列表被更新。如果沒有匹配存在,那么視頻模式被循環(huán)迭代并且監(jiān)視器配置由最優(yōu)的分辨率和刷新率所確定。
如果存在另一在該過程期間被添加的監(jiān)視器,那么另一鏈表被以相同的方式創(chuàng)建和填充。鏈表被搜索并且任何監(jiān)視器配置列表條目為兩個(或更多)監(jiān)視器所過濾。最新的由所有鏈表共享的監(jiān)視器配置列表條目被使用。
監(jiān)視器插入/拔出事件在每個鏈表被填充后所檢測,并且就在應用視頻設置數據之前再次被檢測。如果存在更改,那么新的監(jiān)視器配置被確定。在當未知監(jiān)視器被插入時,一個或多個已知監(jiān)視器已經被插入的情況下,一種類似于只有未知監(jiān)視器的情況存在,除了監(jiān)視器配置列表條目與那些由已知監(jiān)視器數組條目所指向的監(jiān)視器配置列表條目比較。
為了用新標識的監(jiān)視器更新監(jiān)視器數組,當未知的監(jiān)視器被詢問時,它被附加到監(jiān)視器數組的尾部。在這個時候,數組條目不具有任何對于監(jiān)視器配置列表的指針。然后,二叉樹被使用新的監(jiān)視器ID而更新。一旦監(jiān)視器被添加到監(jiān)視器配置列表,當更新視頻設置的代碼使用采用指向監(jiān)視器配置列表條目和監(jiān)視器ID組的指針的方法調用維護監(jiān)視器數組的代碼并發(fā)送回與每個監(jiān)視器關聯(lián)的數組索引時,監(jiān)視器數組被更新。函數把指向監(jiān)視器配置列表條目的指針添加到與每個在發(fā)送的監(jiān)視器組中的監(jiān)視器關聯(lián)的每個數組條目作為參數。
參考斷開鏈接的考慮,圖4顯示了由瞬態(tài)監(jiān)視器管理器212響應于斷開連接事件采用的示例邏輯,如由步驟400表示的。注意的是如以下描述的,一般僅僅不采取動作是不理想的,由于顯示在斷開連接的監(jiān)視器上的其他程序窗口、圖標等將不再可見。如此,步驟402評估由監(jiān)視器被斷開連接所產生的全部配置。如以上提到的,這隱含地需要知道哪個監(jiān)視器被斷開連接而那個或哪些監(jiān)視器保持連接,這需要詢問余下的一個監(jiān)視器或多個監(jiān)視器它們的標識符以及通過排除過程確定哪個監(jiān)視器被斷開連接。
一般地,給定了修改的監(jiān)視器組,瞬態(tài)監(jiān)視器管理器212查找與用戶先前具有的監(jiān)視器相同(或足夠類似的)的配置。如果在步驟402找到一個,那么監(jiān)視器配置在步驟406被應用以重置存在的(一個或多個)監(jiān)視器的組的設置為它先前的配置,并且該瞬態(tài)監(jiān)視器管理器212的斷開連接處理過程結束直到再次需要。
如果在步驟402,監(jiān)視器設置被認為是新的,步驟402分出至步驟406,其中如以上一般描述的,例如,基于類似的配置數據或基于每個保持連接的監(jiān)視器的能力選擇最佳猜測的配置。步驟408允許用戶確認,一般也促進任何用戶更改。
作為當已知監(jiān)視器被拔出時,考慮另一具有連接的監(jiān)視器A、B和C的計算機配置的例子。當計算機正在運行時,監(jiān)視器C被拔出,由此瞬態(tài)監(jiān)視器管理器212接收監(jiān)視器已經被拔出的PnP通知,并且,如果被拔出的監(jiān)視器沒有被標識,那么瞬態(tài)監(jiān)視器管理器212通過排除過程確定哪個監(jiān)視器被拔出,也就是說,通過重新獲取那些保持連接的監(jiān)視器ID以及通過把ID與監(jiān)視器配置列表比較。
如以上參考圖4描述的,在一實現中,這可導致監(jiān)視器配置更改以恢復監(jiān)視器A和B到先前的狀態(tài)。或者,在一可供選擇實現中(可以是用戶可配置的),為了避免混淆用戶,剩余監(jiān)視器的狀態(tài)可被保持原樣,也就是說,既不更改監(jiān)視器A和B的分辨率也不更改監(jiān)視器A和B的刷新率。然而,監(jiān)視器C的視頻頭被關閉,并且通過采用當前監(jiān)視器配置的備份以及從監(jiān)視器列表中排除監(jiān)視器C來準備監(jiān)視器配置列表內新的條目。視頻設置可被串行化并且存儲在可通過新GUID訪問的存儲位置,該新GUID代替舊的監(jiān)視器配置GUID,并且時間標記被更新。剩余監(jiān)視器的幾何被記錄并且被放置在存儲位置上的數據可由時間標記尋址。然后,新的監(jiān)視器配置被放置在監(jiān)視器配置列表的頭部。
在監(jiān)視器C被再次插入的事件中,瞬態(tài)監(jiān)視器管理器212將接收監(jiān)視器已經被插入的PnP通知。在獲取監(jiān)視器的序列號后,通過監(jiān)視器ID的二叉樹確定監(jiān)視器C已經被插入。如可被理解的,由于這是“已知監(jiān)視器”情況,適當的可使用的視頻設置被如上描述地確定。
在電源關閉期間,使用已知監(jiān)視器的監(jiān)視器重配置是可能的。雖然有些類似于接收拔出事件,但是沒有PnP通知被接收。再次考慮連接到監(jiān)視器A、B以及C的計算機的示例,其中用戶關閉計算機電源并拔出監(jiān)視器C。在這個示例中,計算機先前沒有遇到正好具有監(jiān)視器A和B的配置。在電源打開后,監(jiān)視器A和B被插入以及被相應地標識,然而在具有包括監(jiān)視器A和B的兩個監(jiān)視器的監(jiān)視器配置列表中沒有條目存在。
確定如何設置兩個監(jiān)視器的第一可選方式是通過循環(huán)迭代兩個監(jiān)視器能支持的可能的模式來確定最優(yōu)分辨率和刷新率。第二種方式是修改關于監(jiān)視器配置列表的搜索規(guī)則以不需要監(jiān)視器數量等于3以匹配現有的配置,從而瞬態(tài)監(jiān)視器管理器212將找到包括監(jiān)視器A和B的監(jiān)視器配置。通過這種方式,新的監(jiān)視器配置可被找到,類似于好像當計算機系統(tǒng)電源被關閉時監(jiān)視器C被拔出。注意的是如果第二種可選方式被使用,僅僅使用包括監(jiān)視器A和B的最近的配置。對于用戶而言,更改僅僅是監(jiān)視器C消失,而用于監(jiān)視器A和B的監(jiān)視器設置與當監(jiān)視器C被插入時它們的設置相同。當然,監(jiān)視器A和B可能還結合另一監(jiān)視器被插入,但是一般而言監(jiān)視器A和B的監(jiān)視器設置保持相同是理想的。視頻設置被設置并且第三監(jiān)視器的視頻頭被關閉。然后,監(jiān)視器配置被記錄并且監(jiān)視器配置列表被更新。在嘗試設置視頻設置失敗的情況下,然后可使用第一可選方式。
根據本發(fā)明的另一方面,當監(jiān)視器被斷開連接時,任何正在該監(jiān)視器上顯示的程序窗口、圖標等通過瞬態(tài)監(jiān)視器管理器212被切換到一個或多個余下的監(jiān)視器的組。為此,在檢測到斷開連接以及任何余下的一個監(jiān)視器或多個監(jiān)視器的重配置后,關于窗口位置、大小等的數據依然存在于存儲器中并且被用以從當前的非擴展的或較少擴展的桌面中把信息“混洗”到保留的桌面區(qū)域。窗口和其他圖像可被按需縮放以適合新的區(qū)域。來自斷開連接的監(jiān)視器的程序窗口可被移動到新的區(qū)域,或它們可在連接的監(jiān)視器的工具欄等中被最小化直到被選擇,在那個時候它們在連接監(jiān)視器上被恢復。
在斷開連接的監(jiān)視器(或類似的監(jiān)視器)被重新連接的事件中,窗口和其他圖像可被恢復。然而,為了避免用戶混淆,存在被應用于處理窗口的規(guī)則,例如,如果用戶與窗口以足夠的方式交互,例如,輸入或點擊它、移動它、把它調整大小、和/或給該窗口焦點,窗口可保持在它當前的位置而不是簡單地恢復到它先前在的位置。
注意的是通過“快速用戶切換”,用戶不退出登錄并因此關于用戶窗口的定位數據被維護。如此,即使當計算機在事件發(fā)生的時候被切換到另一用戶時,多個用戶的數據可在斷開連接和/或重新連接配置更改后被按需重新混洗。在配置更改后的休眠能類似地導致窗口等的混洗,盡管瞬態(tài)監(jiān)視器管理器212需要在從休眠模式出來后被通知以使當前的監(jiān)視器配置能被確定。
參考圖5,如可從圖3和圖4明顯的得出,在某些情況中,瞬態(tài)監(jiān)視器管理器212的選擇可由與適當的用戶界面的手動用戶交互所代替,適當的用戶界面例如,“顯示屬性”/控制面板用戶界面。用戶也能在諸如正常的操作期間的其他時間更改配置數據。如能被理解的,這些更改需要在用于當前監(jiān)視器組的監(jiān)視器配置數據中持續(xù)存儲,否則它們將在從連接或斷開連接產生的下一配置更改后丟失。
圖5表示了在更改配置的用戶交互后由瞬態(tài)監(jiān)視器管理器212采取的動作,如步驟500所表示的那樣。例如,用戶能選擇“顯示屬性”用戶界面,并且一旦任何更改被應用,瞬態(tài)監(jiān)視器管理器對監(jiān)視器組做出更改,并且也持續(xù)存儲更改。為了持續(xù)存儲更改,在步驟502,配置更新過程標識(一個或多個)當前被連接的監(jiān)視器的組。其中,如果更改是對于配置(例如,用戶要移除監(jiān)視器)、或對于在數據存儲214中定位最近使用的配置的相應的配置數據,那么這個是可使用的。然后,在步驟506,包括任何由用戶做出的更改的全部配置被存儲。
如以上提到的,除了一個或多個監(jiān)視器的組,存在多個能確定監(jiān)視器配置的因素。這些因素中的一個是電源狀態(tài),這能更改或替換通常被應用的設置。例如,刷新率、顏色深度、分辨率、背光亮度、對比度等都能被修改以保存電力。實際上,例如,當膝上型計算機以低電池電力運行但監(jiān)視器配置是滿電力的監(jiān)視器被連接時,膝上型計算機的內置監(jiān)視器可被自動地關閉。
另一個自動地修改監(jiān)視器配置的方法是通過臨時模式。例如,已知視頻播放在具有60赫茲刷新率時操作良好。這樣的播放的檢測對比例如當前的圖像可被用以更改模式直到情況更改。
監(jiān)視器廠商也具有定制設置,該定制設置通過對于瞬態(tài)監(jiān)視器管理器212等的調用被持續(xù)存儲/恢復。例如,基于電視的監(jiān)視器可請求在某些時刻某些區(qū)域在屏幕上被裁剪,并且那些區(qū)域在沒有其他情況中用戶交互的情況下被恢復。并且,諸如顏色空間糾正/對比系數的定制設置能結合監(jiān)視器配置所被保存。
示例邏輯圖6顯示了在一具體示例實現中瞬態(tài)監(jiān)視器管理器212的概述。如圖6表示的,一般存在兩個進入瞬態(tài)監(jiān)視器管理器212的入口點,包括當瞬態(tài)監(jiān)視器管理器212啟動時或當用戶上下文切換發(fā)生時在步驟600的一個。如果瞬態(tài)監(jiān)視器管理器212被啟動或存在用戶上下文切換,那么必須加載適當的用戶數據。為此,如步驟604所表示的,監(jiān)視器配置列表以及監(jiān)視器數組從存儲器中被加載并且二叉搜索樹被建立;連接是建立在監(jiān)視器配置列表和監(jiān)視器數組之間的。
第二入口點是當監(jiān)視器插入/拔出事件發(fā)生時,如在步驟604表示的。在兩個入口中,步驟606被執(zhí)行以確定和測試當前監(jiān)視器配置,并且更新監(jiān)視器配置列表。一般地,通過使用如以上描述的圖形接口/工具API調用或其他合適的方法,當前監(jiān)視器配置的每個監(jiān)視器的每個監(jiān)視器ID被獲取。然后,二叉搜索樹被用以搜索監(jiān)視器ID,如步驟608所表示的。
如步驟610所表示的,取決于是否存在對于任何監(jiān)視器ID的搜索失敗,新監(jiān)視器配置的確定將采用兩個不同分支里面的一個。此后,如以下描述的,一旦監(jiān)視器配置被確定和測試,監(jiān)視器配置列表被更新并且監(jiān)視器配置列表和監(jiān)視器數組之間的連接被更新。
如果某些監(jiān)視器ID或所有監(jiān)視器ID都沒有被找到,那么過程分出至步驟612,表示移動到在圖7中表示的下一步驟。相反地,如果所有的監(jiān)視器ID都被找到,那么在步驟610過程分出至步驟614、616和618,其中指向在每個與監(jiān)視器ID關聯(lián)的數組元素內的監(jiān)視器配置列表的指針被比較,并且在步驟616,那些由每個監(jiān)視器所被指向的監(jiān)視器配置列表條目被添加到監(jiān)視器配置列表條目的鏈表上。由于監(jiān)視器配置列表條目可包括在不同的電源方案下被記錄的監(jiān)視器配置,或如果新的監(jiān)視器是較大監(jiān)視器配置的子集,為了得到更好的匹配,監(jiān)視器配置列表條目可被過濾(步驟618)。為了實現這個,鏈表循環(huán)迭代器跳過那些鏈表節(jié)點,該鏈表節(jié)點指向在不同的電源方案或與當前的狀態(tài)不同的監(jiān)視器數量下記錄的監(jiān)視器配置列表條目。此時,找到最佳監(jiān)視器配置列表條目,如由步驟620表示的移動到圖8。
返回步驟610,如果存在一個或多個具有未被找到的監(jiān)視器ID的監(jiān)視器(步驟608和610,稱為“未知監(jiān)視器”),那么過程分出至圖7。此時,如果不是已知的(例如,如果整個EDID先前返回到管理器212),那么API/方法調用在步驟702被使用以獲取每個具有未被找到的監(jiān)視器ID的監(jiān)視器的型號。更具體地,對于那些在二叉搜索樹地搜索失敗地監(jiān)視器,另一(例如,線性的)搜索通過監(jiān)視器數組在步驟704被執(zhí)行以找到具有相同型號的監(jiān)視器組。
這個搜索如在步驟706估計的那樣失敗是可能的,然而如果是這樣的話,被標識的監(jiān)視器將形成在監(jiān)視器配置列表條目中的監(jiān)視器的子集。該組的數組元素與找到的數組元素一起通過二叉搜索樹以創(chuàng)建監(jiān)視器配置列表條目鏈表,如以已知的監(jiān)視器算法所實現的那樣。在這個例子中,當在步驟706找到型號時,指向與監(jiān)視器ID關聯(lián)的每個數組元素內的監(jiān)視器配置列表的指針被比較并且那些由每個監(jiān)視器指向的監(jiān)視器配置列表條目被在步驟708中添加到監(jiān)視器配置列表條目的鏈表。步驟710對于每個未知的監(jiān)視器重復。
由于監(jiān)視器配置列表條目可包括在不同的電源方案下被記錄的監(jiān)視器配置,或如果新的監(jiān)視器是較大監(jiān)視器配置的子集,則為了得到更好的匹配監(jiān)視器配置列表條目可被過濾(步驟714)。為了實現這個,鏈表循環(huán)迭代器跳過那些鏈表節(jié)點,該鏈表節(jié)點指向在不同的電源方案或與當前的狀態(tài)不同的監(jiān)視器數量下記錄的監(jiān)視器配置列表條目。
在這個被實現后,未知的監(jiān)視器被添加到監(jiān)視器數組中并且二叉搜索樹被重新平衡或重新建立。在這點上,未知的監(jiān)視器被知道,但是沒有指向監(jiān)視器配置列表的指針。一旦新的監(jiān)視器配置被設置好,在監(jiān)視器數組和監(jiān)視器配置列表之間的連接可被做出,如以上描述的。此時,找到最佳的監(jiān)視器配置列表條目,如步驟716表示的移動到圖8。
圖8的示例步驟可被執(zhí)行以從過濾的條目列表中找到在監(jiān)視器配置列表中的最佳條目。這個條目可具有和新的監(jiān)視器配置相同的監(jiān)視器,或它可包括其他監(jiān)視器。注意的是如果沒有監(jiān)視器配置列表條目存在,那么過程可前進以在未知的監(jiān)視器上循環(huán)迭代視頻模式,如以下描述的。
如果由于監(jiān)視器插入/拔出事件,瞬態(tài)監(jiān)視器管理器212正在執(zhí)行過程,實質上如在步驟802被重新評估的那樣,一方面避免更改現有監(jiān)視器的狀態(tài),這可通過尋找與事件之前的配置狀態(tài)相同的監(jiān)視器匹配來實現。在事件之前的配置的監(jiān)視器狀態(tài)被定位在監(jiān)視器配置列表的頭部(因為它是最近使用的配置)。在步驟804,在監(jiān)視器配置列表條目的列表上執(zhí)行搜索以找到包括新監(jiān)視器(如果是插入事件)以及現有監(jiān)視器和狀態(tài)的監(jiān)視器配置。如果存在多個匹配,那么使用最近的監(jiān)視器配置列表條目。如果由于監(jiān)視器插入/拔出事件,瞬態(tài)監(jiān)視器管理器212正在執(zhí)行過程,那么在步驟806具有新的配置的監(jiān)視器的最近的監(jiān)視器配置列表被選擇。
如果在步驟808沒有找到監(jiān)視器配置列表條目,那么,如果沒有通過監(jiān)視器的數量被過濾(步驟810),則用于監(jiān)視器配置列表條目的鏈列表的循環(huán)迭代器在步驟812被調整以不再使用監(jiān)視器的數量來過濾列表。再次通過返回步驟808在監(jiān)視器配置列表條目的列表上執(zhí)行搜索。
如果在步驟810,當沒有通過監(jiān)視器的數量過濾并且監(jiān)視器配置列表條目依舊沒有被找到時,不是所有的監(jiān)視器已經先前在相同配置中是可能的,例如,監(jiān)視器A和B已經一起在配置中,但是不與監(jiān)視器C組合。一解決方案是找到具有最多監(jiān)視器匹配的監(jiān)視器配置列表條目,如步驟812所表示的;在以上的示例中,解決方案找到具有監(jiān)視器A和B的監(jiān)視器配置列表條目。這沒有留給監(jiān)視器C已知的狀態(tài)(這在圖9中被解決)。
如通過步驟902在圖9中表示的,如果搜索監(jiān)視器配置列表條目導致監(jiān)視器和狀態(tài)的精確匹配,那么下一步驟918是通過前進到圖10針對視頻卡的能力測試該配置。然而,如果搜索不提供精確匹配,例如,由于額外的監(jiān)視器或監(jiān)視器不具有建立好的視頻狀態(tài),步驟902在測試監(jiān)視器配置之前分出至步驟904。
更具體地,在步驟904,如果存在監(jiān)視器配置列表條目中的不在新的配置中的監(jiān)視器,那么它們需要通過步驟906被移除。并且,如果存在不具有關聯(lián)的視頻狀態(tài)的監(jiān)視器,那么監(jiān)視器被通過步驟908和910詢問它的可用模式。如果在步驟912找到模式,那么最佳匹配需要被找到,這個在步驟914通過測試針對視頻設置的監(jiān)視器配置而被執(zhí)行。如果這些設置被接受,那么該監(jiān)視器配置可被使用。
在瞬態(tài)監(jiān)視器管理器212過程結束之前,監(jiān)視器配置被檢測。只是由于即使在監(jiān)視器配置列表內找到精確匹配,視頻卡也可能已經被關閉,并且先前有效的監(jiān)視器配置將不再與新的卡一起工作。并且可能搜索視頻模式失敗(步驟912),而沒有為監(jiān)視器設置狀態(tài)。圖10表示了示例測試步驟。
如果在步驟1002,任何監(jiān)視器不具有在測試之前在其上被設置的狀態(tài),或如果當針對視頻設置測試(步驟1016和1018)時監(jiān)視器配置失敗,那么可用視頻模式被循環(huán)迭代(步驟1004)。如果降低刷新率是可能的(如在步驟1006針對限制所估計的),那么在步驟1008第一嘗試降低刷新率并且通過前進到步驟1016針對視頻卡的能力測試。如果降低刷新率重復地失敗直到達到限度(例如,60赫茲),如果可能話,下一步驟降低監(jiān)視器的分辨率,如通過步驟1010和1012執(zhí)行的那樣。注意的是只要監(jiān)視器的分辨率被降低,那么刷新率可被增加并且視頻設置被再次測試,以嵌套循環(huán)的方式降低刷新率(按需)直到它的最小限度。如果最終的可用模式失敗,在步驟1014顯示顯示控制面板對話框。注意的是盡管未示出,一個或多個嘗試可被做出以在顯示顯示控制面板之前降低顏色深度。
當測試如圖10所表示的那樣被完成時,返回步驟622,步驟624被執(zhí)行以更新和使用監(jiān)視器配置列表。通過這種方式,現有的配置被應用,或一個新的配置被用于當前的監(jiān)視器組以及它們當前的狀態(tài)所被建立。
如從以上詳細描述中可看出,提供了當連接到一個或多個顯示機制時以處理多個可能的用戶情況的靈活方式簡化用戶體驗的系統(tǒng)和方法。通過當匹配時應用建立好的配置,或通過當不匹配時做出智能猜測,用戶通常在不需要用戶交互的情況下就能得到總體上理想的結果。
盡管本發(fā)明可以有各種修改和可供選擇的構造,其中說明的某些實施例已經在附圖中顯示并在以上被詳細描述。然而,應該理解的是本發(fā)明不被限制于公開的特定形式,相反,本發(fā)明涵蓋所有的在本發(fā)明的精神和范圍內的修改、可供選擇的構造、和等同物。
權利要求
1.在計算機系統(tǒng)中,一種方法包括接收包括至少一個顯示機制的配置已經被更改的指示;以及確定被更改的配置是否對應于具有在計算機系統(tǒng)上維護的配置數據的一個配置,如果是,則基于所述配置數據更改所述配置。
2.根據權利要求1所述的方法,其特征在于,所述被更改的配置不對應于具有配置數據的一個配置,并進一步包括,基于對應于在被更改的配置中的至少一個顯示機制的信息確定配置。
3.根據權利要求2所述的方法,其特征在于,進一步包括向顯示機制詢問能力信息。
4.根據權利要求3所述的方法,其特征在于,進一步包括基于當前安裝的視頻卡的能力信息測試設置。
5.根據權利要求4所述的方法,其特征在于,所述測試不成功,并進一步包括循環(huán)迭代以測試不同的設置。
6.根據權利要求1所述的方法,其特征在于,進一步包括向至少一個顯示機制詢問標識符。
7.根據權利要求1所述的方法,其特征在于,所述接收指示包括接收對應于正在被連接的或正在被斷開連接的顯示機制的事件。
8.根據權利要求1所述的方法,其特征在于,所述基于配置數據更改配置包括把一組視頻相關的設置應用到至少一個顯示機制,所述組包括以下設置中的至少一個設置分辨率設置、刷新率設置、顏色深度設置、方位設置、亮度設置、對比度設置、視頻頭狀態(tài)設置、和/或每英寸點數設置。
9.根據權利要求1所述的方法,其特征在于,進一步包括持續(xù)存儲對于配置數據的更改。
10.至少一個計算機可讀介質包括計算機可執(zhí)行指令,當執(zhí)行所述計算機可執(zhí)行指令時可執(zhí)行權利要求1所述的方法。
11.至少一個計算機可讀介質包括計算機可執(zhí)行指令,當執(zhí)行所述計算機可執(zhí)行指令時執(zhí)行以下步驟,包括持續(xù)存儲包括一個包含至少一個顯示機制的組的視頻相關的設置的顯示機制配置數據,包括在該組作為該組中的機制被斷開連接的結果而被更改之后維護所述顯示機制配置數據;確定該組何時作為顯示機制被重新連接的結果而實質上被恢復;以及恢復該組,包括基于持續(xù)存儲的顯示機制配置數據至少對重新連接的顯示機制應用視頻相關的設置。
12.根據權利要求11所述的計算機可讀介質,其特征在于,所述持續(xù)存儲顯示機制配置數據包括把信息寫到持續(xù)存儲中,所述信息包括至一組顯示機制設置中的至少一個設置,所述組包括分辨率設置、刷新率設置、顏色深度設置、方位設置、亮度設置、對比度設置、視頻頭狀態(tài)設置、和/或每英寸點數設置。
13.根據權利要求11所述的計算機可讀介質,其特征在于,所述持續(xù)存儲顯示機制配置數據進一步包括把幾何信息寫入數據存儲中。
14.根據權利要求11所述的計算機可讀介質,其特征在于,進一步包括使用當前安裝的視頻卡測試用于重新連接的顯示機制的視頻相關的設置,并且如果測試不成功,則循環(huán)迭代以測試不同的視頻相關的設置。
15.根據權利要求11所述的計算機可讀介質,其特征在于,所述確定該組何時被實質地恢復包括評估當前電源狀態(tài)。
16.根據權利要求11所述的計算機可讀介質,其特征在于,進一步包括接收對應于用戶對于顯示機制配置數據更改的信息,并進一步包括持續(xù)存儲所述更改。
17.一計算機系統(tǒng),子系統(tǒng)包括顯示機制管理器組件,用于接收關于對于當前顯示機制配置的更改的信息;包含顯示機制配置數據的數據存儲;以及其中,當下述情況時,所述顯示機制管理器組件使用更新的顯示機制配置數據更新所述數據存儲a)對應于顯示機制配置數據的信息被手動地更改;b)通過斷開顯示機制對當前配置做出更改;以及c)通過連接顯示機制對當前配置做出更改。
18.根據權利要求17所述的子系統(tǒng),其特征在于,所述對于當前配置的更改由連接顯示機制或斷開顯示機制的連接所做出,其中所述顯示機制管理器組件標識每個出現在更改的顯示機制配置中的顯示機制。
19.根據權利要求24所述的子系統(tǒng),其特征在于,所述管理器組件搜索對應于更改的當前配置的配置數據,并且如果被找到,則當在搜索中定位時基于配置數據應用設置。
20.根據權利要求25所述的子系統(tǒng),其特征在于,所述搜索不成功,并且其中所述顯示機制基于類似的配置數據或基于對應于所述顯示機制的能力信息應用設置。
全文摘要
描述了用于在監(jiān)視器的連接后動態(tài)地和智能地配置和/或在斷開連接后重配置計算機系統(tǒng)的視頻相關的設置的方法和系統(tǒng)。監(jiān)視器配置包括一個或多個顯示機制、它們的視頻設置、相對位置,以及可包括電源方案數據。當監(jiān)視器被插入計算機系統(tǒng)或從計算機系統(tǒng)中拔出時,監(jiān)視器管理器組件被通知并基于諸如監(jiān)視器標識符確定當前的配置。當前的配置被搜索,針對持續(xù)存儲的監(jiān)視器配置尋找匹配。如果先前的監(jiān)視器配置數據被找到,則應用先前的監(jiān)視器配置。如果沒有精確匹配,那么基于持續(xù)存儲的類似配置數據,或通過詢問能力以及按需循環(huán)迭代以找到視頻卡和監(jiān)視器能使用的視頻模式來構建配置數據。
文檔編號G06F3/14GK1801078SQ20051013613
公開日2006年7月12日 申請日期2005年12月16日 優(yōu)先權日2004年12月17日
發(fā)明者A·J·弗爾勒, 小J·R·胡谷森, K·P·泊爾森, K·A·杰塞爾, M·P·羅頓, M·彌利魯德, R·H·懷恩 申請人:微軟公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
浠水县| 博兴县| 涟水县| 崇左市| 肇东市| 台中市| 新田县| 泰和县| 乌恰县| 广丰县| 五指山市| 来宾市| 沅江市| 隆林| 田东县| 竹北市| 松滋市| 邻水| 汉川市| 禹州市| 塔河县| 云梦县| 南澳县| 麟游县| 塘沽区| 子长县| 大名县| 庆阳市| 和顺县| 东丰县| 时尚| 石河子市| 常熟市| 兰州市| 元江| 昌邑市| 金坛市| 襄垣县| 延寿县| 佳木斯市| 九龙坡区|