/// どうせだから、追加してみました。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); // どうなっとるんや.. }
/// <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); // どうなっとるんや.. }
/* * 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); // どうなっとるんや.. }