PrimoBurner(tm) for C++  4.7
CD, DVD and Blu-ray Software Development Kit
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
primo::burner::DiscStatus Namespace Reference

The MSF structure allows you to translate blocks to minute, second and frame (MSF) interval This structure should not be used to calculate the Logical Block Address. More...

Enumerations

enum  Enum {
  Empty = 0x00,
  Open = 0x01,
  Closed = 0x02
}
 DiscStatus::Enum. More...
 

Detailed Description

The MSF structure allows you to translate blocks to minute, second and frame (MSF) interval This structure should not be used to calculate the Logical Block Address.

Use the LBA structure to translate from LBA to minute, second, frame and vice versa.

See Also
LBA Minutes Seconds Frames. One frame is 1/75 of a second or the size of a CDDA block (2352 bytes). Returns the length in blocks of a MSF (Min, Second and Frame) interval. The calculation is done according to the following formula:

blocks = (min * 60 + sec) * 75 + frame Returns the MSF (Min, Second and Frame) interval which corresponds to a given number of blocks.

The calculation is done according to the following formula:

//                      min   = blocks / 60 / 75
//                      sec   = (blocks - min*60*75) / 75
//                      frame = (blocks - min*60*75 - sec*75
//              

The LBA structure allows you to translate logical block address to minute, second and frame (MSF) address This structure should be used to calculate the Logical Block Address only.

See Also
MSF Minutes Seconds Frames. One frame is 1/75 of a second or the size of a CDDA block (2352 bytes). Translates a MSF Address to Logical Block Address. This method corrects the resulting LBA according to the CDDA standard.

The following formula is used for calculating the LBA:

//                      lba = (min * 60 + sec) * 75 + frame
//                      if (min < 90) lba = lba - 150 else lba = lba - 450150
//              

Returns the Minute, Second, Frame address from a logical block address.

The following formula is used for calculating the minutes, seconds and frames:

//                      if (lba >= -150) 
//                      {
//                              min = (lba + 150) / 60 / 75;
//                              sec = (lba + 150 - min*60*75)  / 75;
//                              frame = (lba + 150 - min*60*75 - sec*75);
//                      } 
//                      else if (lba >= -45150 && lba <= -151) 
//                      {
//                              min = (lba + 450150) / 60 / 75;
//                              sec = (lba + 450150 - min*60*75)  / 75;
//                              frame = (lba + 450150 - min*60*75 - sec*75);
//                      } 
//              

Disc Status

See Also
DiscInfo

Enumeration Type Documentation

enum Enum

DiscStatus::Enum.

Enumerator
Empty 

Empty disc.

Open 

Incomplete disc (more data can be written to it)

Closed 

Complete Disc (No more data can be written to it.

CD/DD/DVD-ROM, complete CD-R, CD-RW, DDCD-R/RW, DVD-R/-RW, or write protected Random Writable media)