/* $Id: common_interface.h,v 1.4 2005/01/09 12:32:19 rocky Exp $ Copyright (C) 2004, 2005 Rocky Bernstein Copyright (C) 1998 Monty xiphmont@mit.edu This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _CDDA_COMMON_INTERFACE_H_ #define _CDDA_COMMON_INTERFACE_H_ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include "low_interface.h" /** Test for presence of a cdrom by pinging with the 'CDROMVOLREAD' ioctl() */ extern int ioctl_ping_cdrom(int fd); extern char *atapi_drive_info(int fd); /*! Determine endian-ness of the CD-drive based on reading data from it. rocky: As someone who didn't write the code, I have to say this is nothing less than brilliant. An FFT is done bigendian and little endian and the the transform is looked at to see which has data in the FFT (or audible) portion. (Or so that's how I understand it.) */ extern int data_bigendianp(cdrom_drive_t *d); /*! Here we fix up a couple of things that will never happen. yeah, right. rocky OMITTED FOR NOW: The multisession stuff is from Hannu's code; it assumes it knows the leadout/leadin size. */ extern int FixupTOC(cdrom_drive_t *d, track_t tracks); #endif /*_CDDA_COMMON_INTERFACE_H_*/