コード例 #1
0
ファイル: _cdio_netbsd.c プロジェクト: vocho/qnxpkgsrcmirror
static bool
_cdio_get_track_msf(void *user_data, track_t track_num, msf_t *msf)
{
	_img_private_t *_obj = user_data;
	int res;

	if (!msf)
		return false;

	if (!_obj->toc_valid) {
		res = _cdio_read_toc(_obj);
		if (!res)
			return CDIO_INVALID_TRACK;
	}

	if (track_num == CDIO_CDROM_LEADOUT_TRACK)
		track_num = TOTAL_TRACKS + 1;

	if (track_num > TOTAL_TRACKS + 1 || track_num == 0)
		return false;

	msf->m = to_bcd8(_obj->tocent[track_num - 1].addr.msf.minute);
	msf->s = to_bcd8(_obj->tocent[track_num - 1].addr.msf.second);
	msf->f = to_bcd8(_obj->tocent[track_num - 1].addr.msf.frame);

	return true;
}
コード例 #2
0
ファイル: _cdio_linux.c プロジェクト: OS2World/MM-SOUND-xine
/*!  
  Return the starting MSF (minutes/secs/frames) for track number
  track_num in obj.  Track numbers start at 1.
  The "leadout" track is specified either by
  using track_num LEADOUT_TRACK or the total tracks+1.
  False is returned if there is no track entry.
*/
static bool
_cdio_get_track_msf(void *env, track_t track_num, msf_t *msf)
{
  _img_private_t *_obj = env;

  if (NULL == msf) return false;

  if (!_obj->gen.toc_init) _cdio_read_toc (_obj) ;

  if (track_num == CDIO_CDROM_LEADOUT_TRACK) track_num = TOTAL_TRACKS+1;

  if (track_num > TOTAL_TRACKS+1 || track_num == 0) {
    return false;
  } else {
    struct cdrom_msf0  *msf0= &_obj->tocent[track_num-1].cdte_addr.msf;
    msf->m = to_bcd8(msf0->minute);
    msf->s = to_bcd8(msf0->second);
    msf->f = to_bcd8(msf0->frame);
    return true;
  }
}