本文整理汇总了C++中cdio_destroy函数的典型用法代码示例。如果您正苦于以下问题:C++ cdio_destroy函数的具体用法?C++ cdio_destroy怎么用?C++ cdio_destroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cdio_destroy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: bgav_check_device_vcd
int bgav_check_device_vcd(const char * device, char ** name)
{
CdIo_t * cdio;
cdio_drive_read_cap_t read_cap;
cdio_drive_write_cap_t write_cap;
cdio_drive_misc_cap_t misc_cap;
cdio = cdio_open (device, DRIVER_DEVICE);
if(!cdio)
return 0;
cdio_get_drive_cap(cdio, &read_cap, &write_cap, &misc_cap);
if(!(read_cap & CDIO_DRIVE_CAP_READ_MODE2_FORM2))
{
cdio_destroy(cdio);
return 0;
}
/* Seems the drive is ok */
if(name)
*name = get_device_name(cdio, read_cap, write_cap, device);
cdio_destroy(cdio);
return 1;
}
开发者ID:Jheengut,项目名称:gmerlin,代码行数:26,代码来源:in_vcd.c
示例2: main
int
main(int argc, const char *argv[])
{
track_t i_first_track;
track_t i_tracks;
CdIo_t *p_cdio = cdio_open ("../test/cdda.cue", DRIVER_BINCUE);
if (NULL == p_cdio) {
printf("Couldn't open ../test/cdda.cue with BIN/CUE driver.\n");
} else {
i_first_track = cdio_get_first_track_num(p_cdio);
i_tracks = cdio_get_num_tracks(p_cdio);
print_disc_info(p_cdio, i_tracks, i_first_track);
cdio_destroy(p_cdio);
}
p_cdio = cdio_open (NULL, DRIVER_DEVICE);
i_first_track = cdio_get_first_track_num(p_cdio);
i_tracks = cdio_get_num_tracks(p_cdio);
if (NULL == p_cdio) {
printf("Couldn't find CD\n");
return 1;
} else {
print_disc_info(p_cdio, i_tracks, i_first_track);
}
cdio_destroy(p_cdio);
return 0;
}
开发者ID:sd-eblana,项目名称:bawx,代码行数:32,代码来源:cdtext.c
示例3: cdio_open
QString CddaLister::MakeFriendlyName(const QString& id) {
CdIo_t *cdio = cdio_open (id.toLocal8Bit().constData(), DRIVER_DEVICE);
cdio_hwinfo_t cd_info;
if (cdio_get_hwinfo(cdio, &cd_info)) {
cdio_destroy(cdio);
return QString(cd_info.psz_model);
}
cdio_destroy(cdio);
return QString("CD (") + id + ")";
}
开发者ID:BrummbQ,项目名称:Clementine,代码行数:10,代码来源:cddalister.cpp
示例4: main
int
main(int argc, const char *argv[])
{
CdIo_t *p_cdio;
char **ppsz_drives=NULL;
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
/* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1,
"%s/%s", TEST_DIR, cue_file[i]);
*/
if (!cdio_have_driver(DRIVER_SOLARIS)) return(77);
ppsz_drives = cdio_get_devices(DRIVER_DEVICE);
if (!ppsz_drives) {
printf("Can't find a CD-ROM drive. Skipping test.\n");
exit(77);
}
p_cdio = cdio_open_linux(ppsz_drives[0]);
if (p_cdio) {
const char *psz_source = cdio_get_arg(p_cdio, "source");
if (0 != strncmp(psz_source, ppsz_drives[0],
strlen(ppsz_drives[0]))) {
fprintf(stderr,
"Got %s; should get back %s, the name we opened.\n",
psz_source, ppsz_drives[0]);
exit(1);
}
}
cdio_destroy(p_cdio);
p_cdio = cdio_open_am_linux(ppsz_drives[0], "SCSI");
if (p_cdio) {
const char *psz_access_mode = cdio_get_arg(p_cdio, "access-mode");
if (0 != strncmp(psz_access_mode, "SCSI", strlen("SCSI"))) {
fprintf(stderr,
"Got %s; Should get back %s, the access mode requested.\n",
psz_access_mode, "SCSI");
exit(2);
}
}
cdio_destroy(p_cdio);
cdio_free_device_list(ppsz_drives);
return 0;
}
开发者ID:3aychonok,项目名称:libcdio,代码行数:48,代码来源:solaris.c
示例5: main
int
main(int argc, const char *argv[])
{
CdIo_t *p_cdio = cdio_open (NULL, DRIVER_UNKNOWN);
driver_id_t driver_id;
if (NULL != p_cdio) {
char *default_device = cdio_get_default_device(p_cdio);
cdio_drive_read_cap_t i_read_cap;
cdio_drive_write_cap_t i_write_cap;
cdio_drive_misc_cap_t i_misc_cap;
printf("The driver selected is %s\n", cdio_get_driver_name(p_cdio));
if (default_device)
printf("The default device for this driver is %s\n", default_device);
cdio_get_drive_cap(p_cdio, &i_read_cap, &i_write_cap, &i_misc_cap);
print_drive_capabilities(i_read_cap, i_write_cap, i_misc_cap);
free(default_device);
cdio_destroy(p_cdio);
printf("\n");
} else {
printf("Problem in trying to find a driver.\n\n");
}
for (driver_id=CDIO_MIN_DRIVER; driver_id<=CDIO_MAX_DRIVER; ++driver_id)
if (cdio_have_driver(driver_id))
printf("We have: %s\n", cdio_driver_describe(driver_id));
else
printf("We don't have: %s\n", cdio_driver_describe(driver_id));
return 0;
}
开发者ID:flyingtime,项目名称:boxee,代码行数:35,代码来源:device.cpp
示例6: main
int
main(int argc, const char *argv[])
{
CdIo_t *p_cdio;
const char *psz_drive = NULL;
if (argc > 1) psz_drive = argv[1];
p_cdio = cdio_open (psz_drive, DRIVER_UNKNOWN);
if (!p_cdio) {
printf("Couldn't find CD\n");
return 1;
} else {
uint8_t buf[22] = { 0, }; /* Place to hold returned data */
char *psz_cd = cdio_get_default_device(p_cdio);
if (DRIVER_OP_SUCCESS == mmc_mode_sense_6(p_cdio, buf, sizeof(buf),
CDIO_MMC_CAPABILITIES_PAGE) ) {
print_mode_sense(psz_cd, "6", buf);
} else {
printf("Couldn't get MODE_SENSE 6 data.\n");
}
if (DRIVER_OP_SUCCESS == mmc_mode_sense_10(p_cdio, buf, sizeof(buf),
CDIO_MMC_CAPABILITIES_PAGE) ) {
print_mode_sense(psz_cd, "10", buf);
} else {
printf("Couldn't get MODE_SENSE 10 data.\n");
}
free(psz_cd);
}
cdio_destroy(p_cdio);
return 0;
}
开发者ID:flyingtime,项目名称:boxee,代码行数:34,代码来源:mmc2a.c
示例7: CDDAReader_dealloc_image
static void
CDDAReader_dealloc_image(cdio_CDDAReader *self)
{
if (self->_.image.image != NULL) {
cdio_destroy(self->_.image.image);
}
}
开发者ID:KristoforMaynard,项目名称:python-audio-tools,代码行数:7,代码来源:cdiomodule.c
示例8: cdda_scanner
void *
cdda_scanner(void * arg) {
int i = 0;
cdio_log_set_handler(cdda_log_handler);
AQUALUNG_MUTEX_LOCK(cdda_mutex)
cdda_scan_all_drives();
AQUALUNG_MUTEX_UNLOCK(cdda_mutex)
while (cdda_scanner_working) {
g_usleep(100000);
if (i == 50) { /* scan every 5 seconds */
AQUALUNG_MUTEX_LOCK(cdda_mutex)
cdda_scan_all_drives();
AQUALUNG_MUTEX_UNLOCK(cdda_mutex)
i = 0;
}
++i;
}
AQUALUNG_MUTEX_LOCK(cdda_mutex)
for (i = 0; i < CDDA_DRIVES_MAX; i++) {
if (cdda_drives[i].cdio != NULL) {
cdio_destroy(cdda_drives[i].cdio);
memset(cdda_drives + i, 0, sizeof(cdda_drive_t));
}
}
AQUALUNG_MUTEX_UNLOCK(cdda_mutex)
return NULL;
}
开发者ID:menghun3,项目名称:aqualung,代码行数:33,代码来源:cdda.c
示例9: main
int
main(int argc, const char *argv[])
{
CdIo_t *p_cdio = cdio_open (NULL, DRIVER_UNKNOWN);
track_t i_first_track;
track_t i_tracks;
int j, i;
if (NULL == p_cdio) {
printf("Couldn't find a driver.. leaving.\n");
return 1;
}
printf("Disc last LSN: %d\n", cdio_get_disc_last_lsn(p_cdio));
i_tracks = cdio_get_num_tracks(p_cdio);
i_first_track = i = cdio_get_first_track_num(p_cdio);
printf("CD-ROM Track List (%i - %i)\n", i_first_track,
i_first_track+i_tracks-1);
printf(" #: LSN\n");
for (j = 0; j < i_tracks; i++, j++) {
lsn_t lsn = cdio_get_track_lsn(p_cdio, i);
if (CDIO_INVALID_LSN != lsn)
printf("%3d: %06lu\n", (int) i, (long unsigned int) lsn);
}
printf("%3X: %06lu leadout\n", CDIO_CDROM_LEADOUT_TRACK,
(long unsigned int) cdio_get_track_lsn(p_cdio,
CDIO_CDROM_LEADOUT_TRACK));
cdio_destroy(p_cdio);
return 0;
}
开发者ID:Crome,项目名称:libcdio,代码行数:35,代码来源:tracks.c
示例10: oops
static void
oops(const char *psz_msg, int rc)
{
cdio_destroy (p_cdio);
free (psz_device);
exit (rc);
}
开发者ID:Distrotech,项目名称:libcdio,代码行数:7,代码来源:audio.c
示例11: startTimerSig
void CDIODestroyTimer::setInstance( CdIo_t *cdio, const QString &device, unsigned discID )
{
if ( tryLock() )
emit startTimerSig( cdio, device, discID );
else
cdio_destroy( cdio );
}
开发者ID:JERUKA9,项目名称:QMPlay2,代码行数:7,代码来源:AudioCDDemux.cpp
示例12: lock
CDIODestroyTimer::~CDIODestroyTimer()
{
lock();
if ( timerID )
cdio_destroy( cdio );
unlock();
}
开发者ID:JERUKA9,项目名称:QMPlay2,代码行数:7,代码来源:AudioCDDemux.cpp
示例13: cdio_destroy
void CDIODestroyTimer::startTimerSlot( CdIo_t *cdio, const QString &device, unsigned discID )
{
if ( timerID )
{
cdio_destroy( this->cdio );
timerID = 0;
}
if ( !( timerID = startTimer( 2500 ) ) )
cdio_destroy( cdio );
else
{
this->cdio = cdio;
this->device = device;
this->discID = discID;
}
unlock();
}
开发者ID:JERUKA9,项目名称:QMPlay2,代码行数:17,代码来源:AudioCDDemux.cpp
示例14: cdio_open
char *libunieject_defaultdevice()
{
CdIo_t *cdio = cdio_open(NULL, DRIVER_UNKNOWN);
char *device = cdio_get_default_device(cdio);
cdio_destroy(cdio);
return device;
}
开发者ID:BackupTheBerlios,项目名称:unieject-svn,代码行数:8,代码来源:mounts.c
示例15: CDImage_dealloc
static void
CDImage_dealloc(cdio_CDImage* self) {
if (self->image != NULL)
cdio_destroy(self->image);
Py_XDECREF(self->pcm_module);
self->ob_type->tp_free((PyObject*)self);
}
开发者ID:Excito,项目名称:audiotools,代码行数:8,代码来源:cdiomodule.c
示例16: cdio_eject_media
/*!
Eject media in CD drive if there is a routine to do so.
@param p_cdio the CD object to be acted upon.
If the CD is ejected *p_cdio is freed and p_cdio set to NULL.
*/
driver_return_code_t
cdio_eject_media (CdIo_t **pp_cdio)
{
if ((pp_cdio == NULL) || (*pp_cdio == NULL)) return DRIVER_OP_UNINIT;
if ((*pp_cdio)->op.eject_media) {
int ret = (*pp_cdio)->op.eject_media ((*pp_cdio)->env);
if (0 == ret) {
cdio_destroy(*pp_cdio);
*pp_cdio = NULL;
}
return ret;
} else {
cdio_destroy(*pp_cdio);
*pp_cdio = NULL;
return DRIVER_OP_UNSUPPORTED;
}
}
开发者ID:CaoCaoBeard,项目名称:pcejin,代码行数:24,代码来源:device.c
示例17: CDIntfDone
void CDIntfDone(void)
{
WriteLog("CDINTF: Shutting down CD-ROM subsystem.\n");
#ifdef HAVE_LIB_CDIO
if (cdioPtr)
cdio_destroy(cdioPtr);
#endif
}
开发者ID:Reverser35,项目名称:OpenEmu,代码行数:9,代码来源:cdintf.cpp
示例18: cleanup_thread_params
static void
cleanup_thread_params (struct cddb_thread_params *params)
{
int i;
for (i = 0; params->items[i]; i++)
deadbeef->pl_item_unref (params->items[i]);
cdio_destroy (params->cdio);
free (params);
}
开发者ID:vadmium,项目名称:deadbeef,代码行数:9,代码来源:cdda.c
示例19: cddb_thread
static void
cddb_thread (void *items_i)
{
struct cddb_thread_params *params = (struct cddb_thread_params*)items_i;
DB_playItem_t **items = params->items;
trace ("calling resolve_disc\n");
cddb_disc_t* disc = resolve_disc (params->cdio);
if (!disc)
{
trace ("disc not resolved\n");
if (params->cdio) {
cdio_destroy (params->cdio);
}
free (params);
return;
}
trace ("disc resolved\n");
const char *disc_title = cddb_disc_get_title (disc);
const char *artist = cddb_disc_get_artist (disc);
trace ("disc_title=%s, disk_artist=%s\n", disc_title, artist);
cddb_track_t *track;
int i;
// FIXME: playlist must be locked before doing that
int trk = 1;
for (i = 0, track = cddb_disc_get_track_first (disc); items[i]; trk++, ++i, track = cddb_disc_get_track_next (disc))
{
// FIXME: problem will happen here if item(s) were deleted from playlist, and new items were added in their places
// possible solutions: catch EV_TRACKDELETED and mark item(s) in every thread as NULL
trace ("track %d, artist=%s, album=%s, title=%s\n", i, artist, disc_title, cddb_track_get_title (track));
deadbeef->pl_delete_all_meta (items[i]);
deadbeef->pl_add_meta (items[i], "artist", artist);
deadbeef->pl_add_meta (items[i], "album", disc_title);
deadbeef->pl_add_meta (items[i], "title", cddb_track_get_title (track));
char tmp[5];
snprintf (tmp, sizeof (tmp), "%02d", trk);
deadbeef->pl_add_meta (items[i], "track", tmp);
ddb_event_track_t *ev = (ddb_event_track_t *)deadbeef->event_alloc (DB_EV_TRACKINFOCHANGED);
ev->track = items[i];
if (ev->track) {
deadbeef->pl_item_ref (ev->track);
}
deadbeef->event_send ((ddb_event_t *)ev, 0, 0);
}
cddb_disc_destroy (disc);
cleanup_thread_params (params);
ddb_playlist_t *plt = deadbeef->plt_get_curr ();
if (plt) {
deadbeef->plt_modified (plt);
deadbeef->plt_unref (plt);
}
deadbeef->sendmessage (DB_EV_PLAYLISTCHANGED, 0, 0, 0);
}
开发者ID:vadmium,项目名称:deadbeef,代码行数:56,代码来源:cdda.c
示例20: cdio_eject_media
/*!
Eject media in CD drive if there is a routine to do so.
Return 0 if success and 1 for failure, and 2 if no routine.
If the CD is ejected *obj is freed and obj set to NULL.
*/
int
cdio_eject_media (CdIo **obj)
{
if ((obj == NULL) || (*obj == NULL)) return 1;
if ((*obj)->op.eject_media) {
int ret = (*obj)->op.eject_media ((*obj)->env);
if (0 == ret) {
cdio_destroy(*obj);
*obj = NULL;
}
return ret;
} else {
cdio_destroy(*obj);
*obj = NULL;
return 2;
}
}
开发者ID:OS2World,项目名称:MM-SOUND-xine,代码行数:24,代码来源:cdio.c
注:本文中的cdio_destroy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论