Libcdio, the CD Input and Control Library features a Python OO interface. This powerful interface is perfect for accessing CD data and executing control features with ease. The interface makes interfacing with Libcdio incredibly approachable, making it a perfect pick for those who are just getting started.
Libcdio is large and has potential to grow further, with UDF support being considered for implementation. Some sections of libcdio are not currently included in Pycdio, such as the SCSI MMC commands and the cdparanoia library. Audio controls that have been implemented are straightforward, and the ISO 9660 library is relatively complete. Stat information for files within the ISO 9660 library is minimal.
Despite these limitations, what is included in Pycdio is very useful, providing more access capabilities than most media players without the use of Libcdio. The SWIG encapsulation is split into two parts, with Pycdio being the underlying Python interface, and Cdio being the more object-oriented module, incorporating Pycdio. Although Pycdio can be used independently, Cdio is expected to be used by most people.
While it is possible to change SWIG to combine these pieces, it can result in a more complex code. Separation ensures that the translation is straightforward and simple to maintain, as the abstraction layer can be modified without making changes to the underlying translation. Changes to the C-to-python translation typically require minor changes to the abstraction layer, rather than vice versa.
Documentation for standalone use is lacking. However, the majority of the methods, classes and functions have some form of document strings. For further guidance, refer to the examples in the designated directory. There is still a lot of work to be done, and contributions are welcome.
Version 0.16: N/A