예제 #1
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::numOfFramesOfAudioTracks() {
  if (numOfTracks() > 0) {
    int frames = 0;
    for (int i = 1; i <= numOfTracks(); ++i) {
      if (isAudioTrack(i)) frames += numOfFramesOfTrack(i);
    }
    return frames;
  }
  return 0;
}
예제 #2
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::numOfAudioTracks() {
  if (numOfTracks() > 0) {
    int j = 0;
    for (int i = 1; i <= numOfTracks(); i++) {
      if (isAudioTrack(i)) j++;
    }
    return j;
  }
  return 0;
}
예제 #3
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::numOfSkippedFrames(int n) {
  if (numOfTracks() > 0) {
    if (n < 1) n = 1;
    if (n > numOfTracks()) n = numOfTracks();
    int frames = 0;
    for (int i = 1; i < n; ++i) {
      if (!isAudioTrack(i)) frames += numOfFramesOfTrack(i);
    }
    return frames;
  }
  return 0;
}
예제 #4
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::numOfFramesOfTrack(int n) {

  if (numOfTracks() > 0) {

    if (n < 1) n = 1;
    if (n > numOfTracks()) n = numOfTracks();

    if (n == numOfTracks()) {
      return numOfFrames()-paranoia_drive->disc_toc[n-1].dwStartSector;
    } else {
      return paranoia_drive->disc_toc[n].dwStartSector-paranoia_drive->disc_toc[n-1].dwStartSector;
    }

  }
  return 0;

}
예제 #5
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
QList<quint32> CDDAParanoia::discSignature(const qint32 pregap) {

  QList<quint32> result;

  for (int i = 1; i <= numOfTracks()+1; ++i)
    result.append(frameOffsetOfTrack(i)+pregap);

  return result;

}
예제 #6
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
double CDDAParanoia::sizeOfTrack(int n) {
  if (numOfTracks() > 0) {
    double frame_size = (double)(numOfFramesOfTrack(n));
    if (isAudioTrack(n)) {
      return (frame_size*2352.0f)/(1024.0f*1024.0f);
    } else {
      return (frame_size*2048.0f)/(1024.0f*1024.0f);
    }
  }
  return 0.0f;
}
예제 #7
0
파일: k3baudiodoc.cpp 프로젝트: KDE/k3b
K3b::AudioDoc::~AudioDoc()
{
    // delete all tracks
    int i = 1;
    int cnt = numOfTracks();
    while( d->firstTrack ) {
        qDebug() << "(K3b::AudioDoc::AudioDoc) deleting track " << i << " of " << cnt;
        delete d->firstTrack->take();
        qDebug() << "(K3b::AudioDoc::AudioDoc) deleted.";
        ++i;
    }

    delete d;
}
예제 #8
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::frameOffsetOfTrack(int n) {
  if (numOfTracks() > 0) {
    return paranoia_drive->disc_toc[n-1].dwStartSector;
  }
  return 0;
}
예제 #9
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::lengthOfTrack(int n) {
  if (numOfTracks() > 0) {
    return numOfFramesOfTrack(n) / 75;
  }
  return 0;
}
예제 #10
0
파일: cddaparanoia.cpp 프로젝트: tnbp/audex
int CDDAParanoia::numOfFrames() {
  if (numOfTracks() > 0) {
    if (paranoia_drive) return cdda_disc_lastsector(paranoia_drive);
  }
  return 0;
}