English
PROGRAMMER'S GUIDE圧縮伸張ライブラリ
戻る進む
圧縮伸張ライブラリ/2.リファレンス

2.2 関数一覧

 次の表に、伸張ライブラリの関数一覧を示します。

表2.3 データ伸張ライブラリの関数一覧
機能
関数名
番号
ランレングス伸張
CMP_DecRunlen
1
ランレングス伸張/BYTE単位
CMP_DecRunlenByte
1.1
ランレングス伸張/WORD単位
CMP_DecRunlenWord
1.2
ランレングス伸張/DWORD単位
CMP_DecRunlenDword
1.3

2.3 関数仕様




Title

関数仕様

Function

ランレングス伸張

Function name

CMP_DecRunlen

No

1

 書 式
Sint32 CMP_DecRunlen(void *in, void **out, Sint32 size)
 引 数
in   (入力)
:圧縮データ入力バッファポインタ。
out    (入力)
:伸張データ出力バッファポインタのアドレス。
      (出力)
:伸張データ出力最後尾ポインタ。
bufsize(入力)
:出力バッファサイズ[BYTE]。
 戻り値
処理結果
CMP_DEC_OK        ( 0)
:正常終了。入力データを最後まで伸張しました。
CMP_DEC_STOP      ( 1)
:伸張処理中断。出力バッファサイズ分を伸張しました。
CMP_DEC_ERR       (-1)
:異常終了。入力データが異常です。
CMP_DEC_ERR_H_ALGO(-2)
:異常終了。未対応アルゴリズムです。
CMP_DEC_ERR_H_UNIT(-3)
:異常終了。未対応処理単位です。
 機 能
圧縮データを伸張します。
 本システムのランレングス圧縮ツール CMPRUN.EXE による圧縮データを処理します。
この関数は、入力データのヘッダを解釈して圧縮パラメータに適合する伸張関数を起動します。

in から圧縮データを読み込みます。
*out に伸張したデータを書き込みます。*out は、1バイト書き込むごとにポストインクリメントします。
ユーザは、起動前に設定した *out の値と、起動後の *outの値の差から、伸張したデータのサイズを知ることができます。
伸張データが bufsze [byte] を超える場合は、そこで処理を中断します。中断した場合でも、出力バッファには、バッファサイズ分の正しい伸張データが書き込まれています。

 注 意
 入力バッファ、出力バッファ共、ユーザが確保します。各バッファの先頭アドレスは、4バイト境界の先頭アドレスに合っている必要があります。出力バッファは伸張データを得るのに十分なサイズにし、処理単位バイト数の整数倍である必要があります。
 備 考
図2.1 伸張関数の引数の説明
         In(入力)                                  
         ↓                                       
       ─┬─┬─┬─┬─┬─ ─ ─ ─┬─┬─┬─┬──                
入力バッファ  │■│■│■│■│・・・・・・・│■│■│■│                  
       ─┴─┴─┴─┴─┴─ ─ ─ ─┴─┴─┴─┴──                
                                                 
        │←─────────────bufsize───────────────→│  
       ─┬─┬─┬─┬─┬─ ─ ─ ─┬─┬─┬─┬─┬─┬─┬───┬─┬─┬─┬─ 
出力バッファ  │□│□│□│□│・・・・・・・│□│□│□│□│□│ │・・・│ │ │ │  
       ─┴─┴─┴─┴─┴─ ─ ─ ─┴─┴─┴─┴─┴─┴─┴───┴─┴─┴─┴─ 
         ↑                         ↑             
         *out(入力)                  out(出力)       



Title

関数仕様

Function

ランレングス伸張/BYTE単位

Function name

CMP_DecRunlenByte

No

1.1

 書 式
Sint32 CMP_DecRunlenByte(void *in, void **out, Sint32 size)
 引 数
in (入力)  
:圧縮データ入力バッファポインタ。
out (入力)  
:伸張データ出力バッファポインタのアドレス。
  (出力)  
:伸張データ出力最後尾ポインタ。
bufsize(入力)
:出力バッファサイズ[BYTE]。
 戻り値
処理結果
CMP_DEC_OK( 0)        
:正常終了。入力データを最後まで伸張しました。
CMP_DEC_STOP( 1)      
:伸張処理中断。出力バッファサイズ分を伸張しました。
CMP_DEC_ERR(-1)       
:異常終了。入力データが異常です。
CMP_DEC_ERR_H_ALGO(-2)
:異常終了。未対応アルゴリズムです。
CMP_DEC_ERR_H_UNIT(-3)
:異常終了。未対応処理単位です。
 機 能
圧縮データを伸張します。
ランレングス、処理単位 BYTE で圧縮されたデータを処理します。
in から圧縮データを読み込みます。
*out に伸張したデータを書き込みます。 *outは、1バイト書き込むごとにポストインクリメントします。ユーザは、起動前に設定した*outの値と、起動後の*outの値の差から、伸張したデータのサイズを知ることができます。
伸張データが bufsze [byte] を超える場合は、そこで処理を中断します。中断した場合でも、出力バッファには、バッファサイズ分の正しい伸張データが書き込まれています。
 注 意
入力バッファ、出力バッファ共、ユーザが確保します。各バッファの先頭アドレスは、4バイト境界の先頭アドレスに合っている必要があります。
出力バッファは伸張データを得るのに十分なサイズにし、処理単位バイト数の整数倍である必要があります。
 備 考
関数インタフェースは、CMP_DecRunlen()と同じです。図2.1を参照してください。



Title

関数仕様

Function

ランレングス伸張/WORD単位

Function name

CMP_DecRunlenWord

No

1.2

 書 式
Sint32 CMP_DecRunlenWord(void *in, void **out, Sint32 size)
 引 数
in     (入力)
:圧縮データ入力バッファポインタ。
out    (入力)
:伸張データ出力バッファポインタのアドレス。
       (出力)
:伸張データ出力最後尾ポインタ。
bufsize(入力)
:出力バッファサイズ[BYTE]。
 戻り値
処理結果
CMP_DEC_OK( 0)        
:正常終了。入力データを最後まで伸張しました。
CMP_DEC_STOP( 1)      
:伸張処理中断。出力バッファサイズ分を伸張しました。
CMP_DEC_ERR(-1)       
:異常終了。入力データが異常です。
CMP_DEC_ERR_H_ALGO(-2)
:異常終了。未対応アルゴリズムです。
CMP_DEC_ERR_H_UNIT(-3)
:異常終了。未対応処理単位です。
 機 能
圧縮データを伸張します。
ランレングス、処理単位 WORD で圧縮されたデータを処理します。
in から圧縮データを読み込みます。
*out に伸張したデータを書き込みます。*out は、1バイト書き込むごとにポストインクリメントします。
ユーザは、起動前に設定した *out の値と、起動後の *out の値の差から、伸張したデータのサイズを知ることができます。
伸張データが bufsze [byte] を超える場合は、そこで処理を中断します。
中断した場合でも、出力バッファには、バッファサイズ分の正しい伸張データが書き込まれています。
 注 意
入力バッファ、出力バッファ共に、ユーザが確保します。
各バッファの先頭アドレスは、4バイト境界の先頭アドレスに合っている必要があります。
出力バッファは伸張データを得るのに十分なサイズにし、処理単位バイト数の整数倍である必要があります。
 備 考
関数インタフェースは、CMP_DecRunlen()と同じです。図2.1を参照してください。



Title

関数仕様

Function

ランレングス伸張/DWORD単位

Function name

CMP_DecRunlenDword

No

1.3

 書 式
Sint32 CMP_DecRunlenDword(void *in, void **out, Sint32 size)
 引 数
in     (入力):圧縮データ入力バッファポインタ。
out    (入力):伸張データ出力バッファポインタのアドレス。
       (出力):伸張データ出力最後尾ポインタ。
bufsize(入力):出力バッファサイズ[BYTE]。
 戻り値(処理結果)
CMP_DEC_OK( 0)        :正常終了。入力データを最後まで伸張しました。
CMP_DEC_STOP( 1)      :伸張処理中断。出力バッファサイズ分を伸張しました。
CMP_DEC_ERR(-1)       :異常終了。入力データが異常です。
CMP_DEC_ERR_H_ALGO(-2):異常終了。未対応アルゴリズムです。
CMP_DEC_ERR_H_UNIT(-3):異常終了。未対応処理単位です。
 機 能
圧縮データを伸張します。
ランレングス、処理単位 DWORD で圧縮されたデータを処理します。
in から圧縮データを読み込みます。
*out に伸張したデータを書き込みます。*out は、1バイト書き込むごとにポストインクリメントします。ユーザは、起動前に設定した *out の値と、起動後の *out の値の差から、伸張したデータのサイズを知ることができます。
伸張データが bufsze [byte] を超える場合は、そこで処理を中断します。中断した場合でも、出力バッファには、バッファサイズ分の正しい伸張データが書き込まれています。
 注 意
入力バッファ、出力バッファ共に、ユーザが確保します。各バッファの先頭アドレスは、4バイト境界の先頭アドレスに合っている必要があります。
出力バッファは伸張データを得るのに十分なサイズにし、処理単位バイト数の整数倍である必要があります。
 備 考
関数インタフェースは、CMP_DecRunlen()と同じです。図2.1を参照してください。

戻る進む
PROGRAMMER'S GUIDE圧縮伸張ライブラリ
Copyright SEGA ENTERPRISES, LTD., 1997