.\" $OpenBSD: cdio.1,v 1.27 2003/06/10 09:12:09 jmc Exp $
.\"
.\" Copyright (c) 1995 Serge V. Vakulenko
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by Serge V. Vakulenko.
.\" 4. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd July 3, 1995
.Dt CDIO 1
.Os
.Sh NAME
.Nm cdio
.Nd compact disc audio player and control utility
.Sh SYNOPSIS
.Nm cdio
.Op Fl sv
.Op Fl d Ar host:port
.Op Fl f Ar device
.Op Ar command args ...
.Sh DESCRIPTION
The
.Nm
program controls audio features of a CD drive.
The
.Ar device
is a name such
as
.Dq cd0
or
.Dq mcd0 .
.Pp
If a
.Ar device
is not specified, the environment variable
.Ev DISC
will be used to find the CD device.
.Pp
If no command is given,
.Nm
enters an interactive mode, reading commands from the standard input.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl s
Silent mode.
Do not print table headers or human-readable comments.
.It Fl v
Verbose mode.
Print as much information as possible.
.It Fl d Ar host:port
Specifies cddb host (default: freedb.freedb.org:cddb).
.It Fl f Ar device
Specifies a device name such as
.Pa /dev/rcd0d
or
.Pa mcd0 .
Both absolute and relative paths to
.Pa /dev
filenames are possible.
The raw partition name is added if needed.
.El
.Pp
The available commands are listed below.
Only as many characters as are required to uniquely identify a command
need be specified.
The word
.Ic play
may be omitted.
.Bl -tag -width Ic
.It Ic play Ar first_track Op Ar last_track
Play from track
.Ar first_track
to track
.Ar last_track .
The first track has number 1 and may be omitted in all cases.
.It Ic play Ar start_m:start_s.start_f Op Ar end_m:end_s.end_f
Play from the absolute address
(MSF) defined by
.Ar start_m
in minutes,
.Ar start_s
in seconds, and
.Ar start_f
(frame number) to the absolute address defined by
.Ar end_m
in minutes,
.Ar end_s
in seconds, and
.Ar end_f
(frame number).
Minutes are in the range 0-99.
Seconds are in the range 0-59.
Frame numbers are in the range 0-74.
.It Ic play Op Ar #start_block Op length
Play starting from the logical block
.Ar start_block
using
.Ar length
logical blocks.
.It Ic pause
Stop playing.
Do not stop the disc.
.It Ic next
Play the next track.
If we're at the last track, stop.
.It Ic previous
Play the previous track.
If we're at the first track, restart.
.It Ic replay
Replay the current track again.
.It Ic resume
Resume playing.
Used after the
.Ic pause
command.
.It Ic stop
Stop the disc.
.It Ic eject
Eject the disc.
.It Ic close
Inject the disc.
.It Ic volume Ar left_channel Ar right_channel
Set the volume of the left channel to
.Ar left_channel
and the volume of the right channel to
.Ar right_channel .
Allowed values are in the range 0-255.
.It Ic volume Ar mute
Turn the sound off.
.It Ic volume Ar mono
Set the mono mode.
.It Ic volume Ar stereo
Set the stereo mode.
.It Ic volume Ar left
Play the left subtrack on both left and right channels.
.It Ic volume Ar right
Play the right subtrack on both left and right channels.
.It Ic info
Print the table of contents.
.It Ic cddb Op Ar n
Print the table of contents after matching the disc with the cddb.
In case of multiple matches, reissue the command with
.Ar n
.It Ic cdid
Print the disc id that will be used for matching with the cddb.
.It Ic status
Print information about the disc:
the current playing status and position,
the current media catalog status,
and the current values of the volume for left and right channels.
.It Ic help
Print the list of available commands.
.It Ic debug Ar on
Enable the debugging mode of the CD device driver.
.It Ic debug Ar off
Disable the driver debugging mode.
.It Ic device Ar devname
Make
.Ar devname
the current CD device.
This is the equivalent of quitting
.Nm
and restarting with a different device.
.It Ic reset
Perform a hardware reset of the device.
.It Ic set Ar msf
Set minute-second-frame ioctl mode (default).
.It Ic set Ar lba
Set LBA ioctl mode.
.It Ic quit
Quit the program.
.El
.Sh FILES
.Bl -tag -width /dev/rmcd0c -compact
.It Pa /dev/rcd0c
.It Pa /dev/rmcd0c
.El
.Sh HISTORY
The
.Nm
command is based on
.Nm cdcontrol ,
which first appeared in
.Fx 2.1 .
.Sh AUTHORS
Jean-Marc Zucconi,
Andrey A. Chernov,
Serge V. Vakulenko,
Marc Espie