Deleted Added
full compact
cdcontrol.c (13884) cdcontrol.c (13888)
1/*
2 * Compact Disc Control Utility by Serge V. Vakulenko <vak@cronyx.ru>.
3 * Based on the non-X based CD player by Jean-Marc Zucconi and
4 * Andrey A. Chernov.
5 *
6 * $Id$
7 */
8#include <stdio.h>

--- 383 unchanged lines hidden (view full) ---

392 case ASTS_VOID: return ("void");
393 default: return ("??");
394 }
395}
396
397int pstatus (char *arg)
398{
399 struct ioc_vol v;
1/*
2 * Compact Disc Control Utility by Serge V. Vakulenko <vak@cronyx.ru>.
3 * Based on the non-X based CD player by Jean-Marc Zucconi and
4 * Andrey A. Chernov.
5 *
6 * $Id$
7 */
8#include <stdio.h>

--- 383 unchanged lines hidden (view full) ---

392 case ASTS_VOID: return ("void");
393 default: return ("??");
394 }
395}
396
397int pstatus (char *arg)
398{
399 struct ioc_vol v;
400 struct ioc_read_subchannel ss;
401 struct cd_sub_channel_info data;
400 int rc, trk, m, s, f;
401
402 rc = status (&trk, &m, &s, &f);
403 if (rc >= 0)
404 if (verbose)
405 printf ("Audio status = %d<%s>, current track = %d, current position = %d:%02d.%02d\n",
406 rc, strstatus (rc), trk, m, s, f);
407 else
408 printf ("%d %d %d:%02d.%02d\n", rc, trk, m, s, f);
409 else
402 int rc, trk, m, s, f;
403
404 rc = status (&trk, &m, &s, &f);
405 if (rc >= 0)
406 if (verbose)
407 printf ("Audio status = %d<%s>, current track = %d, current position = %d:%02d.%02d\n",
408 rc, strstatus (rc), trk, m, s, f);
409 else
410 printf ("%d %d %d:%02d.%02d\n", rc, trk, m, s, f);
411 else
410 printf ("No current status info\n");
412 printf ("No current status info available\n");
411
413
414 bzero (&ss, sizeof (ss));
415 ss.data = &data;
416 ss.data_len = sizeof (data);
417 ss.address_format = msf ? CD_MSF_FORMAT : CD_LBA_FORMAT;
418 ss.data_format = CD_MEDIA_CATALOG;
419 rc = ioctl (fd, CDIOCREADSUBCHANNEL, (char *) &ss);
420 if (rc >= 0) {
421 printf("Media catalog is %sactive\n",
422 ss.data->what.media_catalog.mc_valid ? "": "in");
423 } else
424 printf("No media catalog info available\n");
425
412 rc = ioctl (fd, CDIOCGETVOL, &v);
413 if (rc >= 0)
414 if (verbose)
415 printf ("Left volume = %d, right volume = %d\n",
416 v.vol[0], v.vol[1]);
417 else
418 printf ("%d %d\n", v.vol[0], v.vol[1]);
419 else
426 rc = ioctl (fd, CDIOCGETVOL, &v);
427 if (rc >= 0)
428 if (verbose)
429 printf ("Left volume = %d, right volume = %d\n",
430 v.vol[0], v.vol[1]);
431 else
432 printf ("%d %d\n", v.vol[0], v.vol[1]);
433 else
420 printf ("No volume level info\n");
434 printf ("No volume level info available\n");
421 return(0);
422}
423
424int info (char *arg)
425{
426 struct ioc_toc_header h;
427 int rc, i, n;
428
429 rc = ioctl (fd, CDIOREADTOCHEADER, &h);
435 return(0);
436}
437
438int info (char *arg)
439{
440 struct ioc_toc_header h;
441 int rc, i, n;
442
443 rc = ioctl (fd, CDIOREADTOCHEADER, &h);
430 if (rc >= 0)
444 if (rc >= 0) {
431 if (verbose)
432 printf ("Starting track = %d, ending track = %d, TOC size = %d bytes\n",
433 h.starting_track, h.ending_track, h.len);
434 else
435 printf ("%d %d %d\n", h.starting_track,
436 h.ending_track, h.len);
445 if (verbose)
446 printf ("Starting track = %d, ending track = %d, TOC size = %d bytes\n",
447 h.starting_track, h.ending_track, h.len);
448 else
449 printf ("%d %d %d\n", h.starting_track,
450 h.ending_track, h.len);
437 else {
451 } else {
438 perror ("getting toc header");
439 return (rc);
440 }
441
442 n = h.ending_track - h.starting_track + 1;
443 rc = read_toc_entrys ((n + 1) * sizeof (struct cd_toc_entry));
444 if (rc < 0)
445 return (rc);

--- 244 unchanged lines hidden ---
452 perror ("getting toc header");
453 return (rc);
454 }
455
456 n = h.ending_track - h.starting_track + 1;
457 rc = read_toc_entrys ((n + 1) * sizeof (struct cd_toc_entry));
458 if (rc < 0)
459 return (rc);

--- 244 unchanged lines hidden ---