예제 #1
0
파일: CDDA.cs 프로젝트: sinshu/dtf
 /// どうせだから、追加してみました。by まこ
 unsafe private int getTracks_()
 {
     if (cdrom != IntPtr.Zero)
     {
         if (SDL.CD_INDRIVE(SDL.SDL_CDStatus(cdrom)))
         {
             SDL.SDL_CD *cd = (SDL.SDL_CD *)cdrom;
             return(cd->numtracks);
         }
     }
     return(-1); // どうなっとるんや..
 }
예제 #2
0
파일: CDDA.cs 프로젝트: sinshu/dtf
 /// <summary>
 /// 現在の再生ポジション取得
 /// </summary>
 ///	<remarks>
 /// 非再生ならば-1。
 ///	この戻り値をFRAMES_TO_MSFに食わせれば
 ///	CDの先頭からの時間が取得できる。
 ///
 ///	ここで返されるフレームについては十分な分解能があるとは限らない。
 ///	(少なくとも秒ぐらいは正しく取得できるだろうけど)
 /// </remarks><returns></returns>
 unsafe private int getCurrentPos_()
 {
     if (!IsPlaying())
     {
         return(-1);
     }
     if (cdrom != IntPtr.Zero)
     {
         SDL.SDL_CD *cd = (SDL.SDL_CD *)cdrom;
         return(cd->cur_frame);
     }
     return(-1);            // どうなっとるんや..
 }
예제 #3
0
파일: CDDA.cs 프로젝트: sinshu/dtf
/*
 *              unsafe private int getPlayingTrack_() {
 *                      if (!IsPlaying()) { return -1; }
 *                      if (cdrom != IntPtr.Zero) {
 *                              SDL.SDL_CD* cd = (SDL.SDL_CD*)cdrom;
 *                              return cd->numtracks;
 *                      }
 *                      return -1; // どうなっとるんや..
 *              }
 */
        // ↑は、返している情報が違う。

        /// 正しく動くように、修正したバージョン by まこ
        ///
        /// numtracksではなく、ちゃんと、cur_trackを返すように修正
        unsafe private int getPlayingTrack_()
        {
            if (!IsPlaying())
            {
                return(-1);
            }
            if (cdrom != IntPtr.Zero)
            {
                SDL.SDL_CD *cd = (SDL.SDL_CD *)cdrom;
                return(cd->cur_track);
            }
            return(-1); // どうなっとるんや..
        }