From 4d3b90f3c3611b9707dea1d5b54af6b8cd2c2f9c Mon Sep 17 00:00:00 2001 From: Josh Coalson Date: Fri, 23 Feb 2001 21:38:26 +0000 Subject: [PATCH] initial import --- src/metaflac/Makefile.am | 6 +++ src/metaflac/Makefile.lite | 14 ++++++ src/metaflac/Makefile.vc | 23 +++++++++ src/metaflac/main.c | 95 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 src/metaflac/Makefile.am create mode 100644 src/metaflac/Makefile.lite create mode 100644 src/metaflac/Makefile.vc create mode 100644 src/metaflac/main.c diff --git a/src/metaflac/Makefile.am b/src/metaflac/Makefile.am new file mode 100644 index 00000000..6b2e2407 --- /dev/null +++ b/src/metaflac/Makefile.am @@ -0,0 +1,6 @@ +bin_PROGRAMS = metaflac +CFLAGS = @CFLAGS@ + +metaflac_SOURCES = \ + main.c +metaflac_LDFLAGS = -lm diff --git a/src/metaflac/Makefile.lite b/src/metaflac/Makefile.lite new file mode 100644 index 00000000..5c8afdfd --- /dev/null +++ b/src/metaflac/Makefile.lite @@ -0,0 +1,14 @@ +# +# GNU makefile +# + +PROGRAM_NAME = metaflac +INCLUDES = -I./include -I../../include +LIBS = -lm + +OBJS = \ + main.o + +include ../../build/exe.mk + +# DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/src/metaflac/Makefile.vc b/src/metaflac/Makefile.vc new file mode 100644 index 00000000..50615dee --- /dev/null +++ b/src/metaflac/Makefile.vc @@ -0,0 +1,23 @@ +!include + +!IFDEF DEBUG +.c.obj: + $(cc) $(cdebug) $(cflags) /I "..\..\include" /I ".\include" -DSTRICT -YX /Od /D "_DEBUG" $< +!else +.c.obj: + $(cc) /O2 $(crelease) $(cflags) /I "..\..\include" /I ".\include" -DSTRICT -YX -DNODEBUG $< +!endif + +C_FILES= \ + main.c + +OBJS= $(C_FILES:.c=.obj) + +all: metaflac.exe + +metaflac.exe: $(OBJS) + link.exe /libpath:"..\..\obj\lib" -out:../../obj/bin/$*.exe $(OBJS) libFLAC.lib + +clean: + -del *.obj *.pch + -del ..\..\obj\bin\metaflac.exe diff --git a/src/metaflac/main.c b/src/metaflac/main.c new file mode 100644 index 00000000..aa861221 --- /dev/null +++ b/src/metaflac/main.c @@ -0,0 +1,95 @@ +/* metaflac - Command-line FLAC metadata editor + * Copyright (C) 2001 Josh Coalson + * + * 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. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include +#include +#include +#include +#include +#include "FLAC/all.h" + +static int usage(const char *message, ...); + +int main(int argc, char *argv[]) +{ + bool verbose, list_mode; + + if(argc <= 1) + return usage(0); + + /* get the options */ + for(i = 1; i < argc; i++) { + if(argv[i][0] != '-' || argv[i][1] == 0) + break; + if(0 == strcmp(argv[i], "-l")) + list_mode = true; + else if(0 == strcmp(argv[i], "-v")) + verbose = true; + else if(0 == strcmp(argv[i], "-v-")) + verbose = false; + else { + return usage("ERROR: invalid option '%s'\n", argv[i]); + } + } + if(i + (list_mode? 1:2) != argc) + return usage("ERROR: invalid arguments (more/less than %d filename%s?)\n", (list_mode? 1:2), (list_mode? "":"s")); + + return 0; +} + +int usage(const char *message, ...) +{ + va_list args; + + if(message) { + va_start(args, message); + + (void) vfprintf(stderr, message, args); + + va_end(args); + + } + printf("==============================================================================\n"); + printf("metaflac - Command-line FLAC metadata editor version %s\n", FLAC__VERSION_STRING); + printf("Copyright (C) 2001 Josh Coalson\n"); + printf("\n"); + printf("This program is free software; you can redistribute it and/or\n"); + printf("modify it under the terms of the GNU General Public License\n"); + printf("as published by the Free Software Foundation; either version 2\n"); + printf("of the License, or (at your option) any later version.\n"); + printf("\n"); + printf("This program is distributed in the hope that it will be useful,\n"); + printf("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); + printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n"); + printf("GNU General Public License for more details.\n"); + printf("\n"); + printf("You should have received a copy of the GNU General Public License\n"); + printf("along with this program; if not, write to the Free Software\n"); + printf("Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"); + printf("==============================================================================\n"); + printf("Usage:\n"); + printf(" metaflac [options] infile [outfile]\n"); + printf("\n"); + printf("options:\n"); + printf(" -l : list metadata blocks\n"); + printf(" -v : verbose\n"); + printf(" -v- can all be used to turn off a particular option\n"); + + return 1; +}