Update of /cvsroot/pclasses/pclasses2/src/System
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23674/src/System
Modified Files:
CdRomDevice.linux.cpp
Log Message:
Cleanup of CdRomDevice and TrackInfo.
Index: CdRomDevice.linux.cpp
===================================================================
RCS file: /cvsroot/pclasses/pclasses2/src/System/CdRomDevice.linux.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- CdRomDevice.linux.cpp 14 Feb 2005 16:46:46 -0000 1.5
+++ CdRomDevice.linux.cpp 17 Feb 2005 14:28:08 -0000 1.6
@@ -27,6 +27,20 @@
namespace System {
+void lba2msf(size_t lba, uint8_t *msf)
+{
+#ifndef CD_MSF_OFFSET
+# define CD_MSF_OFFSET 150
+#endif
+
+ lba += CD_MSF_OFFSET; // msf addressing starts a lba=150
+ lba &= 0xffffff; // only 24bit ...
+ msf[0] = lba / (CD_SECS*CD_FRAMES);
+ lba %= CD_SECS*CD_FRAMES;
+ msf[1] = lba / CD_FRAMES;
+ msf[2] = lba % CD_FRAMES;
+}
+
CdRomDevice::CdRomDevice(const std::string& path, AccessMode access,
ShareMode share) throw(IO::IOError)
: StorageDevice(path, access, share)
@@ -87,7 +101,7 @@
status = DiscOk;
break;
case CDS_NO_INFO:
- /* fall through */
+ // fall through
default:
status = NoInfo;
}
@@ -124,7 +138,7 @@
break;
case CDS_NO_DISC:
case CDS_NO_INFO:
- /* fall through */
+ // fall through
default:
status = DiscUnknown;
}
@@ -149,10 +163,16 @@
throw IO::IOError(errno, "ioctl error on device", P_SOURCEINFO);
}
-void CdRomDevice::play(const Track& from, const Track& to) throw(IO::IOError)
+void CdRomDevice::play(const TrackInfo& from, const TrackInfo& to) throw(IO::IOError)
{
- play(from.startMinute(), from.startSecond(), from.startFrame(),
- to.endMinute(), to.endSecond(), to.endFrame());
+ uint8_t startMsf[3];
+ uint8_t endMsf[3];
+
+ lba2msf(from.lba(), startMsf);
+ lba2msf(to.lba(), endMsf);
+
+ play(startMsf[0], startMsf[1], startMsf[2],
+ endMsf[0], endMsf[1], endMsf[2]);
}
void CdRomDevice::stop() throw(IO::IOError)
@@ -198,7 +218,7 @@
throw IO::IOError(errno, "ioctl error on device", P_SOURCEINFO);
}
-CdRomDevice::TrackList CdRomDevice::readTOC() throw(IO::IOError)
+CdRomDevice::TrackList CdRomDevice::readTracks() throw(IO::IOError)
{
struct cdrom_tochdr hdr;
@@ -233,89 +253,45 @@
for(i = 1; i < ti; ++i);
{
int length = toc_entries[i].cdte_addr.lba - toc_entries[i-1].cdte_addr.lba;
- toc.push_back(Track(i,
- toc_entries[i-1].cdte_ctrl & CDROM_DATA_TRACK ? Track::Data : Track::Audio,
+ toc.push_back(TrackInfo(i,
+ toc_entries[i-1].cdte_ctrl & CDROM_DATA_TRACK ?
+ TrackInfo::Data : TrackInfo::Audio,
toc_entries[i-1].cdte_addr.lba, length));
}
return toc;
}
-void lba2msf(size_t lba, uint8_t *msf)
-{
-#ifndef CD_MSF_OFFSET
-# define CD_MSF_OFFSET 150
-#endif
-
- lba += CD_MSF_OFFSET; // msf addressing starts a lba=150
- lba &= 0xffffff; // only 24bit ...
- msf[0] = lba / (CD_SECS*CD_FRAMES);
- lba %= CD_SECS*CD_FRAMES;
- msf[1] = lba / CD_FRAMES;
- msf[2] = lba % CD_FRAMES;
-}
-
-CdRomDevice::Track::Track(unsigned int num, Type type, size_t lba, size_t size)
-: _num(num), _type(type), _lba(lba), _size(size)
+CdRomDevice::TrackInfo::TrackInfo(unsigned int num, Format f, size_t lba, size_t length)
+: _num(num), _format(f), _lba(lba), _length(length)
{
- lba2msf(lba, _startMsf);
- lba2msf(lba + size, _endMsf);
}
-CdRomDevice::Track::~Track()
+CdRomDevice::TrackInfo::~TrackInfo()
{
}
-unsigned int CdRomDevice::Track::num() const throw()
+unsigned int CdRomDevice::TrackInfo::num() const throw()
{
return _num;
}
-CdRomDevice::Track::Type CdRomDevice::Track::type() const
+CdRomDevice::TrackInfo::Format CdRomDevice::TrackInfo::format() const
throw()
{
- return _type;
+ return _format;
}
-size_t CdRomDevice::Track::lba() const throw()
+size_t CdRomDevice::TrackInfo::lba() const throw()
{
return _lba;
}
-size_t CdRomDevice::Track::size() const throw()
-{
- return _size;
-}
-
-uint8_t CdRomDevice::Track::startMinute() const throw()
-{
- return _startMsf[0];
-}
-
-uint8_t CdRomDevice::Track::startSecond() const throw()
-{
- return _startMsf[1];
-}
-
-uint8_t CdRomDevice::Track::startFrame() const throw()
-{
- return _startMsf[2];
-}
-
-uint8_t CdRomDevice::Track::endMinute() const throw()
-{
- return _endMsf[0];
-}
-
-uint8_t CdRomDevice::Track::endSecond() const throw()
+size_t CdRomDevice::TrackInfo::length() const throw()
{
- return _endMsf[1];
+ return _length;
}
-uint8_t CdRomDevice::Track::endFrame() const throw()
-{
- return _endMsf[2];
-}
} // !namespace System
|