X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/5366852335044c1e68a5c32548d3051cc943552f..7b78a5a287827db9e9b16286f3604aef69b37c5c:/fatfs/doc/ja/forward.html diff --git a/fatfs/doc/ja/forward.html b/fatfs/doc/ja/forward.html index ffb2e60..e9212ce 100644 --- a/fatfs/doc/ja/forward.html +++ b/fatfs/doc/ja/forward.html @@ -1,7 +1,7 @@ - + @@ -13,34 +13,34 @@

f_forward

-

ƒtƒ@ƒCƒ‹‚©‚çƒf[ƒ^‚ð“ǂݏo‚µA‘—MƒXƒgƒŠ[ƒ€‚É’¼Ú“]‘—‚µ‚Ü‚·B

+

ファイルからデータを読み出し、送信ストリームに直接転送します。

 FRESULT f_forward (
-  FIL* fp,                         /* [IN] ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘Ì */
-  UINT (*func)(const BYTE*,UINT),  /* [IN] ƒf[ƒ^“]‘—ŠÖ” */
-  UINT btf,                        /* [IN] “]‘—‚·‚éƒoƒCƒg” */
-  UINT* bf                         /* [OUT] “]‘—‚³‚ꂽƒoƒCƒg” */
+  FIL* fp,                         /* [IN] ファイル オブジェクト構造体 */
+  UINT (*func)(const BYTE*,UINT),  /* [IN] データ転送関数 */
+  UINT btf,                        /* [IN] 転送するバイト数 */
+  UINT* bf                         /* [OUT] 転送されたバイト数 */
 );
 
-

ˆø”

+

引数

fp
-
ƒtƒ@ƒCƒ‹EƒIƒuƒWƒFƒNƒg\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B
+
ファイル オブジェクト構造体へのポインタを指定します。
func
-
ƒf[ƒ^‚ð“n‚·ƒ†[ƒU’è‹`ŠÖ”‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B‚±‚̊֐”‚ÌŽd—l‚̓Tƒ“ƒvƒ‹‚ðŽQÆ‚µ‚Ä‚­‚¾‚³‚¢B
+
データを渡すユーザ定義関数へのポインタを指定します。この関数の仕様はサンプルを参照してください。
btf
-
“]‘—‚·‚éƒoƒCƒg”(0`UINT‚̍őå’l)‚ðŽw’肵‚Ü‚·B
+
転送するバイト数(0~UINTの最大値)を指定します。
bf
-
ŽÀÛ‚É“]‘—‚³‚ꂽƒoƒCƒg”‚ðŠi”[‚·‚é•Ï”‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·B
+
実際に転送されたバイト数を格納する変数を指すポインタを指定します。
-

–ß‚è’l

+

戻り値

FR_OK, FR_DISK_ERR, @@ -54,40 +54,40 @@ FRESULT f_forward (

-

‰ðà

-

ƒtƒ@ƒCƒ‹‚̃f[ƒ^‚ðƒoƒbƒtƒ@‚ɓǂݏo‚³‚¸‚É‘—MƒXƒgƒŠ[ƒ€‚É’¼Ú“]‘—‚µ‚Ü‚·BƒAƒvƒŠƒP[ƒVƒ‡ƒ“‘¤‚Ńf[ƒ^Eƒoƒbƒtƒ@‚ð•K—v‚Æ‚µ‚È‚¢‚̂ŁAƒƒ‚ƒŠ‚ÌŒÀ‚ç‚ꂽŠÂ‹«‚Å—LŒø‚Å‚·BƒŠ[ƒh/ƒ‰ƒCƒgEƒ|ƒCƒ“ƒ^‚Í“]‘—‚³‚ꂽƒoƒCƒg”‚¾‚¯i‚Ý‚Ü‚·BŽw’肳‚ꂽƒoƒCƒg”‚Ì“]‘—’†‚Ƀtƒ@ƒCƒ‹‚̏I’[‚É’B‚µ‚½ê‡‚â‘—MƒXƒgƒŠ[ƒ€‚ªƒrƒW[‚É‚È‚Á‚½ê‡A*bf‚Íbtf‚æ‚è‚à¬‚³‚­‚È‚è‚Ü‚·B

+

解説

+

ファイルのデータをバッファに読み出さずに送信ストリームに直接転送します。アプリケーション側でデータ バッファを必要としないので、メモリの限られた環境で有効です。リード/ライト ポインタは転送されたバイト数だけ進みます。指定されたバイト数の転送中にファイルの終端に達した場合や送信ストリームがビジーになった場合、*bfはbtfよりも小さくなります。

-

‘Ήžî•ñ

-

_USE_FORWARD == 1‚ŁAŠŽ‚Â_FS_TINY == 1‚Ì‚Æ‚«‚ÉŽg—p‰Â”\‚Å‚·B

+

対応情報

+

_USE_FORWARD == 1で、且つ_FS_TINY == 1のときに使用可能です。

-

Žg—p—áiƒI[ƒfƒBƒIÄ¶j

+

使用例(オーディオ再生)

 /*-----------------------------------------------------------------------*/
-/* f_forwardŠÖ”‚©‚çŒÄ‚΂ê‚éƒf[ƒ^‘—MŠÖ”‚Ì—á                           */
+/* f_forward関数から呼ばれるデータ送信関数の例                           */
 /*-----------------------------------------------------------------------*/
 
-UINT out_stream (   /* –ß‚è’l: “]‘—‚³‚ꂽƒoƒCƒg”‚Ü‚½‚̓XƒgƒŠ[ƒ€‚̏ó‘Ô */
-    const BYTE *p,  /* “]‘—‚·‚éƒf[ƒ^‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */
-    UINT btf        /* >0: “]‘—‚ðs‚¤(ƒoƒCƒg”). 0: ƒXƒgƒŠ[ƒ€‚̏ó‘Ԃ𒲂ׂé */
+UINT out_stream (   /* 戻り値: 転送されたバイト数またはストリームの状態 */
+    const BYTE *p,  /* 転送するデータを指すポインタ */
+    UINT btf        /* >0: 転送を行う(バイト数). 0: ストリームの状態を調べる */
 )
 {
     UINT cnt = 0;
 
 
-    if (btf == 0) {     /* ƒZƒ“ƒX—v‹ */
-        /* ƒXƒgƒŠ[ƒ€‚̏ó‘Ô‚ð•Ô‚· (0: ƒrƒW[, 1: ƒŒƒfƒB) */
-        /* ˆê’UAƒŒƒfƒB‚ð•Ô‚µ‚½‚çA‘±‚­“]‘——v‹‚ŏ­‚È‚­‚Æ‚à1ƒoƒCƒg‚Í */
-        /* “]‘—‚³‚ê‚È‚¢‚Æ f_forwardŠÖ”‚Í FR_INT_ERR ‚Æ‚È‚éB */
+    if (btf == 0) {     /* センス要求 */
+        /* ストリームの状態を返す (0: ビジー, 1: レディ) */
+        /* 一旦、レディを返したら、続く転送要求で少なくとも1バイトは */
+        /* 転送されないと f_forward関数は FR_INT_ERR となる。 */
         if (FIFO_READY) cnt = 1;
     }
-    else {              /* “]‘——v‹ */
-        do {    /* ‘S‚ẴoƒCƒg‚ð“]‘—‚·‚é‚©AƒXƒgƒŠ[ƒ€‚ªƒrƒW[‚É‚È‚é‚Ü‚ÅŒJ‚è•Ô‚· */
+    else {              /* 転送要求 */
+        do {    /* 全てのバイトを転送するか、ストリームがビジーになるまで繰り返す */
             FIFO_PORT = *p++;
             cnt++;
         } while (cnt < btf && FIFO_READY);
@@ -98,31 +98,31 @@ UINT out_stream (   /* 
 
 
 /*-----------------------------------------------------------------------*/
-/* f_forwardŠÖ”‚ÌŽg—p—á                                                 */
+/* f_forward関数の使用例                                                 */
 /*-----------------------------------------------------------------------*/
 
 FRESULT play_file (
-    char *fn        /* Ä¶‚·‚éƒI[ƒfƒBƒIEƒtƒ@ƒCƒ‹–¼‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */
+    char *fn        /* 再生するオーディオ ファイル名を指すポインタ */
 )
 {
     FRESULT rc;
     FIL fil;
     UINT dmy;
 
-    /* ƒtƒ@ƒCƒ‹‚ð“ǂݏo‚µƒ‚[ƒh‚ÅŠJ‚­ */
+    /* ファイルを読み出しモードで開く */
     rc = f_open(&fil, fn, FA_READ);
     if (rc) return rc;
 
-    /* ‘S‚Ẵf[ƒ^‚ª“]‘—‚³‚ê‚é‚©ƒGƒ‰[‚ª”­¶‚·‚é‚Ü‚Å‘±‚¯‚é */
+    /* 全てのデータが転送されるかエラーが発生するまで続ける */
     while (rc == FR_OK && fil.fptr < fil.fsize) {
 
-        /* ‚Ù‚©‚̏ˆ—... */
+        /* ほかの処理... */
 
-        /* ’èŠú“I‚Ü‚½‚Í—v‹‚ɉž‚¶‚ăf[ƒ^‚ðƒXƒgƒŠ[ƒ€‚É‘—o‚·‚é */
+        /* 定期的または要求に応じてデータをストリームに送出する */
         rc = f_forward(&fil, out_stream, 1000, &dmy);
     }
 
-    /* ƒtƒ@ƒCƒ‹‚ð•Â‚¶‚Ä–ß‚é */
+    /* ファイルを閉じて戻る */
     f_close(&fil);
     return rc;
 }
@@ -131,10 +131,10 @@ FRESULT play_file (
 
 
 
-

ŽQÆ

+

参照

f_open, fgets, f_write, f_close, FIL

-

–ß‚é

+

戻る