forward










FatFs - f_forward





f_forward
ファイルからデータを読でサナケoし、ト剞Mストリームにナでコ接転ト凾オます。

FRESULT f_forward (
FIL* FileObject, /* ファイル・オブジェクトト\ト凖ウト厠 */
UINT (*Func)(const BYTE*,UINT), /* データ転ト刳ヨ" */
UINT ByteToFwd, /* 転ト凾キるバイト" */
UINT* ByteFwd /* 転ト凾ナbト凾スバイト" */
);




闇p"

FileObject
ファイル・オブジェクトト\ト凖ウト厠へのポインタを指ナで≠オます。
Func
データを渡すζーザナで°`関"へのポインタを指ナで≠オます。ての関"の仕lはサンプルを参ナケトしてくだでbテウ。
ByteToRead
転ト凾キるバイト"(0〜UINTのトナト吝ナM)を指ナで≠オます。
ByteRead
柴トロに転ト凾ナbト凾スバイト"を格"[する変"を指すポインタを指ナで≠オます。






゚でナM

FR_OK (0)
税でケナケIト。
FR_DENIED
"ナ読でサトナ宸ナサモードで開づウたファイルから読でサトナ宸トでрトした。
FR_DISK_ERR
ディスク・エラーにてる失"s。
FR_INT_ERR
不税bネFATト\ト凖ウまたは篤"エラーにてる失"s。
FR_NOT_READY
メディアがセットでbト凾トづウなづウなど、物揀hライブが動ト不"\ナケテウト雙。
FR_INVALID_OBJECT

ナで塲bネファイル・オブジェクト。





解斉
ファイルのデータをバッファに読でサナケoでbクにト剞Mストリームにナでコ接転ト凾オます。アプリケーショント卩рナデータ・バッファを必vてしなづウので、メモリのナ堝р轤ト凾ス環境でLナ塲bナす。リード/ライト・ポインタは転ト凾ナbト凾スバイト"だでサ進でサます。指ナで≠ナbト凾スバイト"の転ト卩てにファイルのナケIナ[にナBしたナケト卞やト剞Mストリームがビジーになったナケト卞、*ByteFwdはByteToFwdてで≠トナケナケでbュなで≠ワす。




ト厥嫁崘ケ頁
_USE_FORWARD == 1で、且つ_FS_TINY == 1のてきに使p可"\です。




使p瘁iオーディオトト税宦j

/*-----------------------------------------------------------------------*/
/* f_forward関"からナ堝ばて凾驛fータト剞M関"の */
/*-----------------------------------------------------------------------*/

UINT out_stream ( /*
゚でナM: 転ト凾ナbト凾スバイト"またはストリームのナケテウト雙 */
const BYTE *p, /* 転ト凾キるデータを指すポインタ */
UINT btf /* >0: 転ト凾トsで(バイト"). 0: ストリームのナケテウト雙をナごべる */
)
{
UINT cnt = 0;


if (btf == 0) { /* センスv求 */
/* ストリームのナケテウト雙を返す (0: ビジー, 1: η噬fィ) */
/* 案卩6、η噬fィを返したら、ト卞く転ト况求でナケュなくてて1バイトは */
/* 転ト凾ナbト凾ネづウて f_forward関"は FR_RW_ERROR てなる。 */
if (FIFO_READY) cnt = 1;
}
else { /* 転ト况求 */
do { /* ト儡てのバイトを転ト凾キるか、ストリームがビジーになるまでナ哽で&ヤす */
FIFO_PORT = *p++;
cnt++;
} while (cnt < btf && FIFO_READY);
}

return cnt;
}


/*-----------------------------------------------------------------------*/
/* f_forward関"の使p */
/*-----------------------------------------------------------------------*/

FRESULT play_file (
char *fn /* トト税宸キるオーディオ・ファイル
ナコを指すポインタ */
)
{
FRESULT rc;
FIL fil;
UINT dmy;

/* ファイルを読でサナケoしモードで開く */
rc = f_open(&fil, fn, FA_READ);
if (rc) return rc;

/* ト儡てのデータが転ト凾ナbト凾驍ゥエラーが"ュ税宸キるまでト卞でサる */
while (rc == FR_OK && fil.fptr < fil.fsize) {

/* で≠ゥのナケ... */

/* ナで♀ナ專Iまたはv求に嫁宸ナ宸トデータをストリームにト卩ケoする */
rc = f_forward(&fil, out_stream, 1000, &dmy);
}

/* ファイルを閉で宸ト
゚る */
f_close(&fil);
return rc;
}





参ナケト
f_open, fgets, f_write, f_close, FIL



゚る




Wyszukiwarka

Podobne podstrony:
IP FORWARD MIB
M13 Spindle Forward and Coolant On
forward engineering relational?tabasesSC0441E
Forwarder1
ForwardRequestHelper
Kool Savas?at ?st Forward & Scope Ihr mテシsst noch テシben!!!
Forwarder
ip forward c (3)
forward iterator tag
forwarditerator
forward
LOCATION FORWARD
forward iterator
M03 Spindle Forward
ip forward c (2)

wiト冂ej podobnych podstron