2-3 ミドルウェアの使用方法



2-3-1 ミドルウェアライブラリの初期化

mwPlyPreInitSofdec();
sbInitSystem(NJD_RESOLUTION_640x480_NTSCI, NJD_FRAMEBUFFER_MODE_ARGB8888, 1);
mwPlyInitSofdec(NULL);
sbInitSystem(NJD_RESOLUTION_640x480_NTSCI, NJD_FRAMEBUFFER_MODE_ARGB8888, 1);
mwPlyInitWav(MWD_PLY_MN_EXEC_VSYNC);



2-3-2 ミドルウェアライブラリの使用方法

whlie (1){
   njWaitVSync();
   mwStartFrame();        /*ゲームフレームの開始の通知    */
       :
   (ゲームの処理)
       :
   mwExecServer();        /*デコード処理など              */
}



2-3-3 ミドルウェア再生ハンドル

MWPLY plysfd,plywav;

plysfd = mwPlyCreateSofdec(&cprm); /*Sofdecデータ再生用ミドルウェア再生ハンドル */
plywav = mwPlyCreateWav(&cprm);    /*WAVEデータ再生用ミドルウェア再生ハンドル   */
mwPlyStartFname(plysfd, "SAMPLE.SFD");  /* Sofdecデータの再生                   */
mwPlyStartFname(plywav, "SAMPLE.WAV");  /* WAVEデータの再生                     */



2-3-4 ミドルウェア再生ハンドルの動作状態



2-3-5 MPEG Sofdecの再生

/* アプリケーションメイン関数 */
void main(void)
{
   MWPLY              ply;                /* ミドルウェア再生ハンドル        */
   MWE_PLY_STAT       stat;               /* ハンドルの状態                  */
   MWS_PLY_CPRM_SFD   cprm;               /* ハンドル生成のパラメータ構造体  */
   mwPlyPreInitSofdec();                  /* 割り込みスタックなどの設定      */
   sbInitSystem(NJD_RESOLUTION_640x480_NTSCI,NJD_FRAMEBUFFER_MODE_ARGB8888,1);
   /*
    *  画面やサウンドの初期化
    */
   mwPlyInitSofdec(NULL);                 /* ライブラリの初期化              */
   cprm.ftype  = MWD_PLY_FTYPE_SFD;
   cprm.dtype  = MWD_PLY_DTYPE_AUTO;
   cprm.work   = syMalloc(MWD_SFD_SIZE_WORK);
   cprm.wksize = MWD_SFD_SIZE_WORK;
   ply = mwPlyCreateSofdec(&cprm);         /* ハンドルの生成                 */
   mwPlyStartFname(ply, SAMPLE.SFD");      /* 再生開始                       */
   for (;;) {
       njWaitVSync();                      /* V-Sync待ち                     */
       mwPlyStartFrame();                  /* ゲームフレーム開始の通知       */
       stat = mwPlyGetStat(ply);           /* ハンドルの状態の取得           */
       if ( stat == MWE_PLY_STAT_PLAYEND ) {
           break;
       }
       mwPlyExecServer();                  /* ミドルウェアライブラリの実行   */
   }
   mwPlyStop(ply);                         /* 再生停止                       */
   mwPlyDestroy(ply);                      /* ハンドルの消去                 */
   syFree(cprm.work);
   mwPlyFinishSofdec();                    /* ライブラリの初期化             */
}



2-3-6 Waveファイルの再生

/* アプリケーションメイン関数 */
void main(void)
{
   MWPLY             ply;                  /* ミドルウェア再生ハンドル       */
   MWE_PLY_STAT      stat;                 /* ハンドルの状態                 */
   MWS_PLY_CPRM_WAV  cprm;                 /* ハンドル生成のパラメータ構造体 */
   /*
    * 画面やサウンドの初期化
    */
   mwPlyInitWav(MWD_PLY_MN_EXEC_VSYNC);    /* ライブラリの初期化             */
   cprm.sjbuf = syMalloc(MWD_PLY_ALLOC_SJBUF(48));
   cprm.size  = MWD_PLY_ALLOC_SJBUF(48);
   ply = mwPlyCreateWav(&cprm);            /* ハンドルの生成                 */
   mwPlyStartFname(ply, "SAMPLE.WAV");     /* 再生開始                       */
   for (;;) {
       njWaitVSync();                      /* V-Sync待ち                     */
       mwPlyStartFrame();                  /* ゲームフレーム開始の通知       */
       stat = mwPlyGetStat(ply);           /* ハンドルの状態の取得           */
       if ( stat == MWE_PLY_STAT_PLAYEND ) {
           break;
       }
       mwPlyExecServer();                  /* ミドルウェアライブラリの実行   */
   }
   mwPlyStop(ply);                         /* 再生開始                       */
   mwPlyDestroy(ply);                      /* ハンドルの消去                 */
   syFree(cprm.sjbuf);
   mwPlyFinishWav();                       /* ライブラリの初期化             */
}

[]   [INDEX]   []

(C)SEGA ENTERPRISES, LTD., 1999