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 MIBM13 Spindle Forward and Coolant Onforward engineering relational?tabasesSC0441EForwarder1ForwardRequestHelperKool Savas?at ?st Forward & Scope Ihr mテシsst noch テシben!!!Forwarderip forward c (3)forward iterator tagforwarditeratorforwardLOCATION FORWARDforward iteratorM03 Spindle Forwardip forward c (2)wiト冂ej podobnych podstron