initial import of grip 2.95:
-- Grip is a front-end to external cd audio rippers (such as dagrab or cdda2wav). It also provides an automated frontend for MP3 encoders, letting you take a disc and transform it easily straight into MP3s. The CDDB protocol is supported for retrieving track information from disc database servers. Grip works with DigitalDJ to provide a unified computerized version of your music collection.
This commit is contained in:
parent
0bb946130e
commit
1c08abfd36
32
audio/grip/Makefile
Normal file
32
audio/grip/Makefile
Normal file
@ -0,0 +1,32 @@
|
||||
# $OpenBSD: Makefile,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
|
||||
COMMENT= "front-end to external cd audio rippers and mp3 encoders"
|
||||
|
||||
V= 2.95
|
||||
DISTNAME= grip-${V}
|
||||
CATEGORIES= audio
|
||||
NEED_VERSION= 1.402
|
||||
EXTRACT_SUFX= .tgz
|
||||
|
||||
MAINTAINER= David Lebel <lebel@openbsd.org>
|
||||
|
||||
HOMEPAGE= http://www.nostatic.org/grip/
|
||||
|
||||
PERMIT_PACKAGE_CDROM= Yes
|
||||
PERMIT_PACKAGE_FTP= Yes
|
||||
PERMIT_DISTFILES_CDROM= Yes
|
||||
PERMIT_DISTFILES_FTP= Yes
|
||||
|
||||
MASTER_SITES= http://www.nostatic.org/grip/
|
||||
|
||||
LIB_DEPENDS= gtk.1.2::x11/gtk+
|
||||
USE_GMAKE= Yes
|
||||
|
||||
ALL_TARGET= gripnopar gcd
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/grip ${PREFIX}/bin/
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/gcd ${PREFIX}/bin/
|
||||
${INSTALL_DATA} ${WRKSRC}/grip.1 ${PREFIX}/man/man1/
|
||||
|
||||
.include <bsd.port.mk>
|
3
audio/grip/files/md5
Normal file
3
audio/grip/files/md5
Normal file
@ -0,0 +1,3 @@
|
||||
MD5 (grip-2.95.tgz) = fabf302f9f35708725415b2d1f7d3602
|
||||
RMD160 (grip-2.95.tgz) = 1336dbf471177d4789b404272d165082ef863e1d
|
||||
SHA1 (grip-2.95.tgz) = ef4cdfa1fd06d1487257260d12c87d8da4080980
|
50
audio/grip/patches/patch-Makefile
Normal file
50
audio/grip/patches/patch-Makefile
Normal file
@ -0,0 +1,50 @@
|
||||
$OpenBSD: patch-Makefile,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
--- Makefile.orig Wed Oct 18 15:12:53 2000
|
||||
+++ Makefile Tue Apr 10 15:06:07 2001
|
||||
@@ -6,14 +6,11 @@ OS=$(shell uname -s)
|
||||
# Compiler
|
||||
CC= gcc
|
||||
|
||||
-# Install prefix
|
||||
-PREFIX=/usr
|
||||
-
|
||||
# Installation directory -- where the binary will go
|
||||
-INSTALLDIR= $(PREFIX)/bin
|
||||
+INSTALLDIR= $(TRUEPREFIX)/bin
|
||||
|
||||
# Location to store auxilliary files
|
||||
-AUXDIR= $(PREFIX)/lib/grip
|
||||
+AUXDIR= $(TRUEPREFIX)/lib/grip
|
||||
|
||||
|
||||
# Compiler flags
|
||||
@@ -28,13 +25,17 @@ endif
|
||||
ifeq ($(OS), FreeBSD)
|
||||
LIBS+= -pthread
|
||||
endif
|
||||
+ifeq ($(OS), OpenBSD)
|
||||
+LIBS+= -D_THREAD_SAFE
|
||||
+endif
|
||||
+
|
||||
PARLIBS= cdparanoia/interface/libcdda_interface.a \
|
||||
cdparanoia/paranoia/libcdda_paranoia.a
|
||||
|
||||
# This is needed for "make install"
|
||||
OWNER = root
|
||||
-GROUP = root
|
||||
-INSTALL = /usr/bin/install -o $(OWNER) -g $(GROUP)
|
||||
+GROUP = wheel
|
||||
+INSTALL = /usr/bin/install -c -o $(OWNER) -g $(GROUP)
|
||||
|
||||
|
||||
# ----------- You shouldn't need to make changes below here. -------------
|
||||
@@ -43,7 +44,8 @@ VERSION= 2.95
|
||||
|
||||
OBJS= cddb.o cd.o id3.o bug.o parsecfg.o dialog/input.o dialog/message.o
|
||||
|
||||
-all: grip gcd
|
||||
+all: gripnopar gcd
|
||||
+xall: grip gcd
|
||||
|
||||
grip: grip.o $(OBJS) cdpar.o
|
||||
$(CC) -o grip grip.o cdpar.o $(OBJS) $(LIBS) $(PARLIBS)
|
130
audio/grip/patches/patch-cd_c
Normal file
130
audio/grip/patches/patch-cd_c
Normal file
@ -0,0 +1,130 @@
|
||||
$OpenBSD: patch-cd_c,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
--- cd.c.orig Wed Oct 18 15:12:53 2000
|
||||
+++ cd.c Tue Apr 10 15:00:59 2001
|
||||
@@ -46,7 +46,7 @@
|
||||
#include <sys/cdio.h>
|
||||
#endif
|
||||
|
||||
-#if defined(__FreeBSD__)
|
||||
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#define CDIOREADSUBCHANNEL CDIOCREADSUBCHANNEL
|
||||
#endif
|
||||
|
||||
@@ -55,6 +55,10 @@
|
||||
#include <io/cam/cdrom.h>
|
||||
#endif
|
||||
|
||||
+ /* for OS's that need to re-open the CD after a disc change */
|
||||
+extern char cddevice[];
|
||||
+extern int g_cd_desc;
|
||||
+
|
||||
/* Initialize the CD-ROM for playing audio CDs */
|
||||
|
||||
int CDInitDevice(char *device_name)
|
||||
@@ -128,9 +132,28 @@ int CDStat(int cd_desc,struct disc_info
|
||||
#ifdef CDIOREADTOCHEADER
|
||||
struct ioc_toc_header cdth;
|
||||
#endif
|
||||
+ int ret;
|
||||
|
||||
int readtracks,frame[MAX_TRACKS],pos;
|
||||
- int retcode;
|
||||
+
|
||||
+#ifdef __OpenBSD__ /* fix for disc info never updating */
|
||||
+ if ((disc->disc_present == 0) && (cd_desc < 0)) {
|
||||
+ if((cd_desc = g_cd_desc = open(cddevice, O_RDONLY
|
||||
+# ifdef NON_BLOCKING
|
||||
+ | O_NONBLOCK
|
||||
+# endif
|
||||
+ )) < 0){
|
||||
+# ifdef DEBUG
|
||||
+ // fprintf(stderr, "open failed (%s)\n", cddevice);
|
||||
+ fprintf(stderr, "o");
|
||||
+# endif
|
||||
+ return -1;
|
||||
+ }
|
||||
+# ifdef DEBUG
|
||||
+ fprintf(stderr, "*");
|
||||
+# endif
|
||||
+ }
|
||||
+#endif /* __OpenBSD__ fix for disc info never updating */
|
||||
|
||||
#ifdef CDROM_DRIVE_STATUS
|
||||
retcode = ioctl(cd_desc, CDROM_DRIVE_STATUS, CDSL_CURRENT);
|
||||
@@ -143,29 +166,41 @@ int CDStat(int cd_desc,struct disc_info
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
-#ifdef CDIOREADSUBCHANNEL
|
||||
+#ifdef CDIOREADSUBCHANNEL /* netbsd */
|
||||
bzero(&cdsc, sizeof(cdsc));
|
||||
cdsc.data = &data;
|
||||
cdsc.data_len = sizeof(data);
|
||||
cdsc.data_format = CD_CURRENT_POSITION;
|
||||
cdsc.address_format = CD_MSF_FORMAT;
|
||||
|
||||
- if(ioctl(cd_desc, CDIOCREADSUBCHANNEL, (char *)&cdsc) < 0)
|
||||
+ if((ret = ioctl(cd_desc, CDIOCREADSUBCHANNEL, (char *)&cdsc)) < 0)
|
||||
#endif
|
||||
#ifdef CDROM_READ_SUBCHANNEL
|
||||
sch.sch_data_format = CDROM_CURRENT_POSITION;
|
||||
|
||||
sch.sch_address_format = CDROM_MSF_FORMAT;
|
||||
+
|
||||
+ g_message("CDIOCREADSUBCHANNEL %d %m", ret);
|
||||
|
||||
if(ioctl(cd_desc, CDROM_READ_SUBCHANNEL, &sch) < 0)
|
||||
#endif
|
||||
-#ifdef CDROMSUBCHNL
|
||||
+#ifdef CDROMSUBCHNL /* netbsd - w. no toc flag, new disc */
|
||||
cdsc.cdsc_format = CDROM_MSF;
|
||||
|
||||
- if(ioctl(cd_desc, CDROMSUBCHNL, &cdsc) < 0)
|
||||
+ errno = 0;
|
||||
+
|
||||
+ if((ret = ioctl(cd_desc, CDROMSUBCHNL, &cdsc)) < 0)
|
||||
#endif
|
||||
{
|
||||
+ /* errno 5 = EIO, 9 = BAD_FD */
|
||||
+ g_message("CDROMSUBCHNL %d %d", ret, errno);
|
||||
disc->disc_present = 0;
|
||||
+#ifdef __OpenBSD__ /* fix for disc info never updating */
|
||||
+ if (cd_desc >= 0){
|
||||
+ close(cd_desc);
|
||||
+ g_cd_desc = -1;
|
||||
+ }
|
||||
+#endif /* __OpenBSD__ fix for disc info never updating */
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -177,6 +212,12 @@ int CDStat(int cd_desc,struct disc_info
|
||||
(cdsc.cdsc_audiostatus<0x11||cdsc.cdsc_audiostatus>0x15))
|
||||
{
|
||||
disc->disc_present = 0;
|
||||
+#ifdef __OpenBSD__ /* fix for disc info never updating */
|
||||
+ if (cd_desc >= 0){
|
||||
+ close(cd_desc);
|
||||
+ g_cd_desc = -1;
|
||||
+ }
|
||||
+#endif /* __OpenBSD__ fix for disc info never updating */
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -240,7 +281,7 @@ int CDStat(int cd_desc,struct disc_info
|
||||
|
||||
/* Read the Table Of Contents header */
|
||||
|
||||
-#ifdef CDIOREADTOCHEADER
|
||||
+#ifdef CDIOREADTOCHEADER /* netbsd */
|
||||
if(ioctl(cd_desc, CDIOREADTOCHEADER, (char *)&cdth) < 0) {
|
||||
printf("Error: Failed to read disc contents\n");
|
||||
|
||||
@@ -261,7 +302,7 @@ int CDStat(int cd_desc,struct disc_info
|
||||
|
||||
/* Read the table of contents */
|
||||
|
||||
-#ifdef CDIOREADTOCENTRYS
|
||||
+#ifdef CDIOREADTOCENTRYS /* netbsd */
|
||||
cdte.address_format = CD_MSF_FORMAT;
|
||||
cdte.starting_track = 0;
|
||||
cdte.data = toc_buffer;
|
21
audio/grip/patches/patch-cddb_c
Normal file
21
audio/grip/patches/patch-cddb_c
Normal file
@ -0,0 +1,21 @@
|
||||
$OpenBSD: patch-cddb_c,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
--- cddb.c.orig Wed Oct 18 15:12:53 2000
|
||||
+++ cddb.c Tue Apr 10 15:00:59 2001
|
||||
@@ -396,7 +396,7 @@ static void CDDBProcessLine(char *inbuff
|
||||
int numtracks)
|
||||
{
|
||||
int track;
|
||||
- int len;
|
||||
+ int len = 0;
|
||||
char *st;
|
||||
|
||||
if(!strncasecmp(inbuffer,"DTITLE",6)) {
|
||||
@@ -572,7 +572,7 @@ gboolean CDDBStatDiscData(int cd_desc)
|
||||
|
||||
int CDDBReadDiscData(int cd_desc,DiscData *ddata)
|
||||
{
|
||||
- FILE *cddb_data;
|
||||
+ FILE *cddb_data = NULL;
|
||||
int index,genre;
|
||||
char root_dir[256], file[256], inbuf[512];
|
||||
struct disc_info disc;
|
21
audio/grip/patches/patch-config_h
Normal file
21
audio/grip/patches/patch-config_h
Normal file
@ -0,0 +1,21 @@
|
||||
$OpenBSD: patch-config_h,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
--- config.h.orig Wed Oct 18 15:12:53 2000
|
||||
+++ config.h Tue Apr 10 15:00:59 2001
|
||||
@@ -5,7 +5,7 @@
|
||||
/* Mike's email address */
|
||||
#define MAINTAINER "oliphant@gtk.org"
|
||||
|
||||
-#if defined(__linux__) || defined(__FreeBSD__) || defined(__osf__) /* __osf__ ?? */
|
||||
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__osf__) /* __osf__ ?? */
|
||||
|
||||
#define MAILER "/usr/sbin/sendmail -t"
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#define HAVE_MNTENT_H 1
|
||||
|
||||
|
||||
-#elif defined(__FreeBSD__)
|
||||
+#elif defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
|
||||
/* Define if you have the <io/cam/cdrom.h> header file. (FreeBSD, OpenBSD ,
|
||||
Solaris*/
|
441
audio/grip/patches/patch-grip_c
Normal file
441
audio/grip/patches/patch-grip_c
Normal file
@ -0,0 +1,441 @@
|
||||
$OpenBSD: patch-grip_c,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
--- grip.c.orig Wed Oct 18 15:12:53 2000
|
||||
+++ grip.c Tue Apr 10 15:00:59 2001
|
||||
@@ -38,7 +38,7 @@
|
||||
#if defined(__linux__)
|
||||
#include <sys/vfs.h>
|
||||
#endif
|
||||
-#if defined(__FreeBSD__)
|
||||
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#include <sys/param.h>
|
||||
#include <sys/mount.h>
|
||||
#endif
|
||||
@@ -125,7 +125,7 @@ void SelectRow(GtkWidget *widget,gint ro
|
||||
GdkEventButton *event,gpointer data);
|
||||
void CDDBToggle(void);
|
||||
void LookupDisc(gboolean manual);
|
||||
-void DoLookup(void);
|
||||
+void *DoLookup(void *);
|
||||
gboolean CDDBLookupDisc(CDDBServer *server);
|
||||
void SubmitEntryCB(void);
|
||||
void SubmitEntry(void);
|
||||
@@ -156,6 +156,9 @@ void Usage(void);
|
||||
void ParseArgs(int numargs,char *args[]);
|
||||
void ShuffleTracks(int num_tracks);
|
||||
void MakeStyles(void);
|
||||
+void setCurrentTrackIndex(int track);
|
||||
+void ParseRipCmd(char *instr,char *outstr,int track,int startsec,int endsec,
|
||||
+ char *filename);
|
||||
|
||||
/* Rip-related functions */
|
||||
|
||||
@@ -211,7 +214,7 @@ GtkStyle *style_dark_grey;
|
||||
|
||||
GdkCursor *wait_cursor;
|
||||
|
||||
-int cd_desc;
|
||||
+int g_cd_desc;
|
||||
int changer_slots;
|
||||
int current_disc=0;
|
||||
int volume=255;
|
||||
@@ -792,7 +795,7 @@ void PlaylistChanged(void)
|
||||
|
||||
InitProgram(info.disc_totaltracks,play_mode);
|
||||
|
||||
- if(CDDBWriteDiscData(cd_desc,&ddata,NULL,TRUE)<0)
|
||||
+ if(CDDBWriteDiscData(g_cd_desc,&ddata,NULL,TRUE)<0)
|
||||
DisplayMsg("Error saving disc data\n");
|
||||
}
|
||||
|
||||
@@ -854,7 +857,7 @@ void SetYear(int year)
|
||||
void SaveDiscInfo(void)
|
||||
{
|
||||
if(have_disc) {
|
||||
- if(CDDBWriteDiscData(cd_desc,&ddata,NULL,TRUE)<0)
|
||||
+ if(CDDBWriteDiscData(g_cd_desc,&ddata,NULL,TRUE)<0)
|
||||
DisplayMsg("Error saving disc data\n");
|
||||
}
|
||||
else BoolDialog("No disc present","OK",NULL,NULL,NULL);
|
||||
@@ -974,7 +977,7 @@ void SetVolume(GtkWidget *widget,gpointe
|
||||
volume=vol.vol_front.left=vol.vol_front.right=
|
||||
vol.vol_back.left=vol.vol_back.right=GTK_ADJUSTMENT(widget)->value;
|
||||
|
||||
- CDSetVolume(cd_desc,&vol);
|
||||
+ CDSetVolume(g_cd_desc,&vol);
|
||||
}
|
||||
|
||||
void NextTrack(void)
|
||||
@@ -986,7 +989,7 @@ void NextTrack(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
- CDStat(cd_desc,&info,FALSE);
|
||||
+ CDStat(g_cd_desc,&info,FALSE);
|
||||
|
||||
if(current_track_index<(prog_totaltracks-1)) {
|
||||
gtk_clist_select_row(GTK_CLIST(trackclist),
|
||||
@@ -1009,7 +1012,7 @@ void PrevTrack(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
- CDStat(cd_desc,&info,FALSE);
|
||||
+ CDStat(g_cd_desc,&info,FALSE);
|
||||
|
||||
if((info.disc_mode==CDAUDIO_PLAYING) &&
|
||||
((info.disc_frame - info.track[info.disc_track-1].track_start) > 100))
|
||||
@@ -1120,7 +1123,7 @@ void FastFwd(void)
|
||||
tv.seconds=5;
|
||||
|
||||
if((info.disc_mode==CDAUDIO_PLAYING)||(info.disc_mode==CDAUDIO_PAUSED)) {
|
||||
- CDAdvance(cd_desc,&info,&tv);
|
||||
+ CDAdvance(g_cd_desc,&info,&tv);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1146,7 +1149,7 @@ void Rewind(void)
|
||||
tv.seconds=-5;
|
||||
|
||||
if((info.disc_mode==CDAUDIO_PLAYING)||(info.disc_mode==CDAUDIO_PAUSED)) {
|
||||
- CDAdvance(cd_desc,&info,&tv);
|
||||
+ CDAdvance(g_cd_desc,&info,&tv);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1161,7 +1164,7 @@ void NextDisc(void)
|
||||
|
||||
if(changer_slots>1) {
|
||||
current_disc=(current_disc+1)%changer_slots;
|
||||
- CDChangerSelectDisc(cd_desc,current_disc);
|
||||
+ CDChangerSelectDisc(g_cd_desc,current_disc);
|
||||
have_disc=FALSE;
|
||||
}
|
||||
}
|
||||
@@ -1172,8 +1175,8 @@ void StopPlay(void)
|
||||
if(ripping) return;
|
||||
#endif
|
||||
|
||||
- CDStop(cd_desc);
|
||||
- CDStat(cd_desc,&info,FALSE);
|
||||
+ CDStop(g_cd_desc);
|
||||
+ CDStat(g_cd_desc,&info,FALSE);
|
||||
stopped=TRUE;
|
||||
|
||||
if(stop_first)
|
||||
@@ -1197,8 +1200,8 @@ void EjectDisc(void)
|
||||
|
||||
if(have_disc) {
|
||||
Debug("Have disc -- ejecting\n");
|
||||
- CDStop(cd_desc);
|
||||
- CDEject(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
+ CDEject(g_cd_desc);
|
||||
playing=0;
|
||||
have_disc=FALSE;
|
||||
update_required=TRUE;
|
||||
@@ -1207,12 +1210,12 @@ void EjectDisc(void)
|
||||
}
|
||||
else {
|
||||
if(faulty_eject) {
|
||||
- if(tray_open) CDClose(cd_desc);
|
||||
- else CDEject(cd_desc);
|
||||
+ if(tray_open) CDClose(g_cd_desc);
|
||||
+ else CDEject(g_cd_desc);
|
||||
}
|
||||
else {
|
||||
- if(TrayOpen(cd_desc)!=0) CDClose(cd_desc);
|
||||
- else CDEject(cd_desc);
|
||||
+ if(TrayOpen(g_cd_desc)!=0) CDClose(g_cd_desc);
|
||||
+ else CDEject(g_cd_desc);
|
||||
}
|
||||
|
||||
tray_open=!tray_open;
|
||||
@@ -1232,7 +1235,7 @@ void PlayTrackCB(GtkWidget *widget,gpoin
|
||||
}
|
||||
#endif
|
||||
|
||||
- CDStat(cd_desc,&info,FALSE);
|
||||
+ CDStat(g_cd_desc,&info,FALSE);
|
||||
|
||||
if(play_mode!=PM_NORMAL&&!((info.disc_mode==CDAUDIO_PLAYING)||
|
||||
info.disc_mode==CDAUDIO_PAUSED)) {
|
||||
@@ -1247,11 +1250,11 @@ void PlayTrackCB(GtkWidget *widget,gpoin
|
||||
if(track==(info.disc_track-1)) {
|
||||
switch(info.disc_mode) {
|
||||
case CDAUDIO_PLAYING:
|
||||
- CDPause(cd_desc);
|
||||
+ CDPause(g_cd_desc);
|
||||
return;
|
||||
break;
|
||||
case CDAUDIO_PAUSED:
|
||||
- CDResume(cd_desc);
|
||||
+ CDResume(g_cd_desc);
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
@@ -1267,8 +1270,8 @@ void PlayTrack(int track)
|
||||
Busy();
|
||||
|
||||
if(play_mode==PM_NORMAL)
|
||||
- CDPlayTrack(cd_desc,&info,track+1,info.disc_totaltracks);
|
||||
- else CDPlayTrack(cd_desc,&info,track+1,track+1);
|
||||
+ CDPlayTrack(g_cd_desc,&info,track+1,info.disc_totaltracks);
|
||||
+ else CDPlayTrack(g_cd_desc,&info,track+1,track+1);
|
||||
|
||||
UnBusy();
|
||||
|
||||
@@ -1288,16 +1291,16 @@ void CheckNewDisc(void)
|
||||
if(!looking_up) {
|
||||
Debug("Checking for a new disc\n");
|
||||
|
||||
- if( (CDStat(cd_desc,&info,FALSE) == 0)
|
||||
+ if( (CDStat(g_cd_desc,&info,FALSE) == 0)
|
||||
&& info.disc_present
|
||||
- && (CDStat(cd_desc,&info,TRUE) == 0) ) {
|
||||
+ && (CDStat(g_cd_desc,&info,TRUE) == 0) ) {
|
||||
|
||||
Debug("CDStat found a disc, checking tracks\n");
|
||||
|
||||
if(CheckTracks()) {
|
||||
Debug("We have a valid disc!\n");
|
||||
|
||||
- new_id=CDDBDiscid(cd_desc);
|
||||
+ new_id=CDDBDiscid(g_cd_desc);
|
||||
InitProgram(info.disc_totaltracks,play_mode);
|
||||
if(play_first)
|
||||
if(info.disc_mode == CDAUDIO_COMPLETED ||
|
||||
@@ -1352,7 +1355,7 @@ void UpdateDisplay(void)
|
||||
|
||||
if(!update_required) {
|
||||
if(have_disc) {
|
||||
- CDStat(cd_desc,&info,FALSE);
|
||||
+ CDStat(g_cd_desc,&info,FALSE);
|
||||
|
||||
if((info.disc_mode==CDAUDIO_PLAYING)||
|
||||
(info.disc_mode==CDAUDIO_PAUSED)) {
|
||||
@@ -1420,7 +1423,7 @@ void UpdateDisplay(void)
|
||||
if(!stopped) PlayTrack(CURRENT_TRACK);
|
||||
}
|
||||
else if(stopped) {
|
||||
- CDStop(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
#ifndef GRIPCD
|
||||
frames=secs=mins=0;
|
||||
g_snprintf(buf,80,"Current sector: %6d",frames);
|
||||
@@ -1654,7 +1657,7 @@ void CDDBToggle(void)
|
||||
if(looking_up) {
|
||||
#ifdef SOLARIS
|
||||
pthread_exit(&status);
|
||||
-#elif defined(__FreeBSD__)
|
||||
+#elif defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
pthread_kill(cddb_thread, 0);
|
||||
#else
|
||||
pthread_kill_other_threads_np();
|
||||
@@ -1682,15 +1685,15 @@ void LookupDisc(gboolean manual)
|
||||
ddata.data_multi_artist=FALSE;
|
||||
ddata.data_year=0;
|
||||
|
||||
- present=CDDBStatDiscData(cd_desc);
|
||||
+ present=CDDBStatDiscData(g_cd_desc);
|
||||
|
||||
if(!manual&&present) {
|
||||
- CDDBReadDiscData(cd_desc,&ddata);
|
||||
+ CDDBReadDiscData(g_cd_desc,&ddata);
|
||||
update_required=TRUE;
|
||||
}
|
||||
else {
|
||||
if(!manual) {
|
||||
- ddata.data_id=CDDBDiscid(cd_desc);
|
||||
+ ddata.data_id=CDDBDiscid(g_cd_desc);
|
||||
ddata.data_genre=7; /* "misc" */
|
||||
strcpy(ddata.data_title,"Unknown Disc");
|
||||
strcpy(ddata.data_artist,"");
|
||||
@@ -1710,15 +1713,23 @@ void LookupDisc(gboolean manual)
|
||||
if(!local_mode && (manual?TRUE:automatic_cddb)) {
|
||||
looking_up=TRUE;
|
||||
|
||||
- pthread_create(&cddb_thread,NULL,(void *)&DoLookup,NULL);
|
||||
+ Debug("creating cddb lookup thread.\n");
|
||||
+ pthread_create(&cddb_thread,NULL, DoLookup,NULL);
|
||||
+#if 1
|
||||
+ /* XXX: */
|
||||
+ Debug("join cddb lookup thread.\n");
|
||||
+ pthread_join(cddb_thread, NULL);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-void DoLookup(void)
|
||||
+void *DoLookup(void *unused)
|
||||
{
|
||||
int cddb_found = 0;
|
||||
|
||||
+ Debug("cddb lookup thread running.\n");
|
||||
+
|
||||
if(!CDDBLookupDisc(&dbserver)) {
|
||||
if(*(dbserver2.name)) {
|
||||
if(CDDBLookupDisc(&dbserver2)) {
|
||||
@@ -1737,6 +1748,7 @@ void DoLookup(void)
|
||||
|
||||
looking_up=FALSE;
|
||||
pthread_exit(0);
|
||||
+ return (NULL);
|
||||
}
|
||||
|
||||
gboolean CDDBLookupDisc(CDDBServer *server)
|
||||
@@ -1749,15 +1761,15 @@ gboolean CDDBLookupDisc(CDDBServer *serv
|
||||
if(server->use_proxy)
|
||||
Debug("Querying %s (through %s) for disc %02x.\n",server->name,
|
||||
server->proxy->name,
|
||||
- CDDBDiscid(cd_desc));
|
||||
+ CDDBDiscid(g_cd_desc));
|
||||
else
|
||||
Debug("Querying %s for disc %02x.\n",server->name,
|
||||
- CDDBDiscid(cd_desc));
|
||||
+ CDDBDiscid(g_cd_desc));
|
||||
|
||||
strncpy(hello.hello_program,PROGRAM,256);
|
||||
strncpy(hello.hello_version,VERSION,256);
|
||||
|
||||
- if(!CDDBDoQuery(cd_desc,server,&hello,&query)) {
|
||||
+ if(!CDDBDoQuery(g_cd_desc,server,&hello,&query)) {
|
||||
update_required=TRUE;
|
||||
} else {
|
||||
switch(query.query_match) {
|
||||
@@ -1768,12 +1780,12 @@ gboolean CDDBLookupDisc(CDDBServer *serv
|
||||
query.query_list[0].list_title);
|
||||
entry.entry_genre = query.query_list[0].list_genre;
|
||||
entry.entry_id = query.query_list[0].list_id;
|
||||
- CDDBRead(cd_desc,server,&hello,&entry,&ddata);
|
||||
+ CDDBRead(g_cd_desc,server,&hello,&entry,&ddata);
|
||||
|
||||
Debug("Done\n");
|
||||
success=TRUE;
|
||||
|
||||
- if(CDDBWriteDiscData(cd_desc,&ddata,NULL,TRUE)<0)
|
||||
+ if(CDDBWriteDiscData(g_cd_desc,&ddata,NULL,TRUE)<0)
|
||||
printf("Error saving disc data\n");
|
||||
|
||||
update_required=TRUE;
|
||||
@@ -1860,7 +1872,7 @@ void SubmitEntry(void)
|
||||
fprintf(efp , "To: %s\nFrom: %s\nSubject: cddb %s %02x\n\n", \
|
||||
cddb_submit_email,user_email,CDDBGenre(ddata.data_genre), \
|
||||
ddata.data_id);
|
||||
- if(CDDBWriteDiscData(cd_desc,&ddata,efp,FALSE)<0) {
|
||||
+ if(CDDBWriteDiscData(g_cd_desc,&ddata,efp,FALSE)<0) {
|
||||
DisplayMsg("Error: Unable to write disc data");
|
||||
fclose(efp);
|
||||
}
|
||||
@@ -1924,7 +1936,7 @@ void UpdateTracks(void)
|
||||
if(have_disc) {
|
||||
auto_eject_countdown=0; /* Reset to make sure we don't eject twice */
|
||||
|
||||
- current_discid=CDDBDiscid(cd_desc);
|
||||
+ current_discid=CDDBDiscid(g_cd_desc);
|
||||
|
||||
SetTitle(ddata.data_title);
|
||||
SetArtist(ddata.data_artist);
|
||||
@@ -3286,7 +3298,7 @@ GtkWidget *MakeControls(void)
|
||||
gtk_widget_set_name(volume_control,"darkgrey");
|
||||
gtk_box_pack_start(GTK_BOX(vbox),volume_control,FALSE,FALSE,0);
|
||||
|
||||
- /* CDGetVolume(cd_desc,&vol);
|
||||
+ /* CDGetVolume(g_cd_desc,&vol);
|
||||
gtk_adjustment_set_value(GTK_ADJUSTMENT(adj),(vol.vol_front.left+
|
||||
vol.vol_front.right)/2);*/
|
||||
|
||||
@@ -3770,7 +3782,7 @@ void ParseFileFmt(char *instr,char *outs
|
||||
else strncpy(outstr,"NoTitle",left);
|
||||
break;
|
||||
case 'i':
|
||||
- g_snprintf(outstr,PATH_MAX,"%02x",CDDBDiscid(cd_desc));
|
||||
+ g_snprintf(outstr,PATH_MAX,"%02x",CDDBDiscid(g_cd_desc));
|
||||
break;
|
||||
#ifndef GRIPCD
|
||||
case 'g':
|
||||
@@ -3929,7 +3941,7 @@ void ParseEncFileFmt(char *instr,char *o
|
||||
/* Make file1 relative to file2 */
|
||||
char *MakeRelative(char *file1,char *file2)
|
||||
{
|
||||
- int pos, pos2, slashcnt, i;
|
||||
+ int pos, pos2 = 0, slashcnt, i;
|
||||
char *rel=file1;
|
||||
char tem[PATH_MAX]="";
|
||||
|
||||
@@ -4464,7 +4476,7 @@ void RedirectIO(gboolean redirect_output
|
||||
}
|
||||
|
||||
close(fd);
|
||||
- close(cd_desc);
|
||||
+ close(g_cd_desc);
|
||||
}
|
||||
|
||||
void ID3Add(char *file,EncodeTrack *enc_track)
|
||||
@@ -4494,7 +4506,7 @@ void FillInEncode(int track,EncodeTrack
|
||||
strncpy(new_track->disc_name,ddata.data_title,80);
|
||||
strncpy(new_track->disc_artist,ddata.data_artist,80);
|
||||
new_track->id3_genre=id3_genre_number;
|
||||
- new_track->discid=CDDBDiscid(cd_desc);
|
||||
+ new_track->discid=CDDBDiscid(g_cd_desc);
|
||||
}
|
||||
|
||||
void AddToEncode(int track)
|
||||
@@ -4629,7 +4641,7 @@ void DoRip(GtkWidget *widget,gpointer da
|
||||
return;
|
||||
}
|
||||
|
||||
- CDStop(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
stopped=TRUE;
|
||||
|
||||
if(ripping) return;
|
||||
@@ -4753,7 +4765,7 @@ gboolean RipNextTrack(void)
|
||||
sprintf(tmp,"Rip: Trk %d (0.0x)",rip_track+1);
|
||||
gtk_label_set(GTK_LABEL(rip_prog_label),tmp);
|
||||
|
||||
- CDStop(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
|
||||
if(rip_partial) {
|
||||
startsec=start_sector;
|
||||
@@ -4854,7 +4866,7 @@ void PlaySegmentCB(GtkWidget *widget,gpo
|
||||
|
||||
void PlaySegment(int track)
|
||||
{
|
||||
- CDPlayFrames(cd_desc,info.track[track].track_start+start_sector,
|
||||
+ CDPlayFrames(g_cd_desc,info.track[track].track_start+start_sector,
|
||||
info.track[track].track_start+end_sector);
|
||||
}
|
||||
|
||||
@@ -5220,8 +5232,8 @@ int main(int argc,char *argv[])
|
||||
find_cdrom();
|
||||
#endif
|
||||
|
||||
- cd_desc=CDInitDevice(cddevice);
|
||||
- if(cd_desc==-1) {
|
||||
+ g_cd_desc=CDInitDevice(cddevice);
|
||||
+ if(g_cd_desc==-1) {
|
||||
BoolDialog("Unable to open the cd device. Please make sure that you are\n"
|
||||
"using the correct device (passed to the program with \"-d\")\n"
|
||||
"and that you have permission to access the device. See the\n"
|
||||
@@ -5232,9 +5244,9 @@ int main(int argc,char *argv[])
|
||||
have_working_device=TRUE;
|
||||
|
||||
if(!no_interrupt)
|
||||
- CDStop(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
|
||||
- changer_slots=CDChangerSlots(cd_desc);
|
||||
+ changer_slots=CDChangerSlots(g_cd_desc);
|
||||
|
||||
CheckNewDisc();
|
||||
UpdateDisplay();
|
||||
@@ -5245,7 +5257,7 @@ int main(int argc,char *argv[])
|
||||
gtk_main();
|
||||
|
||||
if(!no_interrupt)
|
||||
- CDStop(cd_desc);
|
||||
+ CDStop(g_cd_desc);
|
||||
|
||||
DoSaveConfig();
|
||||
|
8
audio/grip/pkg/DESCR
Normal file
8
audio/grip/pkg/DESCR
Normal file
@ -0,0 +1,8 @@
|
||||
Grip is a front-end to external cd audio rippers (such as dagrab
|
||||
or cdda2wav). It also provides an automated frontend for MP3 encoders,
|
||||
letting you take a disc and transform it easily straight into MP3s.
|
||||
The CDDB protocol is supported for retrieving track information
|
||||
from disc database servers. Grip works with DigitalDJ to provide a
|
||||
unified "computerized" version of your music collection.
|
||||
|
||||
WWW: ${HOMEPAGE}
|
4
audio/grip/pkg/PLIST
Normal file
4
audio/grip/pkg/PLIST
Normal file
@ -0,0 +1,4 @@
|
||||
@comment $OpenBSD: PLIST,v 1.1.1.1 2001/05/19 00:21:00 lebel Exp $
|
||||
bin/gcd
|
||||
bin/grip
|
||||
man/man1/grip.1
|
Loading…
Reference in New Issue
Block a user