diff options
Diffstat (limited to 'stream/stream_cdda.c')
-rw-r--r-- | stream/stream_cdda.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/stream/stream_cdda.c b/stream/stream_cdda.c index 7fd461a361..e99db3eda1 100644 --- a/stream/stream_cdda.c +++ b/stream/stream_cdda.c @@ -226,42 +226,10 @@ static void close_cdda(stream_t *s) cdda_close(p->cd); } -static int get_track_by_sector(cdda_priv *p, unsigned int sector) -{ - int i; - for (i = p->cd->tracks; i >= 0; --i) - if (p->cd->disc_toc[i].dwStartSector <= sector) - break; - return i; -} - static int control(stream_t *stream, int cmd, void *arg) { cdda_priv *p = stream->priv; switch (cmd) { - case STREAM_CTRL_GET_NUM_CHAPTERS: - { - int start_track = get_track_by_sector(p, p->start_sector); - int end_track = get_track_by_sector(p, p->end_sector); - if (start_track == -1 || end_track == -1) - return STREAM_ERROR; - *(unsigned int *)arg = end_track + 1 - start_track; - return STREAM_OK; - } - case STREAM_CTRL_GET_CHAPTER_TIME: - { - int track = *(double *)arg; - int start_track = get_track_by_sector(p, p->start_sector); - int end_track = get_track_by_sector(p, p->end_sector); - track += start_track; - if (track > end_track) - return STREAM_ERROR; - int64_t sector = p->cd->disc_toc[track].dwStartSector; - int64_t pos = sector * CDIO_CD_FRAMESIZE_RAW; - // Assume standard audio CD: 44.1khz, 2 channels, s16 samples - *(double *)arg = pos / (44100.0 * 2 * 2); - return STREAM_OK; - } case STREAM_CTRL_GET_SIZE: *(int64_t *)arg = (p->end_sector + 1 - p->start_sector) * CDIO_CD_FRAMESIZE_RAW; |