BeOS API
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
BeOS API亦被Be公司稱作Be API after Be Inc.,是在BeOS上編寫圖形應用程式所需要的應用程式介面,並由此延伸出了Magnussoft ZETA。
該API被分為數個「包」,「包」中包含類似的類,並容忍一些與包含支援代碼的庫的聯絡。
該API與C++基本相同,但包含一些第三方繫結的包含大部分Python的類,以及主要在儲存包中使用到的一個小的Perl庫的子集。
包
程式包
程式包包含用於執行BeOS程式的基本類,以及對全域剪下板的支援,程式內部及系統內部通訊和計時器,名冊和其他支持圖形應用程式的功能。程式包所包含的類亦被libbe.so支援。
儲存包
儲存包提供各種操控檔案的方法,從建立、管理可以打開或儲存應用程式面板的符號連結到修改Be檔案系統的屬性。儲存包的類基本上包含在libtracker.so中,所以Tracker即為BeOS原生的檔案管理器。
介面包
介面包提供數量可觀的控制項可供用於構建應用程式,從主窗口類到對話方塊,以及控制字型的處理和彩現。libbe.so包括了介面包的大部分內容。
核心包
核心包提供執行緒,訊號標以及訪問系統資訊的能力,亦包含於libbe.so中。
支援包
支援包提供不易被分配在其他包中的先進功能,例如輔助主記憶體分配以及對列表的支援。
網路包
網路包提供基本的(在BeOS R5及更低版本中)或基本完整的(在BeOS Dano及更高版本中)對伯克利通訊端及BIND的支援,基於Nettle C++網路庫的「原生」功能。libnet.so為R5提供伯克利通訊端的支援,後來基於系統命名法被更換為更為普遍的libsocket.so及libbind.so;R5上的libnetapi.so在後來被libbnetapi替換以提供修改版的Nettle C++網路庫。
郵件包
郵件包提供原生的電子郵件格式和用來收取、傳送郵件的標準協定(POP3和SMTP)。郵件包包含在libmail.so中。
翻譯包
翻譯包提供一種將圖片和純文字通過以外掛程式來處理,因而使應用程式支援一種即時的原生方式來儲存、讀取外掛程式所支援的格式。該API同樣支援通過庫進行的影片、音訊翻譯,儘管這種方式在BeOS R4中被廢棄並隨後被停用。翻譯包通過libtranslation.so提供支援。
媒體庫
媒體庫基於可選的外掛程式來提供音訊及視訊輸入輸出的抽象層,以及處理混音,影片和音訊的格式轉換和其他相關功能。媒體包通過libmedia.so提供支援。
MIDI包
MIDI包提供MIDI硬體的輸入輸出的抽取。在BeOS R5中包含一個由Headspace提供的軟體合成器。libmidi.so提供了BeOS R3時代的舊的MIDI API,libmidi2.so為BeOS R4及更高版本提供API。
遊戲包
遊戲包提供適合電腦遊戲輸出的音訊格式,以及通過影片疊加來執行全螢幕應用程式。
OpenGL包提供完整的OpenGL執行能力,以及使其在原生程式中生效的支援類。在BeOS R5中支援OpenGL 1.1,儘管該包是硬體中立的,該版本可以使用軟體加速。事實上,這個方式甚至勝過在競爭平台上使用硬體加速方式的效果。基於效率底下的設計,那些競爭平台無法傳遞類似的潛在的、抑或是頻寬上的表現。[1].
裝置包
裝置包提供從平台分離的通過直接訪問序列埠、並列埠,以及BeBox中並不知名的GeekPort。
非BeOS實現方式
大部分的Be API在Haiku這個開源BeOS替代品中被重新實現,以趕上自Be公司被Palm收購後多年的差距,為郵件包增加了對IMAP的支援,加密連接和多帳戶支援,並且通過Mesa 3D實現了OpenGL 1.5的支援。
替代的系統嘗試通過Be API得到一些靈感(例如Syllable Desktop),但並非完全移植。
Gobe Software將Be API移植到微軟Windows作業系統,後期通過GTK+移植到Linux作業系統,以移植他們先前為BeOS開發的Gobe Productive辦公套件。
文件
所有的API在BeOS R3階段被記錄在兩本紙質書籍中——Be Developer Guide和Be Advanced Topics,由奧萊理出版公司在Be公司的許可下於1997年八月出版發行。此外,電子版在亦被發行和更新,儘管略顯粗燥。在2007年,Be公司智慧財產權的擁有者愛可信公司以創作共享協定釋出了這些文件。[2].
|