====== DragonFly BSD ======
* [[https://www.dragonflybsd.org/~labthug/handbook/disks-naming.html|Device Names]]
Both dvd_info and bluray_info build out of the box once the dependencies re installed.
The default device for the optical drive is ''/dev/cd0''
It not already installed, you will need automake and autoconf:
pkg install autoconf automake pkgconf
==== dvd_info ====
Install libdvdread and libdvdcss:
pkg install libdvdread libdvdcss
Download the source code from github, and build:
autoreconf -fi
./configure
make
==== bluray_info ====
Install libbluray and libaacs:
pkg install libbluray and libaacs
Then check out the code as normal, and build:
autoreconf -fi
./configure
make
==== research notes ====
man 4 cd:
CDIOCRESET
CDIOCSETDEBUG
CDIOCCLRDEBUG Turn on (off) debugging for the appropriate device.
CDIOCSTART
CDIOCSTOP Tell the drive to spin-up (-down) the CD-ROM.
CDIOCALLOW
CDIOCPREVENT Tell the drive to allow (prevent) manual ejection of the CD-ROM disc. Not all drives support this feature.
CDIOCEJECT
CDIOCCLOSE
man 9 cd:
CD_Q_NO_TOUCH This flag tell the driver not to probe the drive at
attach time to see if there is a disk in the drive and
find out what size it is. This flag is currently
unimplemented in the CAM cd driver.
CDIOCCAPABILITY (struct ioc_capability) Retrieve information from
the drive on what features it supports. The
information is returned in the following structure:
struct ioc_capability {
u_long play_function;
#define CDDOPLAYTRK 0x00000001
/* Can play tracks/index */
#define CDDOPLAYMSF 0x00000002
/* Can play msf to msf */
#define CDDOPLAYBLOCKS 0x00000004
/* Can play range of blocks */
#define CDDOPAUSE 0x00000100
/* Output can be paused */
#define CDDORESUME 0x00000200
/* Output can be resumed */
#define CDDORESET 0x00000400
/* Drive can be completely reset */
#define CDDOSTART 0x00000800
/* Audio can be started */
#define CDDOSTOP 0x00001000
/* Audio can be stopped */
#define CDDOPITCH 0x00002000
/* Audio pitch can be changed */
u_long routing_function;
#define CDREADVOLUME 0x00000001
/* Volume settings can be read */
#define CDSETVOLUME 0x00000002
/* Volume settings can be set */
#define CDSETMONO 0x00000100
/* Output can be set to mono */
#define CDSETSTEREO 0x00000200
/* Output can be set to stereo (def) */
#define CDSETLEFT 0x00000400
/* Output can be set to left only */
#define CDSETRIGHT 0x00000800
/* Output can be set to right only */
#define CDSETMUTE 0x00001000
/* Output can be muted */
#define CDSETPATCH 0x00008000
/* Direct routing control allowed */
u_long special_function;
#define CDDOEJECT 0x00000001
/* The tray can be opened */
#define CDDOCLOSE 0x00000002
/* The tray can be closed */
#define CDDOLOCK 0x00000004
/* The tray can be locked */
#define CDREADHEADER 0x00000100
/* Can read Table of Contents */
#define CDREADENTRIES 0x00000200
/* Can read TOC Entries */
#define CDREADSUBQ 0x00000200
/* Can read Subchannel info */
#define CDREADRW 0x00000400
/* Can read subcodes R-W */
#define CDHASDEBUG 0x00004000
/* The tray has dynamic debugging */
};