関数win_readSecondBlock マニュアル

(The documentation of function win_readSecondBlock)

Last Update: 2023/3/23


◆機能・用途(Purpose)

WINファイルから秒ブロックを読み込む。
Read a second block from a WIN file.


◆形式(Format)

#include <win/readwrite.h>
inline struct win_secondBlock win_readSecondBlock
(FILE ∗fp,unsigned long size)


◆引数(Arguments)

fp 読み込むWINファイルのファイルポインタ。
The filr pointer for the input WIN file.
size 読み込む秒ブロックのサイズ(バイト数)。
The size (the number of bytes) of the second block to read.


◆戻り値(Return value)

読み込んだ秒ブロックを代入した構造体。各メンバの値は以下のようになる。 なお、引数size<6であればエラー終了する。
A structure that represents the second block read, composed of the following members. If the value of argument size is less than 6, the program finishes as an error.

メンバ
Member

Value
size 引数sizeの値。
The value of argument size.
time 秒ブロックの時刻(最初の6バイト)。
The time of the second block obtained from the first 6 bytes.
channelNumber 秒ブロック中のチャンネル数。 引数sizeの値が6(空の秒ブロック)の場合は0。
The number of channels in the second block. This value is zero if the value of argument size is 6, which means that the channel block is empty.
channelBlock 読み込んだ各チャンネルのチャンネルブロックから成る配列。 引数sizeの値が6(空の秒ブロック)の場合はNULL。
An array composed of the channel blocks for all channels. The value is NULL if the value of argument size is 6, which means that the channel block is empty.

なお、いずれかのチャンネルブロックにおいて 1サンプルあたりのバイト数が0-4以外(エラー)となった場合、 その秒ブロック全体を空の秒ブロック (size=6, channelNumber=0, channelBlock=NULL) として扱う。
If the number of bytes per each data sample is not 0-4 (an error) for either of the channel tables, the entire second block is treated as an empty second block (i.e., size=6, channelNumber=0, channelBlock=NULL).


◆使用例(Example)

FILE ∗fp=fopen("data.win","rb");
fread(size_char,4,1,fp);
long size=win_binary2long(size_char,4);
struct win_secondBlock data=win_readSecondBlock(fp,size);
fclose(fp);

この例ではファイルdata.winから最初の1秒分のデータを読み込んで 構造体dataに読み込む。
In this example, the first 1-s data is read from a file data.win into a structure data.