• 沒有找到結果。

三、 系統設計分析

3.4 程式移植

目前 PC 端有播放器可觀看閱讀多媒體講呈現檔而且功能完備,且 PDA 端也 就是 Windows CE 4.2(WinCE4.2) 錯誤! 找不到參照來源。平台也已經有播放器 可以觀看講解檔,本研究利用 PDA 端播放器原始碼做程式移植至 Windows Embedded CE 6.0(WinCE6.0)平台。

在程式移植前會先分析適合的開發工具及環境,了解 PC 和 PDA 端播放器各 別所使用的開發工具及程式庫後,選擇適合 Windows Embedded CE 6.0 的開發工 具與環境,以下分析之。

3.4.1開發工具及平台

Windows 平台運作於微軟公司的 Windows XP SP2 的作業系統中,開發工具 為 Borland 公司出的 C++ Builder 6 [15],compiler 為 Borland C++ Builder

compiler,開發語言採用 C++,而程式庫及程式類別主要使用 Borland 公司的 VCL 錯誤! 找不到參照來源。,Windows 平台上畫面的解析度為 720x540。

PDA 端播放器運作於微軟公司的 Windows CE 4.2 的作業系統中,開發工具 為微軟公司的 Visual Studio 2005,主要使用微軟公司的 MFC 及 ATL 兩類程式 庫,裝置為 Pocket PC 2003,顯示畫面解析度較小為 240x320。

基於 Windows CE 4.2 開發環境,由於 Windows Embedded CE 6.0 平台端的 多媒體講解播放器移植目標裝置為微軟公司的 Windows Embedded CE 6.0 模擬 器,而此模擬器的建構環境是嵌入在 Visual Studio 2005,所以開發工具也是 採用微軟公司的 Visual Studio 2005,而程式庫會沿用 Windows CE 4.2 所用的 MFC 與 ATL 兩類別,Windows Embedded CE 6.0 模擬器的畫面解析度為 640x480。

在做程式移植前先分析了解 PC 端與 PDA 端的作業系統、開發工具及程式庫、

畫面解析度。以下表格 7 分析之:

表格 7 : PC 與 CE 端播放器開發工具及平台

PC 端播放器 PDA 端播放器 Windows Embedded CE 6.0 端播放器 Platform OS Windows XP SP2 Windows CE 4.2 Windows Embedded

CE 6.0 Development

Tool/Library BCB6/VCL Visual Studio 2005 (VS2005/C++/MFC/ATL)

Visual Studio 2005 (VS2005/C++/MFC/ATL) Scene

Resolution

720x540 240x320 640x480

3.4.2 程式移植對應

分析 PC 端、Windows CE 4.2 端與 Windows Embedded CE 6.0 端所使用的開 發工具及程式庫後,接著對播放器程式做分析,以利程式在移植時可以重複使 用。在程式移植時,可經由下面步驟或方式:

1. 了解程式函式(function)、類別(class)的用法及功能。

2. 檢查在 Windows Embedded CE 6.0 是否可以沿用。

3. 找出替代的類別或函式。

4. 利用文字編輯器中的搜尋與取代工具。

理解 PC 端與 Windows CE 4.2 端播放器的程式碼後,研究出相對應方式:

1. General :

PC 端與 Windows CE 4.2 端播放器程式碼中使用標準 C/C++元件與語法,

則 Windows Embedded CE 6.0 端播放器程式碼可以直接使用,不用替換 或變更。

2. String Related:

PC 端播放器程式碼中使用 VCL 程式庫中的 AnsiString 及 WideString 兩個字串類別,而 Windows CE 4.2 端播放器程式碼中替換為 MFC 程式 庫中的 CString 字串類別,由於 Windows Embedded CE 6.0 端也使用 MFC 程式庫,所以字串類別不用做修改。

3. Memory Stream Related:

記憶體串流使用功能部分,PC 端播放器程式碼中使用 VCL 程式庫中的 TMemory 類別於記憶體中以串流的方式的運作資料,而 Windows CE 4.2 端播放器程式碼中替換為 IStream 介面, Windows Embedded CE 6.0 端沿用 Windows CE 4.2 端的程式,不用做修改。

4. XML DOM model:

在處理 XML 文件物件模式(DOM)的元件中,PC 端播放器使用 VCL 程式庫 中的_di_IXMLDoc 及_di_IXMLNode 兩個類別介面,用來解析多媒體講解 呈現檔中使用 XML 描述的資料,而 Windows CE 4.2 端播放器程式碼中 替換為 IXMLDOMDoc *及 IXMLDOMNode *類別介面,做解析 XML 檔案的動 作, Windows Embedded CE 6.0 端沿用 Windows CE 4.2 端的程式,不 用做修改。

5. Internet Related:

在網際網路連線部分,PC 端播放器使用 VCL 程式庫中的 TIdHTTP 及 TIdSSLIOHandlerSocket 兩程式類別,用來連線位於網際網路的伺服 器,有連線至部落格及 DRM 伺服器,而 Windows CE 4.2 端播放器程式 碼中為 MFC 程式庫中的 CInternetSession 及 CHttpConnection 兩個程 式類別,由於 Windows Embedded CE 6.0 端也使用 MFC 程式庫,所以網 際網路連線類別不用做修改。。

6. Drawing Related:

在繪圖方面,畫線、畫幾何圖形(矩形、楕圓形)、畫文字等塗鴉動作,

Windows Embedded CE 6.0 端與 PC 端和 Windows CE 4.2 端播放器的程 式碼可以通用,故保留,不做修改。但是在透明色混合時,PC 端使用 GDI+程式庫中 AlphaBlend 函式但 Windows CE 4.2 平台中只有 GDI 程式 庫,也就是 GDI+的前身可以使用,所以利用 Bit And 的方式將前景及 背景顏色混合,模擬出透明色的效果,Windows Embedded CE 6.0 端沿 用 Windows CE 4.2 端的程式,不用做修改。

7. Image Related:

在圖形方面,PC 端播放器使用 GDI+程式庫中的 Bitmap 及 Image 兩個程 式類別來載入及呈現圖片,在 Windows CE 4.2 平台由於只有較精簡的

GDI 程式庫,不支援 Bitmap 及 Image 兩個程式類別,而使用開放式原 始碼的 CxImage 程式庫,其支援較多圖形格式,且有透明色處理的函 式,達到相同載入及呈現圖片的功能,Windows Embedded CE 6.0 端則 替換使用針對 Windows Embedded CE 6.0 所建製的 CxImage 程式庫做圖 檔的呈現。

8. Audio/Video Related:

在影音播放方面,PC 端播放器使用一個自製的媒體播放器程式類別來 播放影像及聲音,由於其類別會使用到 VFW(Video For Windows)程式 庫,此 VFW 程式庫在 Windows CE 4.2 與 Windows Embedded CE 6.0 平 台上不支援,而 Windows CE 4.2 平台使用 Windows Media Control for Pocket IE 來替換,但是在 Windows Embedded CE 6.0 平台上不支援,

所以本研究採用 Windows API 中的 DirectShow 達到播放影像及聲音的 功能。

以下表格 8 中列出 PC 端播放器程式移植到 Windows Embedded CE 6.0 端對 應的項目:

表格 8 : 程式移植分析比較表

Development Tool Items

PC 端 BCB6(VCL)

Windows Embedded CE 6.0 端 VS2005/C++(MFC/ATL) General Standard C/C++ Keep

String Related AnsiString

WideString CString Memory Stream Related TMemoryStream IStream

XML DOM model _di_IXMLDoc IXMLDOMDoc * _di_IXMLNode IXMLDOMNode * Internet Related TIdHTTP

TIdSSLIOHandlerSocket

CInternetSession CHttpConnection

Drawing Related (GDI+)

Draw Line Keep Draw Geometry Keep Draw Text Keep

Alpha Channel Emulation (Bit And) Image Related

(GDI+)

Bitmap Image

CxImage class (from open source by

Davide Pizzolato ) Audio/Video Related Customized Media

Player

DirectShow

相關文件