I looked at libunieject to try to get a better understanding of issues. A large bit of libunieject_traytoggle() looked like it should be a libcdio MMC command, so I've added that as mmc_get_tray_status(). And since that shares a bit of code with another mmc_get_media_changed(), a common routine was added which returns the raw status bits from an MMC GET_EVENT_STATUS command.
In testing this out (a new example program, mmc3, was added), it looks like in some cases I do notice that some of the routines don't work on GNU/Linux or need to be run as root or probably some device-grouped user. I seem to recall the media changed status routine used to work and now it doesn't, but maybe it was just that I was using the GNU/Linux ioctl rather than the MMC routine. Been thinking more about the eject problem. Would it make sense to have two kinds of eject, one that does OS magic and another that just works at drive level? Might it not be the case that some programs want to eject only if the OS doesn't have to get involved (which may also require special permission), while other applications might want an unconditional eject? I don't know. What do people think? _______________________________________________ Libcdio-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/libcdio-devel
