1#ifndef BOOL
2#define BOOL unsigned char
3#endif
4#ifndef TRUE
5#define TRUE (1==1)
6#endif
7#ifndef FALSE
8#define FALSE (1==0)
9#endif
10
11typedef struct _field_select_typ {
12  char *field;
13  char *dest;
14  char *information;
15  struct _field_select_typ *next;
16  struct _field_select_typ *prev;
17} field_select_typ;
18
19typedef struct _song_typ {
20  BOOL convert;           /* Convert to mp3 */
21  char *artist;           /* Artist of Song */
22  char *title;            /* Title of Song  */
23  char *album;            /* Albumname      */
24  char *comment;          /* Comment        */
25  int year;               /* year           */
26  int genre;              /* mp3 - genre    */
27  char *filename;         /* Filename       */
28  char *dirname;          /* Dirname        */
29  BOOL on_fly;            /* Convert on fly */
30  char toc;               /* Tracknumber    */
31  BOOL fn_auto;           /* generate fname */
32  long int cddb_id;       /* ID of CDDB     */
33  char *tmp_wav_file;     /* ripped wavefile*/
34  long int frame_len;     /* length of file */
35  BOOL sampler;           /* is sampler?    */
36  struct _song_typ *next; /* Pointer        */
37  struct _song_typ *prev;
38} song_typ;
39
40
41#define PRG_VERSION VERSION
42
43/* Default values */
44#define MP3C_RCFILE     "mp3crc"
45#define DEF_ETC_PATH    "@prefix@/etc"
46#define TOT_GENRES      147
47#define MP3C_BACKSPACE	''
48#define MP3C_LOCKFILE   "~/.mp3c.lock"
49
50#include <stdio.h>
51#include <stdlib.h>
52#ifdef HAVE_FCNTL_H
53#include <fcntl.h>
54#endif
55
56#ifdef HAVE_UNISTD_H
57#include <unistd.h>
58#endif
59
60#ifdef HAVE_STRINGS_H
61#include <strings.h>
62#endif
63
64#ifdef HAVE_SYS_IOCTL_H
65#include <sys/ioctl.h>
66#endif
67
68#ifdef HAVE_SYS_TIME_H
69#include <sys/time.h>
70#endif
71
72#ifdef HAVE_STRING_H
73#include <string.h>
74#endif
75
76#ifdef HAVE_TIME_H
77#include <time.h>
78#endif
79
80/* Hmm, there seems to be two definitions ;-) */
81#ifdef ENABLE_NLS
82#ifndef HAVE_NLS
83#define HAVE_NLS 1
84#endif
85#endif
86
87#ifdef HAVE_NLS
88#ifdef HAVE_LIBINTL_H
89#include <libintl.h>
90#else
91#include "../intl/libintl.h"
92#endif
93#ifdef HAVE_LOCALE_H
94#include <locale.h>
95#endif
96#define _(str) gettext(str)
97#else
98#define _(str) str
99#endif
100
101/* --- selectable presets ------------------------------------------- */
102#define PRE1_PATTERN	"%7-%8.ogg"	/* pattern: %1:artist,%2:title,
103					 * %3:album,%4:genre,%5:year,
104					 * %6:track,%7:track (leading 0s),
105					 * %8:cddb-id */
106#define PRE1_PATTERN_M	"%3/%1-%2.ogg"
107#define PRE1_ENC_INFO	"0"
108#define PRE1_ENC_NF	"oggenc -b 192 -l \"%3\" -d \"%5\" -c \"comment=%6\" -N \"%a\" -a \"%c\" -t \"%d\" -o \"%2\" \"%1\""
109#define PRE1_ENC_OF	"oggenc -b 192 -l \"%3\" -d \"%5\" -c \"comment=%6\" -N \"%a\" -a \"%c\" -t \"%d\" -o \"%1\" -"
110
111#define PRE2_PATTERN	"%7-%8.mp3"
112#define PRE2_PATTERN_M	"%3/%1-%2.mp3"
113#define PRE2_ENC_INFO	"0"
114#define PRE2_ENC_NF	"lame --preset standard --tt \"%d\" --ta \"%c\" --tl \"%3\" --ty \"%5\" --tc \"%6\" --tn \"%a\" --tg \"%4\" \"%1\" \"%2\""
115#define PRE2_ENC_OF	"lame --preset standard --tt \"%d\" --ta \"%c\" --tl \"%3\" --ty \"%5\" --tc \"%6\" --tn \"%a\" --tg \"%4\" - \"%1\""
116/* ------------------------------------------------------------------ */
117
118