summaryrefslogtreecommitdiff
path: root/print/kover/files/patch-cddb_fill.cc
diff options
context:
space:
mode:
authorMark Linimon <linimon@FreeBSD.org>2003-12-29 09:54:25 +0000
committerMark Linimon <linimon@FreeBSD.org>2003-12-29 09:54:25 +0000
commitb1ba755331d12fd3393d916075502601af5b0118 (patch)
treeb0c9085161978c966d9e85517d6e2b818ecd5f81 /print/kover/files/patch-cddb_fill.cc
parent- Update to 3.7.1 (diff)
Add two new KDE apps to deal with CDs:
kcdlabel creates covers, labels and booklets for your CD cases; kover is a WYSIWYG CD cover printer. PR: ports/60674, ports/60673 Submitted by: Markus Brueffer <brueffer@phoenix-systems.de>
Notes
Notes: svn path=/head/; revision=96870
Diffstat (limited to 'print/kover/files/patch-cddb_fill.cc')
-rw-r--r--print/kover/files/patch-cddb_fill.cc114
1 files changed, 114 insertions, 0 deletions
diff --git a/print/kover/files/patch-cddb_fill.cc b/print/kover/files/patch-cddb_fill.cc
new file mode 100644
index 000000000000..7afc9b6a1d20
--- /dev/null
+++ b/print/kover/files/patch-cddb_fill.cc
@@ -0,0 +1,114 @@
+--- kover/cddb_fill.cc.orig Mon Dec 29 03:32:23 2003
++++ kover/cddb_fill.cc Mon Dec 29 03:53:52 2003
+@@ -67,6 +67,11 @@
+ #include "proxy_auth.h"
+ #include "categories.h"
+
++#ifdef __FreeBSD__
++#include <sys/cdio.h>
++#define CDROM_LEADOUT 0xAA
++#endif
++
+ extern "C" {
+
+ #ifdef HAVE_LINUX_CDROM_H
+@@ -263,6 +268,10 @@
+ globals.cdrom_device = strdup("/dev/cdrom");
+
+ if ((cd_fd = open(globals.cdrom_device, O_RDONLY | O_NONBLOCK)) < 0) {
++#ifdef __FreeBSD__
++ emit statusText(QString(tr("Error while opening "))
++ + QString(globals.cdrom_device));
++#else
+ switch (errno) {
+ case EACCES:
+ emit statusText(QString(tr
+@@ -281,9 +290,11 @@
+ emit statusText(QString(tr("Unknown error while opening "))
+ + QString(globals.cdrom_device));
+ }
++#endif
+ return false;
+ }
+
++#ifndef __FreeBSD__
+ ds = ioctl(cd_fd, CDROM_DISC_STATUS);
+
+ switch (ds) {
+@@ -300,6 +311,7 @@
+ return false;
+ }
+ _DEBUG_ fprintf(stderr, "CD opened: %d\n", ds);
++#endif
+
+ return true;
+ }
+@@ -314,8 +326,13 @@
+
+ bool CDDB_Fill::readTOC()
+ {
++#ifdef __FreeBSD__
++ ioc_toc_header hdr;
++ ioc_read_toc_single_entry entry;
++#else
+ cdrom_tochdr hdr;
+ cdrom_tocentry entry;
++#endif
+ int i, pos;
+ _DEBUG_ fprintf(stderr, "Reading TOC\n");
+
+@@ -327,7 +344,11 @@
+
+ emit statusText(tr("Reading table of contents..."));
+
++#ifdef __FreeBSD__
++ if (ioctl(cd_fd, CDIOREADTOCHEADER, &hdr) == -1) {
++#else
+ if (ioctl(cd_fd, CDROMREADTOCHDR, &hdr)) {
++#endif
+ emit statusText(tr("Error while reading table of contents!"));
+
+ return false;
+@@ -336,24 +357,41 @@
+ cdinfo.artist = "Artist";
+ cdinfo.cdname = "Title";
+ cdinfo.length = 0;
++#ifdef __FreeBSD__
++ cdinfo.ntracks = hdr.ending_track;
++#else
+ cdinfo.ntracks = hdr.cdth_trk1;
+-
++#endif
+ cdinfo.trk.clear();
+
+ for (i = 0; i <= cdinfo.ntracks; i++) {
+ if (i == cdinfo.ntracks)
++#ifdef __FreeBSD__
++ entry.track = CDROM_LEADOUT;
++ else
++ entry.track = i + 1;
++ entry.address_format = CD_MSF_FORMAT;
++ if (ioctl(cd_fd, CDIOREADTOCENTRY, &entry) == -1) {
++#else
+ entry.cdte_track = CDROM_LEADOUT;
+ else
+ entry.cdte_track = i + 1;
+ entry.cdte_format = CDROM_MSF;
+ if (ioctl(cd_fd, CDROMREADTOCENTRY, &entry)) {
++#endif
+ emit statusText(tr("Error while reading TOC entry!"));
+
+ return false;
+ }
+
++#ifdef __FreeBSD__
++ cdinfo.trk.append(new track_info(i + 1, entry.entry.addr.msf.minute,
++ entry.entry.addr.msf.second, entry.entry.addr.msf.frame));
++
++#else
+ cdinfo.trk.append(new track_info(i + 1, entry.cdte_addr.msf.minute,
+ entry.cdte_addr.msf.second, entry.cdte_addr.msf.frame));
++#endif
+ }
+
+ pos = cdinfo.trk.first()->length;