I am uploading a NMU to DELAYED/10 in order to fix this.
Please find the debdiff attached.
diff -Nru ascd-0.13.2/README_CDDB ascd-0.13.2/README_CDDB
--- ascd-0.13.2/README_CDDB 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/README_CDDB 1970-01-01 00:00:00.000000000 +0000
@@ -1,24 +0,0 @@
-AScd CDDB patch
-N. Rutman 10/2/2001
-nat...@gordian.com
-
-
-AScd 0.13.2
-http://worldserver.oleane.com/rsn/ascd-download.html
-
-The modification to ascd/faktory.c fixes a segfault bug. The other mods
-finish and enable the CDDB support in libworkman, so libworkman will now
-lookup unknown CD's in CDDB, store them in the local database, and AScd
-will show that info. (Compiling libworkman with -DDEBUG will print the
-CDDB query and response.)
-
-To use CDDB support, add a ~/.workmanrc file with something like:
-cddbprotocol cddbp
-cddbmailadress nat...@nowhere.com
-cddbserver freedb.freedb.org
-
-Full CDDB options in ~/.workmanrc are:
-cddbprotocol [cddbp|http]
-cddbserver [server(:port)] default port is 888 for cddbp, 80 for http
-cddbpathtocgi [cgipath] default is /~cddb/cddb.cgi
-cddbproxy [proxyserver(:port)]
diff -Nru ascd-0.13.2/ascd/README ascd-0.13.2/ascd/README
--- ascd-0.13.2/ascd/README 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/ascd/README 1999-05-17 21:16:19.000000000 +0000
@@ -110,7 +110,7 @@
Add a line in your ~/.steprc file:
- *Wharf - - Swallow "ascd" ascd -device /dev/cdrom &
+ *Wharf - - Swallow "ascd" /usr/local/bin/ascd -device /dev/wcd0a &
(customized to your system settings of course!)
diff -Nru ascd-0.13.2/ascd/ascd.c ascd-0.13.2/ascd/ascd.c
--- ascd-0.13.2/ascd/ascd.c 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/ascd/ascd.c 1999-07-05 16:58:51.000000000 +0000
@@ -690,7 +690,7 @@
strcpy(led_text, "");
strcpy(theme, "default");
- strcpy(xv, "display");
+ strcpy(xv, "xv");
/* the WorkMan database. It's still not used in ascd, but we need this
to start the WorkMan code
diff -Nru ascd-0.13.2/ascd/config.h ascd-0.13.2/ascd/config.h
--- ascd-0.13.2/ascd/config.h 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/ascd/config.h 1999-09-04 23:34:04.000000000 +0000
@@ -2,5 +2,5 @@
#define DEFAULT_COLOR "#2FAFAF"
#define DEFAULT_BGCOLOR "#000000"
#define DEFAULTDEVICE "/dev/cdrom"
-#define THDIR "/usr/share/ascd"
+#define THDIR "/usr/local/share/AScd"
#define VERSION "0.13.2"
diff -Nru ascd-0.13.2/ascd/dirs.h ascd-0.13.2/ascd/dirs.h
--- ascd-0.13.2/ascd/dirs.h 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/ascd/dirs.h 1999-09-04 23:34:04.000000000 +0000
@@ -1,4 +1,3 @@
-#define CBINDIR /usr/bin
-#define CMANDIR /usr/man/man1
-#define CTHDIR /usr/share/ascd
-
+#define CBINDIR /usr/local/bin
+#define CMANDIR /usr/local/man/man1
+#define CTHDIR /usr/local/share/AScd
diff -Nru ascd-0.13.2/ascd/faktory.c ascd-0.13.2/ascd/faktory.c
--- ascd-0.13.2/ascd/faktory.c 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/ascd/faktory.c 1999-07-05 16:52:38.000000000 +0000
@@ -56,19 +56,13 @@
int fak_parse_line(char *ligne, char *key, char *arguments)
{
unsigned int pos = 0;
- unsigned int len = strlen(ligne);
- if ((len > 0) && (ligne[0] != '#')) {
- while ((ligne[pos] != ' ') && (ligne[pos] != 9) && (pos < len))
- pos++;
+ if ((strlen(ligne) > 0) && (ligne[0] != '#')) {
+ while ((ligne[pos] != ' ') && (ligne[pos] != 9)) pos++;
tes_sncpy(key, ligne, pos);
- while (((ligne[pos] == ' ') || (ligne[pos] == 9))
- && (pos < len))
- pos++;
- if (pos < len)
- strcpy(arguments, ligne + pos);
- else
- strcpy(arguments, "");
+ while (((ligne[pos] == ' ') || (ligne[pos] == 9)) && (pos <
strlen(ligne))) pos++;
+ if (pos < strlen(ligne)) strcpy(arguments, ligne + pos);
+ else strcpy(arguments, "");
if (debug > 2) fprintf(stderr,"++ input: [%s]\n key: [%s]\n args:
[%s]\n", ligne, key, arguments);
return TRUE;
} else {
diff -Nru ascd-0.13.2/ascd/misc/config.h.default
ascd-0.13.2/ascd/misc/config.h.default
--- ascd-0.13.2/ascd/misc/config.h.default 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/ascd/misc/config.h.default 1999-04-19 17:25:01.000000000
+0000
@@ -2,4 +2,4 @@
#define DEFAULT_COLOR "#2FAFAF"
#define DEFAULT_BGCOLOR "#000000"
#define DEFAULTDEVICE "/dev/cdrom"
-#define THDIR "/usr/share/ascd"
+#define THDIR "/usr/local/share/AScd"
diff -Nru ascd-0.13.2/ascd/misc/dirs.h.default
ascd-0.13.2/ascd/misc/dirs.h.default
--- ascd-0.13.2/ascd/misc/dirs.h.default 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/ascd/misc/dirs.h.default 1999-04-19 17:24:12.000000000
+0000
@@ -1,4 +1,3 @@
-#define CBINDIR /usr/bin
-#define CMANDIR /usr/man/man1
-#define CTHDIR /usr/share/ascd
-
+#define CBINDIR /usr/local/bin
+#define CMANDIR /usr/local/man/man1
+#define CTHDIR /usr/local/share/AScd
diff -Nru ascd-0.13.2/ascd/workman/wm_config.h
ascd-0.13.2/ascd/workman/wm_config.h
--- ascd-0.13.2/ascd/workman/wm_config.h 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/ascd/workman/wm_config.h 1999-05-05 16:34:22.000000000
+0000
@@ -186,7 +186,7 @@
* probably want this, but it will cause WorkMan to not work on IDE
* drives.
*/
-/*#define LINUX_SCSI_PASSTHROUGH 1*/
+#define LINUX_SCSI_PASSTHROUGH 1
/*
* Which device should be opened by WorkMan at default?
diff -Nru ascd-0.13.2/config.h ascd-0.13.2/config.h
--- ascd-0.13.2/config.h 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/config.h 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-#define VERSION "0.13.2"
diff -Nru ascd-0.13.2/debian/README_CDDB ascd-0.13.2/debian/README_CDDB
--- ascd-0.13.2/debian/README_CDDB 1970-01-01 00:00:00.000000000 +0000
+++ ascd-0.13.2/debian/README_CDDB 2024-02-17 21:38:08.000000000 +0000
@@ -0,0 +1,24 @@
+AScd CDDB patch
+N. Rutman 10/2/2001
+nat...@gordian.com
+
+
+AScd 0.13.2
+http://worldserver.oleane.com/rsn/ascd-download.html
+
+The modification to ascd/faktory.c fixes a segfault bug. The other mods
+finish and enable the CDDB support in libworkman, so libworkman will now
+lookup unknown CD's in CDDB, store them in the local database, and AScd
+will show that info. (Compiling libworkman with -DDEBUG will print the
+CDDB query and response.)
+
+To use CDDB support, add a ~/.workmanrc file with something like:
+cddbprotocol cddbp
+cddbmailadress nat...@nowhere.com
+cddbserver freedb.freedb.org
+
+Full CDDB options in ~/.workmanrc are:
+cddbprotocol [cddbp|http]
+cddbserver [server(:port)] default port is 888 for cddbp, 80 for http
+cddbpathtocgi [cgipath] default is /~cddb/cddb.cgi
+cddbproxy [proxyserver(:port)]
diff -Nru ascd-0.13.2/debian/changelog ascd-0.13.2/debian/changelog
--- ascd-0.13.2/debian/changelog 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/debian/changelog 2024-02-17 21:38:08.000000000 +0000
@@ -1,3 +1,10 @@
+ascd (0.13.2-7.1) unstable; urgency=medium
+
+ * Non-maintainer upload
+ * Convert to source format 3.0 (closes: #1007477)
+
+ -- Bastian Germann <b...@debian.org> Sat, 17 Feb 2024 21:38:08 +0000
+
ascd (0.13.2-7) unstable; urgency=medium
* Fix build issues
diff -Nru ascd-0.13.2/debian/patches/debian.patch
ascd-0.13.2/debian/patches/debian.patch
--- ascd-0.13.2/debian/patches/debian.patch 1970-01-01 00:00:00.000000000
+0000
+++ ascd-0.13.2/debian/patches/debian.patch 2024-02-17 21:38:08.000000000
+0000
@@ -0,0 +1,799 @@
+--- ascd-0.13.2.orig/ascd/README
++++ ascd-0.13.2/ascd/README
+@@ -110,7 +110,7 @@ theme files are *not* compatible.
+
+ Add a line in your ~/.steprc file:
+
+- *Wharf - - Swallow "ascd" /usr/local/bin/ascd -device /dev/wcd0a &
++ *Wharf - - Swallow "ascd" ascd -device /dev/cdrom &
+
+ (customized to your system settings of course!)
+
+--- ascd-0.13.2.orig/ascd/ascd.c
++++ ascd-0.13.2/ascd/ascd.c
+@@ -690,7 +690,7 @@ int main(int argc, char *argv[])
+
+ strcpy(led_text, "");
+ strcpy(theme, "default");
+- strcpy(xv, "xv");
++ strcpy(xv, "display");
+
+ /* the WorkMan database. It's still not used in ascd, but we need this
+ to start the WorkMan code
+--- ascd-0.13.2.orig/ascd/config.h
++++ ascd-0.13.2/ascd/config.h
+@@ -2,5 +2,5 @@
+ #define DEFAULT_COLOR "#2FAFAF"
+ #define DEFAULT_BGCOLOR "#000000"
+ #define DEFAULTDEVICE "/dev/cdrom"
+-#define THDIR "/usr/local/share/AScd"
++#define THDIR "/usr/share/ascd"
+ #define VERSION "0.13.2"
+--- ascd-0.13.2.orig/ascd/dirs.h
++++ ascd-0.13.2/ascd/dirs.h
+@@ -1,3 +1,4 @@
+-#define CBINDIR /usr/local/bin
+-#define CMANDIR /usr/local/man/man1
+-#define CTHDIR /usr/local/share/AScd
++#define CBINDIR /usr/bin
++#define CMANDIR /usr/man/man1
++#define CTHDIR /usr/share/ascd
++
+--- ascd-0.13.2.orig/ascd/faktory.c
++++ ascd-0.13.2/ascd/faktory.c
+@@ -56,13 +56,19 @@ char *tes_xgets(char *chaine, int nb, FI
+ int fak_parse_line(char *ligne, char *key, char *arguments)
+ {
+ unsigned int pos = 0;
++ unsigned int len = strlen(ligne);
+
+- if ((strlen(ligne) > 0) && (ligne[0] != '#')) {
+- while ((ligne[pos] != ' ') && (ligne[pos] != 9)) pos++;
++ if ((len > 0) && (ligne[0] != '#')) {
++ while ((ligne[pos] != ' ') && (ligne[pos] != 9) && (pos < len))
++ pos++;
+ tes_sncpy(key, ligne, pos);
+- while (((ligne[pos] == ' ') || (ligne[pos] == 9)) && (pos <
strlen(ligne))) pos++;
+- if (pos < strlen(ligne)) strcpy(arguments, ligne + pos);
+- else strcpy(arguments, "");
++ while (((ligne[pos] == ' ') || (ligne[pos] == 9))
++ && (pos < len))
++ pos++;
++ if (pos < len)
++ strcpy(arguments, ligne + pos);
++ else
++ strcpy(arguments, "");
+ if (debug > 2) fprintf(stderr,"++ input: [%s]\n key: [%s]\n args:
[%s]\n", ligne, key, arguments);
+ return TRUE;
+ } else {
+--- ascd-0.13.2.orig/ascd/misc/config.h.default
++++ ascd-0.13.2/ascd/misc/config.h.default
+@@ -2,4 +2,4 @@
+ #define DEFAULT_COLOR "#2FAFAF"
+ #define DEFAULT_BGCOLOR "#000000"
+ #define DEFAULTDEVICE "/dev/cdrom"
+-#define THDIR "/usr/local/share/AScd"
++#define THDIR "/usr/share/ascd"
+--- ascd-0.13.2.orig/ascd/misc/dirs.h.default
++++ ascd-0.13.2/ascd/misc/dirs.h.default
+@@ -1,3 +1,4 @@
+-#define CBINDIR /usr/local/bin
+-#define CMANDIR /usr/local/man/man1
+-#define CTHDIR /usr/local/share/AScd
++#define CBINDIR /usr/bin
++#define CMANDIR /usr/man/man1
++#define CTHDIR /usr/share/ascd
++
+--- ascd-0.13.2.orig/ascd/workman/wm_config.h
++++ ascd-0.13.2/ascd/workman/wm_config.h
+@@ -186,7 +186,7 @@
+ * probably want this, but it will cause WorkMan to not work on IDE
+ * drives.
+ */
+-#define LINUX_SCSI_PASSTHROUGH 1
++/*#define LINUX_SCSI_PASSTHROUGH 1*/
+
+ /*
+ * Which device should be opened by WorkMan at default?
+--- ascd-0.13.2.orig/libworkman/Config
++++ ascd-0.13.2/libworkman/Config
+@@ -33,7 +33,7 @@ XCOMM
+ XCOMM -------------------------------------------------------------------
+ XCOMM Directory Prefix
+ XCOMM -------------------------------------------------------------------
+-DESTDIR=/usr/local/
++DESTDIR=/usr/
+
+ XCOMM -------------------------------------------------------------------
+ XCOMM LibWorkMan include file target relative to DSTDIR
+@@ -43,6 +43,6 @@ WMINCDIR=include/workman
+
+
+ XCOMM -------------------------------------------------------------------
+-#define SHARED_LIBWORKMAN
++#undef SHARED_LIBWORKMAN
+ LIBDIR=lib
+
+--- ascd-0.13.2.orig/libworkman/cddb.c
++++ ascd-0.13.2/libworkman/cddb.c
+@@ -33,7 +33,7 @@ static char cddb_id[] = "$Id: cddb.c,v 1
+
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <strings.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -49,6 +49,12 @@ static char cddb_id[] = "$Id: cddb.c,v 1
+ #include "include/wm_cdinfo.h"
+ #include "include/wm_helpers.h"
+
++#ifdef DEBUG
++#define Trace(x) fprintf x
++#else
++#define Trace(x)
++#endif
++
+ /*
+ * This is for identifying WorkMan at CDDB servers
+ */
+@@ -57,41 +63,9 @@ static char cddb_id[] = "$Id: cddb.c,v 1
+
+ struct wm_cddb cddb;
+
+-int cur_cddb_protocol;
+-char *cur_cddb_server;
+-char *cur_cddb_mail_adress;
+-char *cur_cddb_path_to_cgi;
+-char *cur_cddb_proxy_server;
+-
+ int Socket;
+ FILE *Connection;
+
+-/*
+- *
+- */
+-void
+-cddb_cur2struct(void)
+-{
+- cddb.protocol = cur_cddb_protocol;
+- strcpy(cddb.cddb_server, cur_cddb_server);
+- strcpy(cddb.mail_adress, cur_cddb_mail_adress);
+- strcpy(cddb.path_to_cgi, cur_cddb_path_to_cgi);
+- strcpy(cddb.proxy_server, cur_cddb_proxy_server);
+-} /* cddb_cur2struct() */
+-
+-/*
+- *
+- */
+-void
+-cddb_struct2cur(void)
+-{
+- cur_cddb_protocol = cddb.protocol;
+- cur_cddb_server = (cddb.cddb_server);
+- cur_cddb_mail_adress = (cddb.mail_adress);
+- cur_cddb_path_to_cgi = (cddb.path_to_cgi);
+- cur_cddb_proxy_server = (cddb.proxy_server);
+-} /* cddb_struct2cur() */
+-
+
+ /*
+ * Subroutine from cddb_discid
+@@ -146,23 +120,17 @@ cddb_discid(void)
+ return ((n % 0xff) << 24 | t << 8 | thiscd.ntracks);
+ } /* cddb_discid() */
+
+-/*
+- * Split a string into two components according to the first occurance of
+- * the delimiter.
+- */
+-char *
+-string_split(char *line, char delim)
++
++/* Split string at delim */
++char *string_split(char *line, char delim)
+ {
+ char *p1;
+
+- for (p1=line;*p1;p1++)
+- {
+- if(*p1 == delim)
+- {
++ p1 = strchr(line, (int)delim);
++ if (p1) {
+ *p1 = 0;
+ return ++p1;
+ }
+- }
+ return (NULL);
+ } /* string_split() */
+
+@@ -176,8 +144,18 @@ string_makehello(char *line,char delim)
+ char mail[84],*host;
+
+ strcpy(mail,cddb.mail_adress);
+- host=string_split(mail,'@');
+-
++ host = string_split(mail,'@');
++ if (!host) {
++ int len;
++ if (getlogin())
++ strncpy(mail, getlogin(), 83);
++ else
++ strcpy(mail, "nobody");
++ len = strlen(mail);
++ host = mail + len + 1;
++ gethostname(host, 83-len);
++ Trace((stderr, "default email %s@%s\n", mail, host));
++ }
+ sprintf(line,"%shello%c%s%c%s%c%s%c%s",
+ delim == ' ' ? "cddb " : "&",
+ delim == ' ' ? ' ' : '=',
+@@ -193,26 +171,40 @@ string_makehello(char *line,char delim)
+ int
+ connect_open(void)
+ {
+- char *host;
++ char host[200], *prt;
+ struct hostent *hp;
+ struct sockaddr_in soc_in;
+- int port;
++ int port = 0;
++
++ Trace((stderr, "opening connection to cddb server\n"));
++
++ /* in case of failure */
++ Connection = NULL;
+
+ if(cddb.protocol == 3) /* http proxy */
+- host = strdup(cddb.proxy_server);
++ strcpy(host, cddb.proxy_server);
+ else
+- host = strdup(cddb.cddb_server);
+- /*
+- * t=string_split(host,':');
+- */
+- port=atoi(string_split(host,':'));
++ strcpy(host, cddb.cddb_server);
++
++ Trace((stderr, "host %s\n", host));
++
++ prt = string_split(host,':');
++ if (prt)
++ port = atoi(prt);
++
++ /* Defaults */
+ if(!port)
+- port=8880;
++ if (cddb.protocol == 1)
++ port = 888;
++ else
++ port = 80;
++ if (cddb.path_to_cgi[0] == 0)
++ sprintf(cddb.path_to_cgi, "/~cddb/cddb.cgi");
+
+- printf("%s:%d\n",host,port);
+- hp =gethostbyname(host);
++ Trace((stderr, "%s : %d\n",host,port));
+
+- if (hp == NULL)
++ hp = gethostbyname(host);
++ if (!hp)
+ {
+ static struct hostent def;
+ static struct in_addr defaddr;
+@@ -220,10 +212,12 @@ connect_open(void)
+ static char namebuf[128];
+ int inet_addr();
+
++ Trace((stderr, "gethostbyname failed: %s\n", host));
++
+ defaddr.s_addr = inet_addr(host);
+ if (defaddr.s_addr == -1)
+ {
+- printf("unknown host: %s\n", host);
++ Trace((stderr, "unknown host: %s\n", host));
+ return (-1);
+ }
+ strcpy(namebuf, host);
+@@ -234,6 +228,7 @@ connect_open(void)
+ def.h_aliases = 0;
+ hp = &def;
+ }
++
+ soc_in.sin_family = hp->h_addrtype;
+ bcopy(hp->h_addr, (char *)&soc_in.sin_addr, hp->h_length);
+ soc_in.sin_port = htons(port);
+@@ -274,6 +269,8 @@ connect_getline(char *line)
+ {
+ char c;
+
++ /* FIXME timeout, return empty string (not null) */
++
+ while ((c = getc(Connection)) != '\n')
+ {
+ *line = c;
+@@ -298,15 +295,15 @@ connect_read_entry(void)
+ {
+ connect_getline(tempbuf);
+
+- t=string_split(tempbuf,'=');
+- if(t != NULL)
++ t = string_split(tempbuf,'=');
++ if (t != NULL)
+ {
+ type=tempbuf[0];
+
+ if(strncmp("TITLE",tempbuf+1,5))
+ continue;
+
+- if('D' == type)
++ if(type == 'D')
+ {
+ /*
+ * Annahme: "Interpret / Titel" ist falsch.
+@@ -326,18 +323,11 @@ connect_read_entry(void)
+ }
+ strcpy(cd->artist,t);
+ }
+-
+- if('T' == type)
++ else if(type == 'T')
+ {
+ trknr=atoi(tempbuf+6);
+- /*
+- * printf("Track %d:%s\n",trknr,t);
+- */
+ wm_strmcpy(&cd->trk[trknr].songname,t);
+ }
+- /*
+- * fprintf(stderr, "%s %s\n",tempbuf,t);
+- */
+ }
+ }
+ } /* connect_read_entry() */
+@@ -372,22 +362,22 @@ http_send(char* line)
+ char tempbuf[2000];
+
+ write(Socket, "GET ", 4);
+- printf("GET ");
++ Trace((stderr, "GET "));
+ if(cddb.protocol == 3)
+ {
+ write(Socket, "http://", 7);
+ write(Socket, cddb.cddb_server, strlen(cddb.cddb_server));
+- printf("http://%s",cddb.cddb_server);
++ Trace((stderr, "http://%s",cddb.cddb_server));
+ }
+ write(Socket, cddb.path_to_cgi, strlen(cddb.path_to_cgi));
+ write(Socket, "?cmd=" ,5);
+ write(Socket, line, strlen(line));
+- printf("%s?cmd=%s",cddb.path_to_cgi,line);
++ Trace((stderr, "%s?cmd=%s",cddb.path_to_cgi,line));
+ string_makehello(tempbuf,'+');
+ write(Socket, tempbuf, strlen(tempbuf));
+- printf("%s",tempbuf);
++ Trace((stderr, "%s",tempbuf));
+ write(Socket, "&proto=1 HTTP/1.0\n\n", 19);
+- printf("&proto=1 HTTP/1.0\n");
++ Trace((stderr, "&proto=1 HTTP/1.0\n"));
+ do
+ connect_getline(tempbuf);
+ while(strcmp(tempbuf,""));
+@@ -406,120 +396,111 @@ http_read(char *category, unsigned int i
+
+ /*
+ * The main routine called from the ui
++ * returns 0 on success, -1 on err
+ */
+-void
++int
+ cddb_request(void)
+ {
+ int i;
+ char tempbuf[2000];
+ extern int cur_ntracks;
+-
+- int status;
++ int status, rv = 0;
+ char category[20];
+ unsigned int id;
+
+- strcpy(cddb.cddb_server,"localhost:888");
+- strcpy(cddb.mail_adress,"svo...@bigfoot.com");
+- /*
+- * cddb.protocol = 1;
+- */
+ wipe_cdinfo();
+
+ switch(cddb.protocol)
+ {
+ case 1: /* cddbp */
+- printf("USING CDDBP\n");
+- printf("open\n");
+- connect_open();
++ Trace((stderr, "USING CDDBP\n"));
++ Trace((stderr, "open\n"));
++ if (connect_open()) {
++ Trace((stderr, "connect failed.\n"));
++ return -1;
++ }
+ connect_getline(tempbuf);
+- printf("[%s]\n",tempbuf);
+- /*
+- * if(atoi(tempbuf) == 201) return;
+- */
+-
+- /*
+- * strcpy(tempbuf,"cddb hello svolli bigfoot.com Eierkratzer
eins");
+- */
++ Trace((stderr, "[%s]\n",tempbuf));
++
+ string_makehello(tempbuf,' ');
+- fprintf(stderr, "%s\n", tempbuf);
++ Trace((stderr, "%s\n", tempbuf));
+ cddbp_send(tempbuf);
+ connect_getline(tempbuf);
+- printf("[%s]\n",tempbuf);
++ Trace((stderr, "[%s]\n",tempbuf));
+
+- printf("query\n");
++ Trace((stderr, "query\n"));
+ sprintf(tempbuf, "cddb query %08x
%d",thiscd.cddbid,thiscd.ntracks);
+ for (i = 0; i < cur_ntracks; i++)
+ if (thiscd.trk[i].section < 2)
+ sprintf(tempbuf + strlen(tempbuf), " %d",
+ thiscd.trk[i].start);
+ sprintf(tempbuf + strlen(tempbuf), " %d\n", thiscd.length);
+- printf(">%s<\n",tempbuf);
++ Trace((stderr, ">%s<\n",tempbuf));
+ cddbp_send(tempbuf);
+ connect_getline(tempbuf);
+- printf("[%s]\n",tempbuf);
++ Trace((stderr, "[%s]\n",tempbuf));
+
+ status=atoi(tempbuf);
+- /*
+- * fprintf(stderr, "status:%d\n",status);
+- * fprintf(stderr,"category:%s\n",category);
+- * fprintf(stderr,"id:%s\n",id);
+- */
++ Trace((stderr, "status:%d\n",status));
++
+ if(status == 200) /* Exact match */
+ {
+ sscanf(tempbuf,"%d %s %08x",&status,category,&id);
+ cddbp_read(category,id);
+ connect_read_entry();
+ }
+-
+- if(status == 211) /* Unexact match, multiple possible
++ else if(status == 211) /* Unexact match, multiple possible
+ * Hack: always use first. */
+ {
+ connect_getline(tempbuf);
++ Trace((stderr, "[%s]\n",tempbuf));
+ sscanf(tempbuf,"%s %08x",category,&id);
+- while(strcmp(tempbuf,"."))
++ while(strcmp(tempbuf,".")) {
+ connect_getline(tempbuf);
++ Trace((stderr, "ignoring [%s]\n",tempbuf));
++ }
+ cddbp_read(category,id);
+ connect_read_entry();
+ }
+-
++ else
++ rv = -1;
+ cddbp_send("quit");
+ connect_close();
+- printf("close\n");
+- break;
++ Trace((stderr, "close\n"));
++ return rv;
+ case 2: /* http */
+ case 3: /* http proxy */
+- printf("USING HTTP%s\n",
+- (cddb.protocol == 3) ? " WITH PROXY" : "");
+- printf("query\n");
++ Trace((stderr, "USING HTTP%s\n",
++ (cddb.protocol == 3) ? " WITH PROXY" : ""));
++ Trace((stderr, "query\n"));
+ sprintf(tempbuf,
"cddb+query+%08x+%d",thiscd.cddbid,thiscd.ntracks);
+ for (i = 0; i < cur_ntracks; i++)
+ if (thiscd.trk[i].section < 2)
+ sprintf(tempbuf + strlen(tempbuf), "+%d",
+ thiscd.trk[i].start);
+ sprintf(tempbuf + strlen(tempbuf), "+%d", thiscd.length);
+- printf(">%s<\n",tempbuf);
+- connect_open();
++ Trace((stderr, ">%s<\n",tempbuf));
++ if (connect_open()) {
++ Trace((stderr, "connect failed.\n"));
++ return -1;
++ }
+ http_send(tempbuf);
+ connect_getline(tempbuf);
+- printf("[%s]\n",tempbuf);
++ Trace((stderr, "[%s]\n",tempbuf));
+
+ status=atoi(tempbuf);
+- /*
+- * fprintf(stderr, "status:%d\n",status);
+- * fprintf(stderr, "category:%s\n",category);
+- * fprintf(stderr, "id:%s\n",id);
+- */
+-
+ if(status == 200) /* Exact match */
+ {
+ connect_close();
+- connect_open();
++ if (connect_open()) {
++ Trace((stderr, "connect failed.\n"));
++ return -1;
++ }
+ sscanf(tempbuf,"%d %s %08x",&status,category,&id);
+ http_read(category,id);
+ connect_read_entry();
+ }
+-
+- if(status == 211) /* Unexact match, multiple possible
++ else if(status == 211) /* Unexact match, multiple possible
+ * Hack: always use first. */
+ {
+ connect_getline(tempbuf);
+@@ -527,15 +508,24 @@ cddb_request(void)
+ while(strcmp(tempbuf,"."))
+ connect_getline(tempbuf);
+ connect_close();
+- connect_open();
++ if (connect_open()) {
++ Trace((stderr, "connect failed.\n"));
++ return -1;
++ }
+ http_read(category,id);
+ connect_read_entry();
+ }
++ else
++ rv = -1;
+ /* moved close above break */
+ connect_close();
+- break;
++ return rv;
+ default: /* off */
+ break;
+ }
++ return -1;
+ } /* cddb_request() */
+
++
++
++
+--- ascd-0.13.2.orig/libworkman/database.c
++++ ascd-0.13.2/libworkman/database.c
+@@ -33,6 +33,8 @@ static char database_id[] = "$Id: databa
+ #define DBFILE "/.workmandb"
+ #define FUZZFRAMES 75
+
++#define ASYNC_CDDB 1
++
+ #include <errno.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+@@ -44,6 +46,10 @@ static char database_id[] = "$Id: databa
+ #include <sys/param.h>
+ #include <sys/time.h>
+ #include <sys/stat.h>
++#ifdef ASYNC_CDDB
++#include <signal.h>
++#include <sys/wait.h>
++#endif
+ #include "include/wm_config.h"
+ #include "include/wm_helpers.h"
+ #include "include/wm_struct.h"
+@@ -80,6 +86,11 @@ extern int cur_ntracks, cur_nsections;
+ int mark_a = 0;
+ int mark_b = 0;
+
++static int _save(int saverc);
++static int check_in_cddb();
++static int wakeup_from_cddb();
++static int cddb_lock = 0;
++
+
+ /*
+ *
+@@ -1011,9 +1022,7 @@ plnomem:
+ if (searching > 1) /* A near match has been found. Good enough. */
+ searching = 0;
+
+- cddb_struct2cur();
+ return (! searching);
+-
+ } /* search_db() */
+
+ /*
+@@ -1164,6 +1173,29 @@ load( void )
+
+ free(trklist);
+
++ /* If we didn't find it, try CDDB */
++#ifndef ASYNC_CDDB
++ /* Syncronous - wait for query to return */
++ if (cddb.protocol && !found_in_rc && !found_in_db)
++ check_in_cddb();
++#else
++ /* Asyncronous */
++ if (cddb.protocol && !found_in_rc && !found_in_db && !cddb_lock) {
++ /* Make sure we only have one request out to CDDB at a time.
++ In case server is down or something, we don't want to keep
++ forking children. */
++ cddb_lock = 1;
++ signal(SIGCHLD, (sig_t)wakeup_from_cddb);
++ if (!fork()) {
++ /* Child */
++ int rv;
++ cddb_lock = 1; /* extra safety, can't hurt */
++ rv = check_in_cddb();
++ exit(rv);
++ }
++ }
++#endif
++
+ if (cur_playnew == -1)
+ cur_playnew = 0;
+
+@@ -1177,6 +1209,41 @@ load( void )
+ #endif
+ } /* load() */
+
++
++/* Lookup cddb data and save it to workman database */
++static int check_in_cddb()
++{
++ if (!cddb_request()) {
++ /* Found it, let's save it so we don't have to look it
++ up again. */
++#ifdef DEBUG
++ fprintf(stderr, "\nFound in CDDB:");
++ fprintf(stderr, "%s", print_cdinfo(cd, 0));
++#endif
++ /* Save in db only, not rc, because we haven't put any
++ customizations in, and I don't want to clutter the
++ rc needlessly. */
++ _save(0);
++ return 0;
++ }
++ return -1;
++}
++
++/* Called when the fork above finishes. */
++static int wakeup_from_cddb()
++{
++ int status;
++ cddb_lock = 0;
++ /* Child had new data loaded, but we don't share memory, so we have to
++ reload here for updated data */
++ /* Only reload if child was successful, otherwise we keep trying */
++ wait(&status);
++ if (WIFEXITED(status) && (!WEXITSTATUS(status))) {
++ load();
++ }
++}
++
++
+ /*
+ * Load program settings from the rcfile.
+ */
+@@ -1221,6 +1288,8 @@ save_globals(FILE *fp)
+ long curpos;
+ int globesize, hit_cdent = 0, c = 0;
+
++ printf("saving globals\n");
++
+ if (otherrc)
+ wm_strmcpy(&globes, otherrc);
+
+@@ -1252,6 +1321,7 @@ save_globals(FILE *fp)
+
+ if(cddb.cddb_server[0])
+ {
++ printf("writing cddb server data\n");
+ sprintf(temp,"cddbserver %s\n",
+ cddb.cddb_server);
+ wm_strmcat(&globes, temp);
+@@ -1260,14 +1330,14 @@ save_globals(FILE *fp)
+ if(cddb.path_to_cgi[0])
+ {
+ sprintf(temp,"cddbpathtocgi %s\n",
+- cddb.mail_adress);
++ cddb.path_to_cgi);
+ wm_strmcat(&globes, temp);
+ }
+
+ if(cddb.proxy_server[0])
+ {
+ sprintf(temp,"cddbproxy %s\n",
+- cddb.mail_adress);
++ cddb.proxy_server);
+ wm_strmcat(&globes, temp);
+ }
+ }
+@@ -1409,6 +1479,8 @@ save_entry(char *filename, int pref)
+ locked = 1;
+
+ buf = print_cdinfo(cd, pref);
++ if (!buf)
++ fprintf(stderr, "save_entry: print_cdinfo failed\n");
+ len = strlen(buf); /* doesn't return if there's an error */
+
+ rcpos = -1;
+@@ -1500,13 +1572,17 @@ save_entry(char *filename, int pref)
+ * list, unless the entry came from another database file) and to the
+ * personal prefs file.
+ */
+-int
+-save( void )
++int save(void)
++{
++ return _save(1);
++}
++
++static int _save(int saverc)
+ {
+
+ if( wm_db_save_disabled == FALSE )
+ {
+- if (save_entry(rcfile, 1))
++ if (saverc && save_entry(rcfile, 1))
+ return (0);
+
+ if (cd->whichdb == NULL || access(cd->whichdb, W_OK))
+@@ -1519,4 +1595,4 @@ save( void )
+ } else {
+ return( WM_DB_SAVE_DISABLED );
+ }
+-} /* save() */
++} /* _save() */
+--- ascd-0.13.2.orig/libworkman/include/wm_cdda.h
++++ ascd-0.13.2/libworkman/include/wm_cdda.h
+@@ -91,7 +91,6 @@ struct cdda_block {
+ * if there is no support.
+ */
+ #ifdef linux
+-# include <bytesex.h>
+ # include <endian.h>
+ /*
+ * XXX could this be a problem? The results are only 0 and 1 because
+--- ascd-0.13.2.orig/libworkman/include/wm_cddb.h
++++ ascd-0.13.2/libworkman/include/wm_cddb.h
+@@ -37,6 +37,6 @@ void cddb_cur2struct();
+ void cddb_select();
+ void connect_cddb();
+ void update_cddbserver();
+-void cddb_request();
++int cddb_request();
+
+ #endif /* WM_CDDB_H */
+--- ascd-0.13.2.orig/libworkman/include/wm_config.h
++++ ascd-0.13.2/libworkman/include/wm_config.h
+@@ -186,7 +186,7 @@
+ * probably want this, but it will cause WorkMan to not work on IDE
+ * drives.
+ */
+-#define LINUX_SCSI_PASSTHROUGH 1
++/*#define LINUX_SCSI_PASSTHROUGH 1*/
+
+ /*
+ * Which device should be opened by WorkMan at default?
+--- ascd-0.13.2.orig/libworkman/wm_helpers.c
++++ ascd-0.13.2/libworkman/wm_helpers.c
+@@ -29,6 +29,7 @@
+ static char wm_helpers_id[] = "$Id: wm_helpers.c,v 1.7 1999/03/07 08:36:41
dirk Exp $";
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <malloc.h>
+ #include <errno.h>
diff -Nru ascd-0.13.2/debian/patches/series ascd-0.13.2/debian/patches/series
--- ascd-0.13.2/debian/patches/series 1970-01-01 00:00:00.000000000 +0000
+++ ascd-0.13.2/debian/patches/series 2024-02-17 21:38:08.000000000 +0000
@@ -0,0 +1 @@
+debian.patch
diff -Nru ascd-0.13.2/debian/patchlevel.h ascd-0.13.2/debian/patchlevel.h
--- ascd-0.13.2/debian/patchlevel.h 1970-01-01 00:00:00.000000000 +0000
+++ ascd-0.13.2/debian/patchlevel.h 2024-02-17 21:38:08.000000000 +0000
@@ -0,0 +1,7 @@
+/*
+ AScd/libworkman CDDB patch
+ Nathan Rutman
+ 10/2/2001
+*/
+
+#define CDDB_PATCHLEVEL 0.13.2_1
diff -Nru ascd-0.13.2/debian/rules ascd-0.13.2/debian/rules
--- ascd-0.13.2/debian/rules 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/debian/rules 2024-02-17 21:38:08.000000000 +0000
@@ -7,6 +7,7 @@
override_dh_auto_configure:
./default
+ perl -pi -e 's/ar clq/ar cq/' libworkman/Makefile
override_dh_auto_build:
cd libworkman && $(MAKE) LDOPTIONS="$(LDFLAGS)"
diff -Nru ascd-0.13.2/debian/source/format ascd-0.13.2/debian/source/format
--- ascd-0.13.2/debian/source/format 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/debian/source/format 2024-02-17 21:38:08.000000000 +0000
@@ -1,2 +1 @@
-1.0
-
+3.0 (quilt)
diff -Nru ascd-0.13.2/default ascd-0.13.2/default
--- ascd-0.13.2/default 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/default 1999-04-17 20:14:11.000000000 +0000
@@ -6,4 +6,4 @@
./misc/default
cd ..
xmkmf -a
-perl -pi -e 's/ar clq/ar cq/' libworkman/Makefile
+
diff -Nru ascd-0.13.2/libworkman/Config ascd-0.13.2/libworkman/Config
--- ascd-0.13.2/libworkman/Config 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/Config 1999-02-14 09:38:33.000000000 +0000
@@ -33,7 +33,7 @@
XCOMM -------------------------------------------------------------------
XCOMM Directory Prefix
XCOMM -------------------------------------------------------------------
-DESTDIR=/usr/
+DESTDIR=/usr/local/
XCOMM -------------------------------------------------------------------
XCOMM LibWorkMan include file target relative to DSTDIR
@@ -43,6 +43,6 @@
XCOMM -------------------------------------------------------------------
-#undef SHARED_LIBWORKMAN
+#define SHARED_LIBWORKMAN
LIBDIR=lib
diff -Nru ascd-0.13.2/libworkman/cddb.c ascd-0.13.2/libworkman/cddb.c
--- ascd-0.13.2/libworkman/cddb.c 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/cddb.c 1999-05-27 06:37:10.000000000 +0000
@@ -33,7 +33,7 @@
#include <stdio.h>
#include <stdlib.h>
-#include <string.h>
+#include <strings.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -49,12 +49,6 @@
#include "include/wm_cdinfo.h"
#include "include/wm_helpers.h"
-#ifdef DEBUG
-#define Trace(x) fprintf x
-#else
-#define Trace(x)
-#endif
-
/*
* This is for identifying WorkMan at CDDB servers
*/
@@ -63,9 +57,41 @@
struct wm_cddb cddb;
+int cur_cddb_protocol;
+char *cur_cddb_server;
+char *cur_cddb_mail_adress;
+char *cur_cddb_path_to_cgi;
+char *cur_cddb_proxy_server;
+
int Socket;
FILE *Connection;
+/*
+ *
+ */
+void
+cddb_cur2struct(void)
+{
+ cddb.protocol = cur_cddb_protocol;
+ strcpy(cddb.cddb_server, cur_cddb_server);
+ strcpy(cddb.mail_adress, cur_cddb_mail_adress);
+ strcpy(cddb.path_to_cgi, cur_cddb_path_to_cgi);
+ strcpy(cddb.proxy_server, cur_cddb_proxy_server);
+} /* cddb_cur2struct() */
+
+/*
+ *
+ */
+void
+cddb_struct2cur(void)
+{
+ cur_cddb_protocol = cddb.protocol;
+ cur_cddb_server = (cddb.cddb_server);
+ cur_cddb_mail_adress = (cddb.mail_adress);
+ cur_cddb_path_to_cgi = (cddb.path_to_cgi);
+ cur_cddb_proxy_server = (cddb.proxy_server);
+} /* cddb_struct2cur() */
+
/*
* Subroutine from cddb_discid
@@ -120,17 +146,23 @@
return ((n % 0xff) << 24 | t << 8 | thiscd.ntracks);
} /* cddb_discid() */
-
-/* Split string at delim */
-char *string_split(char *line, char delim)
+/*
+ * Split a string into two components according to the first occurance of
+ * the delimiter.
+ */
+char *
+string_split(char *line, char delim)
{
char *p1;
- p1 = strchr(line, (int)delim);
- if (p1) {
+ for (p1=line;*p1;p1++)
+ {
+ if(*p1 == delim)
+ {
*p1 = 0;
return ++p1;
}
+ }
return (NULL);
} /* string_split() */
@@ -144,18 +176,8 @@
char mail[84],*host;
strcpy(mail,cddb.mail_adress);
- host = string_split(mail,'@');
- if (!host) {
- int len;
- if (getlogin())
- strncpy(mail, getlogin(), 83);
- else
- strcpy(mail, "nobody");
- len = strlen(mail);
- host = mail + len + 1;
- gethostname(host, 83-len);
- Trace((stderr, "default email %s@%s\n", mail, host));
- }
+ host=string_split(mail,'@');
+
sprintf(line,"%shello%c%s%c%s%c%s%c%s",
delim == ' ' ? "cddb " : "&",
delim == ' ' ? ' ' : '=',
@@ -171,40 +193,26 @@
int
connect_open(void)
{
- char host[200], *prt;
+ char *host;
struct hostent *hp;
struct sockaddr_in soc_in;
- int port = 0;
-
- Trace((stderr, "opening connection to cddb server\n"));
-
- /* in case of failure */
- Connection = NULL;
+ int port;
if(cddb.protocol == 3) /* http proxy */
- strcpy(host, cddb.proxy_server);
+ host = strdup(cddb.proxy_server);
else
- strcpy(host, cddb.cddb_server);
-
- Trace((stderr, "host %s\n", host));
-
- prt = string_split(host,':');
- if (prt)
- port = atoi(prt);
-
- /* Defaults */
+ host = strdup(cddb.cddb_server);
+ /*
+ * t=string_split(host,':');
+ */
+ port=atoi(string_split(host,':'));
if(!port)
- if (cddb.protocol == 1)
- port = 888;
- else
- port = 80;
- if (cddb.path_to_cgi[0] == 0)
- sprintf(cddb.path_to_cgi, "/~cddb/cddb.cgi");
+ port=8880;
- Trace((stderr, "%s : %d\n",host,port));
+ printf("%s:%d\n",host,port);
+ hp =gethostbyname(host);
- hp = gethostbyname(host);
- if (!hp)
+ if (hp == NULL)
{
static struct hostent def;
static struct in_addr defaddr;
@@ -212,12 +220,10 @@
static char namebuf[128];
int inet_addr();
- Trace((stderr, "gethostbyname failed: %s\n", host));
-
defaddr.s_addr = inet_addr(host);
if (defaddr.s_addr == -1)
{
- Trace((stderr, "unknown host: %s\n", host));
+ printf("unknown host: %s\n", host);
return (-1);
}
strcpy(namebuf, host);
@@ -228,7 +234,6 @@
def.h_aliases = 0;
hp = &def;
}
-
soc_in.sin_family = hp->h_addrtype;
bcopy(hp->h_addr, (char *)&soc_in.sin_addr, hp->h_length);
soc_in.sin_port = htons(port);
@@ -269,8 +274,6 @@
{
char c;
- /* FIXME timeout, return empty string (not null) */
-
while ((c = getc(Connection)) != '\n')
{
*line = c;
@@ -295,15 +298,15 @@
{
connect_getline(tempbuf);
- t = string_split(tempbuf,'=');
- if (t != NULL)
+ t=string_split(tempbuf,'=');
+ if(t != NULL)
{
type=tempbuf[0];
if(strncmp("TITLE",tempbuf+1,5))
continue;
- if(type == 'D')
+ if('D' == type)
{
/*
* Annahme: "Interpret / Titel" ist falsch.
@@ -323,11 +326,18 @@
}
strcpy(cd->artist,t);
}
- else if(type == 'T')
+
+ if('T' == type)
{
trknr=atoi(tempbuf+6);
+ /*
+ * printf("Track %d:%s\n",trknr,t);
+ */
wm_strmcpy(&cd->trk[trknr].songname,t);
}
+ /*
+ * fprintf(stderr, "%s %s\n",tempbuf,t);
+ */
}
}
} /* connect_read_entry() */
@@ -362,22 +372,22 @@
char tempbuf[2000];
write(Socket, "GET ", 4);
- Trace((stderr, "GET "));
+ printf("GET ");
if(cddb.protocol == 3)
{
write(Socket, "http://", 7);
write(Socket, cddb.cddb_server, strlen(cddb.cddb_server));
- Trace((stderr, "http://%s",cddb.cddb_server));
+ printf("http://%s",cddb.cddb_server);
}
write(Socket, cddb.path_to_cgi, strlen(cddb.path_to_cgi));
write(Socket, "?cmd=" ,5);
write(Socket, line, strlen(line));
- Trace((stderr, "%s?cmd=%s",cddb.path_to_cgi,line));
+ printf("%s?cmd=%s",cddb.path_to_cgi,line);
string_makehello(tempbuf,'+');
write(Socket, tempbuf, strlen(tempbuf));
- Trace((stderr, "%s",tempbuf));
+ printf("%s",tempbuf);
write(Socket, "&proto=1 HTTP/1.0\n\n", 19);
- Trace((stderr, "&proto=1 HTTP/1.0\n"));
+ printf("&proto=1 HTTP/1.0\n");
do
connect_getline(tempbuf);
while(strcmp(tempbuf,""));
@@ -396,111 +406,120 @@
/*
* The main routine called from the ui
- * returns 0 on success, -1 on err
*/
-int
+void
cddb_request(void)
{
int i;
char tempbuf[2000];
extern int cur_ntracks;
- int status, rv = 0;
+
+ int status;
char category[20];
unsigned int id;
+ strcpy(cddb.cddb_server,"localhost:888");
+ strcpy(cddb.mail_adress,"svo...@bigfoot.com");
+ /*
+ * cddb.protocol = 1;
+ */
wipe_cdinfo();
switch(cddb.protocol)
{
case 1: /* cddbp */
- Trace((stderr, "USING CDDBP\n"));
- Trace((stderr, "open\n"));
- if (connect_open()) {
- Trace((stderr, "connect failed.\n"));
- return -1;
- }
+ printf("USING CDDBP\n");
+ printf("open\n");
+ connect_open();
connect_getline(tempbuf);
- Trace((stderr, "[%s]\n",tempbuf));
-
+ printf("[%s]\n",tempbuf);
+ /*
+ * if(atoi(tempbuf) == 201) return;
+ */
+
+ /*
+ * strcpy(tempbuf,"cddb hello svolli bigfoot.com Eierkratzer
eins");
+ */
string_makehello(tempbuf,' ');
- Trace((stderr, "%s\n", tempbuf));
+ fprintf(stderr, "%s\n", tempbuf);
cddbp_send(tempbuf);
connect_getline(tempbuf);
- Trace((stderr, "[%s]\n",tempbuf));
+ printf("[%s]\n",tempbuf);
- Trace((stderr, "query\n"));
+ printf("query\n");
sprintf(tempbuf, "cddb query %08x
%d",thiscd.cddbid,thiscd.ntracks);
for (i = 0; i < cur_ntracks; i++)
if (thiscd.trk[i].section < 2)
sprintf(tempbuf + strlen(tempbuf), " %d",
thiscd.trk[i].start);
sprintf(tempbuf + strlen(tempbuf), " %d\n", thiscd.length);
- Trace((stderr, ">%s<\n",tempbuf));
+ printf(">%s<\n",tempbuf);
cddbp_send(tempbuf);
connect_getline(tempbuf);
- Trace((stderr, "[%s]\n",tempbuf));
+ printf("[%s]\n",tempbuf);
status=atoi(tempbuf);
- Trace((stderr, "status:%d\n",status));
-
+ /*
+ * fprintf(stderr, "status:%d\n",status);
+ * fprintf(stderr,"category:%s\n",category);
+ * fprintf(stderr,"id:%s\n",id);
+ */
if(status == 200) /* Exact match */
{
sscanf(tempbuf,"%d %s %08x",&status,category,&id);
cddbp_read(category,id);
connect_read_entry();
}
- else if(status == 211) /* Unexact match, multiple possible
+
+ if(status == 211) /* Unexact match, multiple possible
* Hack: always use first. */
{
connect_getline(tempbuf);
- Trace((stderr, "[%s]\n",tempbuf));
sscanf(tempbuf,"%s %08x",category,&id);
- while(strcmp(tempbuf,".")) {
+ while(strcmp(tempbuf,"."))
connect_getline(tempbuf);
- Trace((stderr, "ignoring [%s]\n",tempbuf));
- }
cddbp_read(category,id);
connect_read_entry();
}
- else
- rv = -1;
+
cddbp_send("quit");
connect_close();
- Trace((stderr, "close\n"));
- return rv;
+ printf("close\n");
+ break;
case 2: /* http */
case 3: /* http proxy */
- Trace((stderr, "USING HTTP%s\n",
- (cddb.protocol == 3) ? " WITH PROXY" : ""));
- Trace((stderr, "query\n"));
+ printf("USING HTTP%s\n",
+ (cddb.protocol == 3) ? " WITH PROXY" : "");
+ printf("query\n");
sprintf(tempbuf,
"cddb+query+%08x+%d",thiscd.cddbid,thiscd.ntracks);
for (i = 0; i < cur_ntracks; i++)
if (thiscd.trk[i].section < 2)
sprintf(tempbuf + strlen(tempbuf), "+%d",
thiscd.trk[i].start);
sprintf(tempbuf + strlen(tempbuf), "+%d", thiscd.length);
- Trace((stderr, ">%s<\n",tempbuf));
- if (connect_open()) {
- Trace((stderr, "connect failed.\n"));
- return -1;
- }
+ printf(">%s<\n",tempbuf);
+ connect_open();
http_send(tempbuf);
connect_getline(tempbuf);
- Trace((stderr, "[%s]\n",tempbuf));
+ printf("[%s]\n",tempbuf);
status=atoi(tempbuf);
+ /*
+ * fprintf(stderr, "status:%d\n",status);
+ * fprintf(stderr, "category:%s\n",category);
+ * fprintf(stderr, "id:%s\n",id);
+ */
+
if(status == 200) /* Exact match */
{
connect_close();
- if (connect_open()) {
- Trace((stderr, "connect failed.\n"));
- return -1;
- }
+ connect_open();
sscanf(tempbuf,"%d %s %08x",&status,category,&id);
http_read(category,id);
connect_read_entry();
}
- else if(status == 211) /* Unexact match, multiple possible
+
+ if(status == 211) /* Unexact match, multiple possible
* Hack: always use first. */
{
connect_getline(tempbuf);
@@ -508,24 +527,15 @@
while(strcmp(tempbuf,"."))
connect_getline(tempbuf);
connect_close();
- if (connect_open()) {
- Trace((stderr, "connect failed.\n"));
- return -1;
- }
+ connect_open();
http_read(category,id);
connect_read_entry();
}
- else
- rv = -1;
/* moved close above break */
connect_close();
- return rv;
+ break;
default: /* off */
break;
}
- return -1;
} /* cddb_request() */
-
-
-
diff -Nru ascd-0.13.2/libworkman/database.c ascd-0.13.2/libworkman/database.c
--- ascd-0.13.2/libworkman/database.c 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/database.c 1999-05-28 03:35:54.000000000 +0000
@@ -33,8 +33,6 @@
#define DBFILE "/.workmandb"
#define FUZZFRAMES 75
-#define ASYNC_CDDB 1
-
#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
@@ -46,10 +44,6 @@
#include <sys/param.h>
#include <sys/time.h>
#include <sys/stat.h>
-#ifdef ASYNC_CDDB
-#include <signal.h>
-#include <sys/wait.h>
-#endif
#include "include/wm_config.h"
#include "include/wm_helpers.h"
#include "include/wm_struct.h"
@@ -86,11 +80,6 @@
int mark_a = 0;
int mark_b = 0;
-static int _save(int saverc);
-static int check_in_cddb();
-static int wakeup_from_cddb();
-static int cddb_lock = 0;
-
/*
*
@@ -1022,7 +1011,9 @@
if (searching > 1) /* A near match has been found. Good enough. */
searching = 0;
+ cddb_struct2cur();
return (! searching);
+
} /* search_db() */
/*
@@ -1173,29 +1164,6 @@
free(trklist);
- /* If we didn't find it, try CDDB */
-#ifndef ASYNC_CDDB
- /* Syncronous - wait for query to return */
- if (cddb.protocol && !found_in_rc && !found_in_db)
- check_in_cddb();
-#else
- /* Asyncronous */
- if (cddb.protocol && !found_in_rc && !found_in_db && !cddb_lock) {
- /* Make sure we only have one request out to CDDB at a time.
- In case server is down or something, we don't want to keep
- forking children. */
- cddb_lock = 1;
- signal(SIGCHLD, (sig_t)wakeup_from_cddb);
- if (!fork()) {
- /* Child */
- int rv;
- cddb_lock = 1; /* extra safety, can't hurt */
- rv = check_in_cddb();
- exit(rv);
- }
- }
-#endif
-
if (cur_playnew == -1)
cur_playnew = 0;
@@ -1209,41 +1177,6 @@
#endif
} /* load() */
-
-/* Lookup cddb data and save it to workman database */
-static int check_in_cddb()
-{
- if (!cddb_request()) {
- /* Found it, let's save it so we don't have to look it
- up again. */
-#ifdef DEBUG
- fprintf(stderr, "\nFound in CDDB:");
- fprintf(stderr, "%s", print_cdinfo(cd, 0));
-#endif
- /* Save in db only, not rc, because we haven't put any
- customizations in, and I don't want to clutter the
- rc needlessly. */
- _save(0);
- return 0;
- }
- return -1;
-}
-
-/* Called when the fork above finishes. */
-static int wakeup_from_cddb()
-{
- int status;
- cddb_lock = 0;
- /* Child had new data loaded, but we don't share memory, so we have to
- reload here for updated data */
- /* Only reload if child was successful, otherwise we keep trying */
- wait(&status);
- if (WIFEXITED(status) && (!WEXITSTATUS(status))) {
- load();
- }
-}
-
-
/*
* Load program settings from the rcfile.
*/
@@ -1288,8 +1221,6 @@
long curpos;
int globesize, hit_cdent = 0, c = 0;
- printf("saving globals\n");
-
if (otherrc)
wm_strmcpy(&globes, otherrc);
@@ -1321,7 +1252,6 @@
if(cddb.cddb_server[0])
{
- printf("writing cddb server data\n");
sprintf(temp,"cddbserver %s\n",
cddb.cddb_server);
wm_strmcat(&globes, temp);
@@ -1330,14 +1260,14 @@
if(cddb.path_to_cgi[0])
{
sprintf(temp,"cddbpathtocgi %s\n",
- cddb.path_to_cgi);
+ cddb.mail_adress);
wm_strmcat(&globes, temp);
}
if(cddb.proxy_server[0])
{
sprintf(temp,"cddbproxy %s\n",
- cddb.proxy_server);
+ cddb.mail_adress);
wm_strmcat(&globes, temp);
}
}
@@ -1479,8 +1409,6 @@
locked = 1;
buf = print_cdinfo(cd, pref);
- if (!buf)
- fprintf(stderr, "save_entry: print_cdinfo failed\n");
len = strlen(buf); /* doesn't return if there's an error */
rcpos = -1;
@@ -1572,17 +1500,13 @@
* list, unless the entry came from another database file) and to the
* personal prefs file.
*/
-int save(void)
-{
- return _save(1);
-}
-
-static int _save(int saverc)
+int
+save( void )
{
if( wm_db_save_disabled == FALSE )
{
- if (saverc && save_entry(rcfile, 1))
+ if (save_entry(rcfile, 1))
return (0);
if (cd->whichdb == NULL || access(cd->whichdb, W_OK))
@@ -1595,4 +1519,4 @@
} else {
return( WM_DB_SAVE_DISABLED );
}
-} /* _save() */
+} /* save() */
diff -Nru ascd-0.13.2/libworkman/include/wm_cdda.h
ascd-0.13.2/libworkman/include/wm_cdda.h
--- ascd-0.13.2/libworkman/include/wm_cdda.h 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/libworkman/include/wm_cdda.h 1999-02-14 09:50:46.000000000
+0000
@@ -91,6 +91,7 @@
* if there is no support.
*/
#ifdef linux
+# include <bytesex.h>
# include <endian.h>
/*
* XXX could this be a problem? The results are only 0 and 1 because
diff -Nru ascd-0.13.2/libworkman/include/wm_cddb.h
ascd-0.13.2/libworkman/include/wm_cddb.h
--- ascd-0.13.2/libworkman/include/wm_cddb.h 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/libworkman/include/wm_cddb.h 1999-04-05 06:09:36.000000000
+0000
@@ -37,6 +37,6 @@
void cddb_select();
void connect_cddb();
void update_cddbserver();
-int cddb_request();
+void cddb_request();
#endif /* WM_CDDB_H */
diff -Nru ascd-0.13.2/libworkman/include/wm_config.h
ascd-0.13.2/libworkman/include/wm_config.h
--- ascd-0.13.2/libworkman/include/wm_config.h 2024-02-17 22:15:41.000000000
+0000
+++ ascd-0.13.2/libworkman/include/wm_config.h 1999-05-05 16:34:22.000000000
+0000
@@ -186,7 +186,7 @@
* probably want this, but it will cause WorkMan to not work on IDE
* drives.
*/
-/*#define LINUX_SCSI_PASSTHROUGH 1*/
+#define LINUX_SCSI_PASSTHROUGH 1
/*
* Which device should be opened by WorkMan at default?
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_cdda.h
ascd-0.13.2/libworkman/include/workman/wm_cdda.h
--- ascd-0.13.2/libworkman/include/workman/wm_cdda.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_cdda.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,116 +0,0 @@
-#ifndef WM_CDDA_H
-#define WM_CDDA_H
-/*
- * $Id: wm_cdda.h,v 1.2 1999/02/14 09:50:46 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-/*
- * Information about a particular block of CDDA data.
- */
-struct cdda_block {
- unsigned char status; /* see below */
- unsigned char track;
- unsigned char index;
- unsigned char minute;
- unsigned char second;
- unsigned char frame;
-
- /* Average volume levels, for level meters */
- unsigned char lev_chan0;
- unsigned char lev_chan1;
-
- /* Current volume setting (0-255) */
- unsigned char volume;
-
- /* Current balance setting (0-255, 128 = balanced) */
- unsigned char balance;
-};
-
-/*
- * cdda_block status codes.
- */
-#define WMCDDA_ERROR 0 /* Couldn't read CDDA from disc */
-#define WMCDDA_OK 1 /* Read this block successfully (raw data) */
-#define WMCDDA_PLAYED 2 /* Just played the block in question */
-#define WMCDDA_STOPPED 3 /* Block data invalid; we've just stopped */
-#define WMCDDA_ACK 4 /* Acknowledgement of command from parent */
-#define WMCDDA_DONE 5 /* Chunk of data is done playing */
-#define WMCDDA_EJECTED 6 /* Disc ejected or offline */
-
-/*
- * Enable or disable CDDA building depending on platform capabilities, and
- * determine endianness based on architecture. (Gross!)
- *
- * For header-comfort, the macros LITTLE_ENDIAN and BIG_ENDIAN had to be
- * renamed. At least Linux does have bytesex.h and endian.h for easy
- * byte-order examination.
- */
-
-#ifdef sun
-# ifdef SYSV
-# include <sys/types.h>
-# include <sys/cdio.h>
-# ifndef CDROMCDDA
-# undef BUILD_CDDA
-# endif
-# ifdef i386
-# define WM_LITTLE_ENDIAN 1
-# define WM_BIG_ENDIAN 0
-# else
-# define WM_BIG_ENDIAN 1
-# define WM_LITTLE_ENDIAN 0
-# endif
-# else
-# undef BUILD_CDDA
-# endif
-#endif
-
-/* Linux only allows definition of endianness, because there's no
- * standard interface for CDROM CDDA functions that aren't available
- * if there is no support.
- */
-#ifdef linux
-# include <endian.h>
-/*
- * XXX could this be a problem? The results are only 0 and 1 because
- * of the ! operator. How about other linux compilers than gcc ?
- */
-# define WM_LITTLE_ENDIAN !(__BYTE_ORDER - __LITTLE_ENDIAN)
-# define WM_BIG_ENDIAN !(__BYTE_ORDER - __BIG_ENDIAN)
-#endif
-
-/*
- * The following code shouldn't take effect now.
- * In 1998, the WorkMan platforms don't support __PDP_ENDIAN
- * architectures.
- *
- */
-
-#if !WM_LITTLE_ENDIAN
-# if !WM_BIG_ENDIAN
-# error yet unsupported architecture
- foo bar this is to stop the compiler.
-# endif
-#endif
-#endif /* WM_CDDA_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_cddb.h
ascd-0.13.2/libworkman/include/workman/wm_cddb.h
--- ascd-0.13.2/libworkman/include/workman/wm_cddb.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_cddb.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,42 +0,0 @@
-#ifndef WM_CDDB_H
-#define WM_CDDB_H
-/*
- * $Id: wm_cddb.h,v 1.2 1999/02/14 09:50:46 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-extern struct wm_cddb cddb;
-extern int cur_cddb_protocol;
-extern char *cur_cddb_server, *cur_cddb_mail_adress,
- *cur_cddb_path_to_cgi, *cur_cddb_proxy_server;
-
-unsigned int cddb_discid();
-void cddb_struct2cur();
-void cddb_cur2struct();
-void cddb_select();
-void connect_cddb();
-void update_cddbserver();
-void cddb_request();
-
-#endif /* WM_CDDB_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_cdinfo.h
ascd-0.13.2/libworkman/include/workman/wm_cdinfo.h
--- ascd-0.13.2/libworkman/include/workman/wm_cdinfo.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_cdinfo.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,78 +0,0 @@
-#ifndef WM_CDINFO_H
-#define WM_CDINFO_H
-/*
- * $Id: wm_cdinfo.h,v 1.5 1999/05/28 03:35:58 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Prototypes from cdinfo.c
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-extern char *cur_trackname; /* Take a guess */
-extern int cur_index; /* Current index mark */
-extern int cur_frame; /* Current frame number */
-extern struct wm_play *playlist; /* = NULL */
-extern struct wm_cdinfo thiscd;
-extern struct wm_cdinfo *cd;
-extern int cur_track; /* Current track number, starting at 1
*/
-extern char *cur_artist; /* Name of current CD's artist */
-extern char cur_avoid; /* Avoid flag */
-extern char cur_contd; /* Continued flag */
-extern char *cur_cdname; /* Album name */
-extern int cur_nsections; /* Number of sections currently defined
*/
-extern int exit_on_eject;
-extern int cur_track;
-extern int cur_pos_abs;
-extern int cur_pos_rel;
-extern int cur_tracklen;
-extern int cur_cdlen;
-extern enum wm_cd_modes cur_cdmode;
-extern int cur_ntracks;
-extern int cur_lasttrack;
-extern int cur_firsttrack;
-extern int cur_listno;
-extern int cur_stopmode;
-
-void wipe_cdinfo( void );
-void play_next_entry( int forward );
-void make_playlist( int playmode, int starttrack );
-int get_autoplay( void );
-int get_playmode( void );
-void pl_find_track( int track );
-void play_prev_track( int forward );
-void play_next_track( int forward );
-int tracklen( int num );
-int get_default_volume( int track );
-int split_trackinfo( int pos );
-int remove_trackinfo( int num );
-void freeup( char **x );
-int get_runtime( void );
-char *trackname( int num );
-void stash_cdinfo( char *artist, char *cdname, int autoplay, int playmode );
-void stash_trkinfo( int track, char *songname, int contd, int avoid );
-int get_avoid( int num );
-int get_contd( int num );
-void default_volume( int track, int vol );
-char *listentry( int num );
-
-#endif /* WM_CDINFO_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_cdrom.h
ascd-0.13.2/libworkman/include/workman/wm_cdrom.h
--- ascd-0.13.2/libworkman/include/workman/wm_cdrom.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_cdrom.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,64 +0,0 @@
-#ifndef WM_CDROM_H
-#define WM_CDROM_H
-/*
- * $Id: wm_cdrom.h,v 1.6 1999/05/05 16:09:55 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Prototypes from cdrom.c
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-#define WM_CDS_NO_DISC 0
-#define WM_CDS_DISC_READY 1
-#define WM_CDS_JUST_INSERTED 2
-
-#define WM_STR_GENVENDOR "Generic"
-#define WM_STR_GENMODEL "drive"
-#define WM_STR_GENREV "type"
-
-extern int wm_cd_cur_balance;
-
-
-char * wm_drive_vendor( void );
-char * wm_drive_model( void );
-char * wm_drive_revision( void );
-void wm_drive_settype( char *vendor, char *model, char *revision );
-
-int wm_cd_status( void );
-
-void wm_cd_play( int start, int pos, int end );
-void wm_cd_play_chunk( int start, int end, int realstart );
-void wm_cd_play_from_pos( int pos );
-void wm_cd_pause( void );
-void wm_cd_stop( void );
-int wm_cd_eject( void );
-int wm_cd_closetray( void );
-int wm_cd_read_initial_volume( int max );
-
-/*
- * Following are the missing to rename.
- */
-int find_trkind( int track, int index, int start );
-void cd_volume( int vol, int bal, int max );
-
-#endif /* WM_CDROM_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_config.h
ascd-0.13.2/libworkman/include/workman/wm_config.h
--- ascd-0.13.2/libworkman/include/workman/wm_config.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_config.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,357 +0,0 @@
-#ifndef WM_CONFIG_H
-#define WM_CONFIG_H
-/*
- * $Id: wm_config.h,v 1.5 1999/05/05 16:34:22 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- **********************************************************************
- *
- * This file consists of several parts. First, there's a generic,
- * platform independent part. Set needed options there.
- * The following parts are platform dependent. You may search for the
- * names listed below and then set your OS specific options there.
- * Don't be surprised, if there are no options for your OS. They aren't
- * needed in any case.
- *
- * The default values should produce a functional WorkMan on every
- * platform.
- *
- *********************
- * Current platforms:
- *********************
- * BSD386
- * FreeBSD
- * HP-UX
- * Irix (SGI)
- * Linux
- * News (Sony NewsOS)
- * OpenBSD
- * OSF1
- * Sun (SunOS/Solaris, Sparc or x86)
- * SVR4
- * Ultrix
- * AIX
- *
- * The above order corresponds with the order of the platform specific
- * options below.
- */
-
-/******************************************************************
- * generic options
- ******************************************************************
- ** ** *** **** ** **** ** * ** ** ** * **
- * * * *** **** * * *** * ** ** *** * * * * * * **
- * * *** **** ** *** ** ** ** * * ** * * **
- * * * *** **** **** *** * ** ** *** * * * * *** **
- * * * * ** **** * * ** ** **** ** * * *** **
- ******************************************************************/
-
-/*
- * This option is obvious. But please do not forget the original
- * WorkMan version string if you need support.
- */
-
-#define WORKMAN_NAME "LibWorkMan"
-#define WORKMAN_VERSION "1.4.0"
-
-/*
- * If your CD-ROM drive closes its tray if the device is opened, then
- * the next define can make WorkMans "Eject" button an "open/close"
- * button. If it disturbs you, just comment it out.
- *
- * ### this is preliminary. It may have no effect for you ###
- */
-#define CAN_CLOSE 1
-
-/*
- * Define the following if you want the balance slider to
- * decrease one channel's volume while increasing the other's
- */
-/* #define SYMETRIC_BALANCE 1 */
-
-
-/*
- * Define this if you want CDDA support. Supported systems are:
- *
- * - Solaris (2.4 or newer)
- * --> Linux is on the way. Don't define it now. It would lead to errors only.
- */
-/*#define BUILD_CDDA 1*/
-
-/*
- *
- * This is for experimental cddb support.
- * This activates the UI component.
- */
-
-#define CDDB_IN_UI 1
-
-
-/******************************************************************
- * BSD386
- ******************************************************************
- *** **** *** ******* ** **** **** ************
- *** ** ** ****** * ***** ****** ** ** ** ***************
- *** ****** **** ** *** ***** ***** *** ************
- *** ** ****** ** * *** ******** ** ** ** ** ***********
- *** **** *** *** ****** **** **** ************
- ******************************************************************/
-#ifdef __bsdi__
-
-/*
- * This lets you use the SoundBlaster Mixer on BSD/386
- */
-#define SOUNDBLASTER 1
-
-#endif /* __bsdi__ (BSD/386) */
-
-/******************************************************************
- * FreeBSD
- ******************************************************************
- *** ** *** ** ** **** *** ***********
- *** ****** ** ** ****** ****** ** ** ****** * **********
- *** **** *** **** **** ****** **** ** *********
- *** ****** ** ** ****** ****** ** ****** ** * **********
- *** ****** ** ** ** ** **** *** ***********
- ******************************************************************/
-#if defined(__FreeBSD__) || defined(__NetBSD__)
-
-#define DEFAULT_CD_DEVICE "/dev/rmatcd0c"
-
-#endif /* freebsd */
-
-/******************************************************************
- * HP-UX
- ******************************************************************
- *** ** ** ********* ** ** ** ***************************
- *** ** ** ** ******** ** *** ****************************
- *** ** *** ** ** **** *****************************
- *** ** ** ************ ** *** ****************************
- *** ** ** ************* *** ** ***************************
- ******************************************************************/
-#if defined(hpux) || defined (__hpux)
-
-#define DEFAULT_CD_DEVICE "/dev/rscsi"
-
-#endif /* hpux */
-
-/******************************************************************
- * Irix
- ******************************************************************
- *** ** *** ** ** *********************************
- ***** **** ** **** ***** **********************************
- ***** **** ***** ****** ***********************************
- ***** **** ** **** ***** **********************************
- *** ** ** ** ** ** *********************************
- ******************************************************************/
-#if defined(sgi)
-
-#define DEFAULT_CD_DEVICE "/dev/scsi/sc0d6l0"
-
-#endif /* sgi IRIX */
-
-/******************************************************************
- * Linux
- ******************************************************************
- *** ****** ** *** ** ** ** ** ***********************
- *** ******** **** ** ** ** *** ************************
- *** ******** **** * * ** ** **** *************************
- *** ******** **** ** ** ** *** ************************
- *** ** ** *** *** *** ** ***********************
- ******************************************************************/
-#ifdef linux
-
-/*
- * Uncomment the following line to have WorkMan send SCSI commands
- * directly to the CD-ROM drive. If you have a SCSI drive you
- * probably want this, but it will cause WorkMan to not work on IDE
- * drives.
- */
-/*#define LINUX_SCSI_PASSTHROUGH 1*/
-
-/*
- * Which device should be opened by WorkMan at default?
- */
-#define DEFAULT_CD_DEVICE "/dev/sbpcd"
-
-/*
- * Uncomment the following if you use the sbpcd or mcdx device driver.
- * It shouldn't hurt if you use it on other devices. It'll be nice to
- * hear from non-sbpcd (or mcdx) users if this is right.
- */
-/*#define SBPCD_HACK 1*/
-
-/*
- * Linux Soundcard support
- */
-#define OSS_SUPPORT 1
-
-/*
- * This has nothing to do with the above.
- */
-
-/* #define CURVED_VOLUME */
-
-/*
- * Uncomment the following if you want to try out a better responding
- * WorkMan, especially with IDE drives. This may work with non-IDE
- * drives as well. But it may be possible, that it doesn't work at all.
- * If your drive/driver combination cannot handle the faster access,
- * the driver will usually hang and you have to reboot your machine.
- */
-/* #define FAST_IDE 1 */
-
-/*
- * There are two alternative ways of checking a device containing a
- * mounted filesystem. Define BSD_MOUNTTEST for the test using
- * getmntent(). Undefine it for using the SVR4 ustat().
- * I built in the choice, because it's not clear which method should
- * be used in Linux. The ustat manpage tells us since 1995, that
- * fstat() should be used, but I'm too dumb to do so.
- */
-
-#define BSD_MOUNTTEST
-
-#endif /* linux */
-
-/******************************************************************
- * Sony NewsOS
- ******************************************************************
- *** *** ** ** ***** *** *****************************
- *** ** ** ****** ***** ** ********************************
- *** * * ** **** ** ** **** ******************************
- *** ** ** ****** * * ****** ****************************
- *** *** ** ** * *** *****************************
- ******************************************************************/
-#if defined(__sony_news) || defined(sony_news)
-
-#define DEFAULT_CD_DEVICE "/dev/rsd/b0i6u0p2\0"
-
-#endif
-
-/******************************************************************
- * OpenBSD
- ******************************************************************
- **** *** *** ** *** ** **** *** *********
- *** ** ** ** ** ****** ** ** ** ** ****** * ********
- *** ** ** *** **** * * ** ****** **** ** *******
- *** ** ** ****** ****** ** ** ** ****** ** * ********
- **** *** ****** ** *** ** **** *** *********
- ******************************************************************/
-#ifdef __OpenBSD__
-
-#define DEFAULT_CD_DEVICE "/dev/rcdrom"
-
-#endif
-
-/******************************************************************
- * OSF1
- ******************************************************************
- **** **** *** *** *** *******************************
- *** ** ** ****** ****** ** *******************************
- *** ** **** **** *** ***** *******************************
- *** ** ****** ** **** ****** *******************************
- **** **** *** *** ***** *****************************
- ******************************************************************/
-#if defined(__osf__)
-
-#define DEFAULT_CD_DEVICE "/dev/rcdrom/cd0"
-
-#endif
-
-/******************************************************************
- * SunOS/Solaris
- ******************************************************************
- **** *** ** ** *** ***************************************
- *** ****** ** ** ** ***************************************
- ***** **** ** ** * * ***************************************
- ******* ** ** ** ** ***************************************
- **** **** *** *** ***************************************
- ******************************************************************/
-#if defined(sun) || defined(__sun__)
-
-/*
- * Define the following for Solaris 2.x
- * If you don't want WorkMan to try to activate the SPARCstation 5
- * internal audio input so you get sound from the workstation, comment
- * out the CODEC define.
- */
-
-#define SYSV 1
-#define CODEC 1
-
-/*
- * set the following to "SUNW,CS4231" for Sun and to "SUNW,sb16"
- * for PC (with SoundBlaster 16) running Solaris x86
- * (only important if you define CODEC above)
- */
-/*#define SUN_AUD_DEV "SUNW,CS4231"*/
-#define SUN_AUD_DEV "SUNW,sbpro"
-
-
-#endif
-
-/******************************************************************
- * SVR4
- ******************************************************************
- **** *** **** ** *** * ********************************
- *** ****** **** ** ** ** * ********************************
- ***** ***** ** *** *** *******************************
- ******* *** ** *** ** ***** ********************************
- **** ***** **** ** ***** ********************************
- ******************************************************************/
-#if defined(SVR4) && !defined(sun) && !defined(__sun__)
-
-#define DEFAULT_CD_DEVICE "/dev/rcdrom/cd0"
-
-#endif
-
-/******************************************************************
- * Ultrix
- ******************************************************************
- *** ** ** ***** ** *** ** ** ******************
- *** ** ** ******* **** ** **** ***** *******************
- *** ** ** ******* **** ***** ****** ********************
- *** ** ** ******* **** ** **** ***** *******************
- **** *** *** **** ** ** ** ** ******************
- ******************************************************************/
-#if defined(ultrix) || defined(__ultrix)
-
-#endif
-
-/******************************************************************
- * IBM AIX
- ******************************************************************
- **** *** ** ** *****************************************
- *** ** **** ***** ******************************************
- *** **** ****** *******************************************
- *** ** **** ***** ******************************************
- *** ** ** ** ** *****************************************
- ******************************************************************/
-#if defined(AIXV3)
-
-#define DEFAULT_CD_DEVICE "/dev/cd0"
-
-#endif /* IBM AIX */
-
-/******************************************************************/
-#endif /* WM_CONFIG_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_database.h
ascd-0.13.2/libworkman/include/workman/wm_database.h
--- ascd-0.13.2/libworkman/include/workman/wm_database.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_database.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,44 +0,0 @@
-#ifndef WM_DATABASE_H
-#define WM_DATABASE_H
-/*
- * $Id: wm_database.h,v 1.3 1999/02/14 09:50:47 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Prototypes for WorkMan database
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-
-#define WM_DB_SAVE_ERROR 1
-#define WM_DB_SAVE_DISABLED 2
-
-int wm_db_get_playnew( void );
-void split_workmandb( void );
-int save( void );
-void load( void );
-void load_settings( void );
-
-extern int wm_db_save_disabled;
-extern int cur_playnew;
-
-#endif /* WM_DATABASE_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_helpers.h
ascd-0.13.2/libworkman/include/workman/wm_helpers.h
--- ascd-0.13.2/libworkman/include/workman/wm_helpers.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_helpers.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,105 +0,0 @@
-#ifndef WM_HELPERS_H
-#define WM_HELPERS_H
-/*
- * $Id: wm_helpers.h,v 1.6 1999/03/07 08:36:44 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Here to be found: Prototypes. Including variable names to be easier
- * to read.
- * This is just one more step to a more modular and understandable code.
- *
- */
-
-/*
- * LibWorkMan message levels. I'm not sure how to call them all and which
- * use they should fulfill. This is not very urgent now, because there
- * aren't many messages in LibWorkMan now.
- */
-#define WM_MSG_LEVEL_NONE 0
-#define WM_MSG_LEVEL_ERROR 1
-#define WM_MSG_LEVEL_TWO 2
-#define WM_MSG_LEVEL_THREE 3
-#define WM_MSG_LEVEL_FOUR 4
-#define WM_MSG_LEVEL_INFO 5
-#define WM_MSG_LEVEL_SIX 6
-#define WM_MSG_LEVEL_SEVEN 7
-#define WM_MSG_LEVEL_EIGHT 8
-#define WM_MSG_LEVEL_DEBUG 9
-
-/*
- * Message classes. This is somehow a definition of
- * the message's source.
- */
-
-#define WM_MSG_CLASS_PLATFORM 0x010
-#define WM_MSG_CLASS_SCSI 0x020
-#define WM_MSG_CLASS_CDROM 0x040
-#define WM_MSG_CLASS_DB 0x080
-#define WM_MSG_CLASS_MISC 0x100
-
-#define WM_MSG_CLASS_ALL 0xff0
-
-extern int wm_lib_verbosity;
-
-/*
- * I did not know any better place...
- */
-#ifdef DEBUG
-#define CHECKPOINT(t) fprintf(stderr, "%s (%d): %s\n", __FILE__, __LINE__, t );
-#else
-#define CHECKPOINT(t)
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#ifdef linux
-#include <signal.h>
-/* Linux doesn't have a SIGEMT */
-#if !defined( SIGEMT )
-# define SIGEMT SIGUNUSED
-#endif
-#endif /* linux */
-
-void freeup( char **x );
-void wm_strmcat( char **t, char *s);
-void wm_strmcpy( char **t, char *s );
-char * wm_strdup( char *s );
-/* Somebody's version query unsatisfied? */
-int wm_libver_major( void ); /* return major internal
version number */
-int wm_libver_minor( void ); /* return minor internal
version number */
-int wm_libver_pl( void ); /* return internal patchlevel
number */
-char * wm_libver_name( void ); /* return internal name
(LibWorkMan) */
-char * wm_libver_number( void ); /* returns string:
"<major>.<minor>.<pl>" */
-char * wm_libver_string( void ); /* returns string: "<name>
<number>" */
-char * wm_libver_date( void ); /* returns string: date of
compilation */
-void wm_lib_set_verbosity( int level ); /* set verbosity level */
-int wm_lib_get_verbosity( void ); /* get verbosity level */
-void wm_lib_message( unsigned int level, char *format, ... ); /* put
out a message on stderr */
-int wm_susleep( int usec );
-
-#endif /* WM_HELPERS_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_index.h
ascd-0.13.2/libworkman/include/workman/wm_index.h
--- ascd-0.13.2/libworkman/include/workman/wm_index.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_index.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,36 +0,0 @@
-#ifndef WM_INDEX_H
-#define WM_INDEX_H
-/*
- * $Id: wm_index.h,v 1.2 1999/02/14 09:50:47 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Prototypes for wm_index.c
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-int idx_find_entry( char *file, int ntracks, int *tracks,
- int len, int fuzz, unsigned long *pos );
-int idx_delete_entry(char *file, int track, int fuzz, unsigned long pos );
-int idx_write_entry( char *file, int track, unsigned long pos );
-
-#endif /* WM_INDEX_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_platform.h
ascd-0.13.2/libworkman/include/workman/wm_platform.h
--- ascd-0.13.2/libworkman/include/workman/wm_platform.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_platform.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-#ifndef WM_PLATFORM_H
-#define WM_PLATFORM_H
-/*
- * $Id: wm_platform.h,v 1.3 1999/02/14 09:50:47 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * The platform interface
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-#include "wm_struct.h"
-
-int wmcd_open( struct wm_drive *d );
-int wmcd_reopen( struct wm_drive *d );
-
-/*
- * void keep_cd_open( void );
- */
-int wm_scsi( struct wm_drive *d, unsigned char *cdb, int cdblen,
- void *retbuf, int retbuflen, int getreply );
-
-/****************************************
- *
- * The drive prototypes.
- *
- */
-extern struct wm_drive generic_proto;
-extern struct wm_drive sony_proto;
-extern struct wm_drive toshiba_proto;
-
-#endif /* WM_PLATFORM_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_scsi.h
ascd-0.13.2/libworkman/include/workman/wm_scsi.h
--- ascd-0.13.2/libworkman/include/workman/wm_scsi.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_scsi.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,48 +0,0 @@
-#ifndef WM_SCSI_H
-#define WM_SCSI_H
-/*
- * $Id: wm_scsi.h,v 1.3 1999/02/14 09:50:47 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * SCSI prototypes (scsi.c)
- *
- * This is just one more step to a more modular and understandable code.
- */
-
-#include "wm_struct.h"
-
-#define WM_ERR_SCSI_INQUIRY_FAILED -1
-
-int wm_scsi_mode_sense( struct wm_drive *d, unsigned char page,
- unsigned char *buf );
-int sendscsi( struct wm_drive *d, void *buf,
- unsigned int len, int dir,
- unsigned char a0, unsigned char a1,
- unsigned char a2, unsigned char a3,
- unsigned char a4, unsigned char a5,
- unsigned char a6, unsigned char a7,
- unsigned char a8, unsigned char a9,
- unsigned char a10, unsigned char a11 );
- int wm_scsi_get_drive_type( struct wm_drive *d, char *vendor,
- char *model, char *rev );
-
-#endif /* WM_SCSI_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_struct.h
ascd-0.13.2/libworkman/include/workman/wm_struct.h
--- ascd-0.13.2/libworkman/include/workman/wm_struct.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_struct.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,181 +0,0 @@
-#ifndef WM_STRUCT_H
-#define WM_STRUCT_H
-/*
- * $Id: wm_struct.h,v 1.7 1999/05/28 03:35:58 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-
-
-/*
- * Structure for a single track. This is pretty much self-explanatory --
- * one of these exists for each track on the current CD.
- */
-struct wm_trackinfo
-{
- char *songname; /* Name of song, dynamically allocated */
- char *otherdb; /* Unrecognized info for this track */
- char *otherrc;
- int length; /* Length of track in seconds or Kbytes */
- int start; /* Starting position (f+s*75+m*60*75) */
- int volume; /* Per-track volume (1-32, 0 to disable) */
- int track; /* Physical track number */
- int section; /* Section number (0 if track not split) */
- int contd; /* Flag: continuation of previous track */
- int avoid; /* Flag: don't play this track. */
- int data; /* Flag: data track */
-};
-
-/*
- * Structure for internal playlist management. The internal playlist is
- * simply the list of track ranges that are being played currently. This
- * is built whenever the CD starts playing; it's used in normal and shuffle
- * modes as well as playlist mode.
- *
- * The "starttime" element represents how much time has elapsed by the time
- * we get to this entry. For instance, if the list begins with a 5-minute
- * track and a 3-minute track, the third entry would have a starttime of 8
- * minutes. This is used so that the elapsed play time can be displayed
- * even in shuffle or playlist modes.
- *
- * The last member of the list has a start track of 0, and its starttime is
- * the total playing time of the playlist (which will usually be overestimated,
- * since we don't play leadouts in some cases.)
- */
-struct wm_play
-{
- int start; /* Start track, or 0 if end of list */
- int end; /* last track plus 1 */
- int starttime; /* Number of seconds elapsed previously */
-};
-
-/*
- * Structure for playlists (as seen by the user.) This is simply a name
- * followed by a zero-terminated list of track numbers to play. The list
- * is terminated by a NULL name.
- */
-struct wm_playlist
-{
- char *name; /* Name of this playlist */
- int *list; /* List of tracks */
-};
-
-struct wm_cdinfo
-{
- char artist[84]; /* Artist's name */
- char cdname[84]; /* Disc's name */
- int ntracks; /* Number of tracks on the disc */
- int length; /* Total running time in seconds */
- int autoplay; /* Start playing CD immediately */
- int playmode; /* How to play the CD */
- int volume; /* Default volume (1-32, 0 for none) */
- struct wm_trackinfo *trk; /* struct wm_trackinfo[ntracks] */
- struct wm_playlist *lists; /* User-specified playlists */
- char *whichdb; /* Which database is this entry from? */
- char *otherdb; /* Unrecognized lines from this entry */
- char *otherrc;
- char *user; /* Name of originating user */
- unsigned int cddbid; /* CDDB-ID of the current disc */
- struct cdinfo *next; /* For browsers, etc. */
-};
-
-/* The global variable "cd" points to the struct for the CD that's playing. */
-extern struct wm_cdinfo *cd;
-
-struct wm_playlist *new_list();
-
-enum wm_cd_modes
-{
- WM_CDM_UNKNOWN = -1,
- WM_CDM_BACK = 0, WM_CDM_TRACK_DONE = 0,
- WM_CDM_PLAYING = 1,
- WM_CDM_FORWARD = 2,
- WM_CDM_PAUSED = 3,
- WM_CDM_STOPPED = 4,
- WM_CDM_EJECTED = 5
-};
-
-/*
- * Drive descriptor structure. Used for access to low-level routines.
- */
-struct wm_drive
-{
- int fd; /* File descriptor, if used by platform */
- char vendor[32]; /* Vendor name */
- char model[32]; /* Drive model */
- char revision[32]; /* Revision of the drive */
- void *aux; /* Pointer to optional platform-specific info */
- void *daux; /* Pointer to optional drive-specific info */
-
- int (*init)();
- int (*get_trackcount)();
- int (*get_cdlen)();
- int (*get_trackinfo)();
- int (*get_drive_status)();
- int (*get_volume)();
- int (*set_volume)();
- int (*pause)();
- int (*resume)();
- int (*stop)();
- int (*play)();
- int (*eject)();
- int (*closetray)();
-};
-
-/*
- * Structure for information of the usage of cddb.
- */
-struct wm_cddb {
- int protocol; /* 0-off, 1-cddbp, 2-http, 3-htproxy */
- char cddb_server[84]; /* host.domain.name:port */
- char mail_adress[84]; /* u...@domain.name */
- char path_to_cgi[84]; /* (/)path/to/cddb.cgi */
- char proxy_server[84]; /* host.domain.name:port */
-};
-extern struct wm_cddb cddb;
-
-
-/*
- * Each platform has to define generic functions, so may as well declare
- * them all here to save space.
- * These functions should never be seen outside libworkman. So I don't care
- * about the wm_ naming convention here.
- */
-int gen_init(),
- gen_get_trackcount(),
- gen_get_cdlen(),
- gen_get_trackinfo(),
- gen_get_drive_status(),
- gen_get_volume(),
- gen_set_volume(),
- gen_pause(),
- gen_resume(),
- gen_stop(),
- gen_play(),
- gen_eject(),
- gen_closetray();
-
-struct wm_drive *find_drive_struct();
-
-
-#endif /* WM_STRUCT_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/wm_version.h
ascd-0.13.2/libworkman/include/workman/wm_version.h
--- ascd-0.13.2/libworkman/include/workman/wm_version.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/wm_version.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,35 +0,0 @@
-#ifndef WM_VERSION_H
-#define WM_VERSION_H
-/*
- * $Id: wm_version.h,v 1.2 1999/05/28 03:35:58 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Version information
- *
- */
-
-#define WM_LIBVER_MAJOR 1
-#define WM_LIBVER_MINOR 4
-#define WM_LIBVER_PL 2
-#define WM_LIBVER_NAME "LibWorkMan"
-
-#endif /* WM_VERSION_H */
diff -Nru ascd-0.13.2/libworkman/include/workman/workman.h
ascd-0.13.2/libworkman/include/workman/workman.h
--- ascd-0.13.2/libworkman/include/workman/workman.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/workman.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,51 +0,0 @@
-#ifndef WORKMAN_H
-#define WORKMAN_H
-/*
- * $Id: workman.h,v 1.5 1999/05/05 16:34:22 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player library
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * all-in-one libworkman include file.
- *
- */
-
-
-/*
- * wm_config should always be included first
- */
-#include "wm_config.h"
-
-#include "workman_defs.h"
-#ifdef BUILD_CDDA
-#include "wm_cdda.h"
-#endif
-#include "wm_cddb.h"
-#include "wm_cdinfo.h"
-#include "wm_cdrom.h"
-#include "wm_database.h"
-#include "wm_helpers.h"
-#include "wm_index.h"
-#include "wm_platform.h"
-#include "wm_scsi.h"
-#include "wm_struct.h"
-
-#endif /* WORKMAN_H */
-
diff -Nru ascd-0.13.2/libworkman/include/workman/workman_defs.h
ascd-0.13.2/libworkman/include/workman/workman_defs.h
--- ascd-0.13.2/libworkman/include/workman/workman_defs.h 2024-02-17
22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/include/workman/workman_defs.h 1970-01-01
00:00:00.000000000 +0000
@@ -1,30 +0,0 @@
-#ifndef WORKMAN_DEFS_H
-#define WORKMAN_DEFS_H
-/*
- * $Id: workman_defs.h,v 1.4 1999/02/14 09:50:47 dirk Exp $
- *
- * This file is part of WorkMan, the civilized CD player program
- * (c) 1991-1997 by Steven Grimm (original author)
- * (c) by Dirk Försterling (current 'author' = maintainer)
- * The maintainer can be contacted by his e-mail address:
- * millib...@deathsdoor.com
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * #defined CONSTANTS
- *
- * Too bad this file seems to be so empty...
- *
- */
-
-#include "wm_version.h"
-
-#endif /* WORKMAN_DEFS_H */
diff -Nru ascd-0.13.2/libworkman/wm_helpers.c
ascd-0.13.2/libworkman/wm_helpers.c
--- ascd-0.13.2/libworkman/wm_helpers.c 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/libworkman/wm_helpers.c 1999-03-07 08:36:41.000000000 +0000
@@ -29,7 +29,6 @@
static char wm_helpers_id[] = "$Id: wm_helpers.c,v 1.7 1999/03/07 08:36:41
dirk Exp $";
#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <errno.h>
diff -Nru ascd-0.13.2/patchlevel.h ascd-0.13.2/patchlevel.h
--- ascd-0.13.2/patchlevel.h 2024-02-17 22:15:41.000000000 +0000
+++ ascd-0.13.2/patchlevel.h 1970-01-01 00:00:00.000000000 +0000
@@ -1,7 +0,0 @@
-/*
- AScd/libworkman CDDB patch
- Nathan Rutman
- 10/2/2001
-*/
-
-#define CDDB_PATCHLEVEL 0.13.2_1