mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 00:15:45 -04:00
CDROM: Implement GetTD command
This commit is contained in:
@ -33,6 +33,18 @@ std::unique_ptr<CDImage> CDImage::Open(const char* filename)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CDImage::LBA CDImage::GetTrackStartPosition(u8 track) const
|
||||
{
|
||||
Assert(track > 0 && track <= m_tracks.size());
|
||||
return m_tracks[track - 1].start_lba;
|
||||
}
|
||||
|
||||
CDImage::Position CDImage::GetTrackStartMSFPosition(u8 track) const
|
||||
{
|
||||
Assert(track > 0 && track <= m_tracks.size());
|
||||
return Position::FromLBA(m_tracks[track - 1].start_lba);
|
||||
}
|
||||
|
||||
bool CDImage::Seek(LBA lba)
|
||||
{
|
||||
const Index* new_index;
|
||||
|
@ -93,6 +93,8 @@ public:
|
||||
u32 GetIndexNumber() const { return m_current_index->index_number; }
|
||||
u32 GetTrackNumber() const { return m_current_index->track_number; }
|
||||
u32 GetTrackCount() const { return static_cast<u32>(m_tracks.size()); }
|
||||
LBA GetTrackStartPosition(u8 track) const;
|
||||
Position GetTrackStartMSFPosition(u8 track) const;
|
||||
|
||||
// Seek to data LBA.
|
||||
bool Seek(LBA lba);
|
||||
|
@ -132,11 +132,13 @@ bool CDImageCueSheet::OpenAndParse(const char* filename)
|
||||
// how many indices in this track?
|
||||
Index last_index;
|
||||
last_index.start_lba_on_disc = disc_lba;
|
||||
last_index.start_lba_in_track = 0;
|
||||
last_index.track_number = track_num;
|
||||
last_index.index_number = 1;
|
||||
last_index.file = it->second;
|
||||
last_index.file_sector_size = track_sector_size;
|
||||
last_index.file_offset = 0;
|
||||
last_index.is_pregap = false;
|
||||
|
||||
long last_index_offset = track_start;
|
||||
for (int index_num = 1;; index_num++)
|
||||
|
Reference in New Issue
Block a user