1
0
mirror of https://gitlab.xiph.org/xiph/ezstream.git synced 2024-11-03 04:17:18 -05:00

Remove active support for Windows and certain legacy UNIX systems

This commit is contained in:
Moritz Grimm 2015-04-15 23:16:12 +02:00
parent 512e9f2230
commit e3b3ed4cf9
30 changed files with 26 additions and 5135 deletions

View File

@ -1,7 +1,7 @@
AUTOMAKE_OPTIONS = 1.10 foreign subdir-objects
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = build-aux compat doc examples m4 src win32
SUBDIRS = build-aux compat doc examples m4 src
dist_doc_DATA = COPYING NEWS README
@ -12,10 +12,7 @@ EXTRA_DIST = \
CLEANFILES = core *.core *~ .*~
.PHONY: regen-win32 snapshot
regen-win32:
cd win32; ${MAKE} regen-win32
.PHONY: snapshot
snapshot:
${MAKE} distcheck distdir=${PACKAGE}-snapshot-`date +'%Y%m%d'`

8
NEWS
View File

@ -1,3 +1,11 @@
Changes in X.X.X, released on XXXX-XX-XX:
* Windows is no longer actively supported.
* Certain legacy UNIX systems are no longer actively supported.
Changes in 0.6.0, released on 2015-01-18:
* This release contains a SECURITY FIX for a command injection vulnerability

View File

@ -212,20 +212,14 @@ AC_CHECK_FUNCS([ \
gettimeofday \
nl_langinfo \
pclose \
_pclose \
popen \
_popen \
random \
setlocale \
snprintf \
_snprintf \
srandomdev \
stat \
_stat \
strncasecmp \
strnicmp \
strtoll \
_strtoi64 \
])
AC_REPLACE_FUNCS([ \
@ -275,8 +269,6 @@ AC_CONFIG_FILES([
m4/Makefile
src/Makefile
src/ezstream-file.sh
win32/Makefile
win32/shout/Makefile
])
AC_OUTPUT

View File

@ -6,7 +6,6 @@ bin_SCRIPTS = ezstream-file.sh
ezstream_SOURCES = \
configfile.c \
ezstream.c \
local_basename.c \
metadata.c \
playlist.c \
util.c \
@ -20,7 +19,6 @@ AM_LDFLAGS = @EZ_LDFLAGS@
EXTRA_DIST = \
configfile.h \
ezstream.h \
local_basename.h \
metadata.h \
playlist.h \
util.h \

View File

@ -33,8 +33,6 @@
#include "util.h"
#include "xalloc.h"
#include "local_basename.h"
#define STREAM_DONE 0
#define STREAM_CONT 1
#define STREAM_SKIP 2
@ -584,9 +582,6 @@ openResource(shout_t *shout, const char *fileName, int *popenFlag,
if (isStdin != NULL)
*isStdin = 1;
#ifdef WIN32
_setmode(_fileno(stdin), _O_BINARY);
#endif
filep = stdin;
return (filep);
}
@ -657,9 +652,6 @@ openResource(shout_t *shout, const char *fileName, int *popenFlag,
printf("\n");
} else {
*popenFlag = 1;
#ifdef WIN32
_setmode(_fileno(filep), _O_BINARY );
#endif
}
xfree(pCommandString);
@ -827,7 +819,7 @@ sendStream(shout_t *shout, FILE *filepstream, const char *fileName,
if (!isStdin && playlistMode) {
if (pezConfig->fileNameIsProgram) {
char *tmp = xstrdup(pezConfig->fileName);
printf(" [%s]", local_basename(tmp));
printf(" [%s]", basename(tmp));
xfree(tmp);
} else
printf(" [%4lu/%-4lu]",
@ -1068,7 +1060,7 @@ getProgname(const char *argv0)
if (argv0 == NULL)
return ((char *)"ezstream");
p = strrchr(argv0, path_separators[0]);
p = strrchr(argv0, '/');
if (p == NULL)
p = (char *)argv0;
else

View File

@ -35,6 +35,9 @@
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#if defined(HAVE_LIBGEN_H) && !defined(__linux__)
# include <libgen.h>
#endif /* HAVE_LIBGEN_H && !__linux__ */
#include <limits.h>
#ifdef HAVE_PATHS_H
# include <paths.h>
@ -52,50 +55,11 @@
#endif /* !STDIN_FILENO */
#ifndef _PATH_DEVNULL
# ifdef WIN32
# define _PATH_DEVNULL "nul"
# else /* WIN32 */
# define _PATH_DEVNULL "/dev/null"
# endif /* WIN32 */
# define _PATH_DEVNULL "/dev/null"
#endif /* !_PATH_DEVNULL */
#ifndef PATH_MAX
# define PATH_MAX 256
#endif /* !PATH_MAX */
#if !defined(HAVE_PCLOSE) && defined(HAVE__PCLOSE)
# define pclose _pclose
#endif /* !HAVE_PCLOSE && HAVE__PCLOSE */
#if !defined(HAVE_POPEN) && defined(HAVE__POPEN)
# define popen _popen
#endif /* !HAVE_POPEN && HAVE__POPEN */
#if !defined(HAVE_SNPRINTF) && defined(HAVE__SNPRINTF)
# define snprintf _snprintf
#endif /* !HAVE_SNPRINTF && HAVE__SNPRINTF */
#if !defined(HAVE_STAT) && defined(HAVE__STAT)
# define stat _stat
#endif /* !HAVE_STAT && HAVE__STAT */
#if !defined(HAVE_STRNCASECMP) && defined(HAVE_STRNICMP)
# define strncasecmp strnicmp
#endif /* !HAVE_STRNCASECMP && HAVE_STRNICMP */
#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
# define strtoll _strtoi64
#endif /* !HAVE_STRTOLL && HAVE__STRTOI64 */
#ifndef S_IRGRP
# define S_IRGRP 0
# define S_IWGRP 0
# define S_IXGRP 0
#endif /* !S_IRGRP */
#ifndef S_IROTH
# define S_IROTH 0
# define S_IWOTH 0
# define S_IXOTH 0
#endif /* !S_IROTH */
#ifdef WIN32
# include <windows.h>
# define sleep(a) Sleep((a) * 1000)
#endif /* WIN32 */
#endif /* __EZSTREAM_H__ */

View File

@ -1,107 +0,0 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif /* HAVE_SYS_TYPES_H */
#include <errno.h>
#if defined(HAVE_LIBGEN_H) && !defined(__linux__)
# include <libgen.h>
#endif /* HAVE_LIBGEN_H && !__linux__ */
#include <limits.h>
#include <string.h>
#include "local_basename.h"
#ifndef PATH_SEPARATORS
# define PATH_SEPARATORS "/"
#endif /* !PATH_SEPARATORS */
const char *path_separators = PATH_SEPARATORS;
char * local_basename(const char *);
static inline int
is_separator(int);
static inline int
is_separator(int c)
{
const char *cp;
for (cp = path_separators; '\0' != *cp; cp++) {
if (*cp == c)
return (1);
}
return (0);
}
/*
* Modified basename() implementation from OpenBSD, based on:
* $OpenBSD: src/lib/libc/gen/basename.c,v 1.15 2013/09/30 12:02:32 millert Exp $
*/
/*
* Copyright (c) 1997, 2004 Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
char *
local_basename(const char *path)
{
#ifdef HAVE_BASENAME
return (basename(path));
#else /* HAVE_BASENAME */
static char bname[PATH_MAX];
size_t len;
const char *startp, *endp;
if (path == NULL || *path == '\0') {
bname[0] = '.';
bname[1] = '\0';
return (bname);
}
/* Strip any trailing path separators */
endp = path + strlen(path) - 1;
while (endp > path && is_separator(*endp))
endp--;
/*
* All path separators become a single one; pick the first in the
* list as the default.
*/
if (endp == path && is_separator(*endp)) {
bname[0] = path_separators[0];
bname[1] = '\0';
return (bname);
}
/* Find the start of the base */
startp = endp;
while (startp > path && !is_separator(*(startp - 1)))
startp--;
len = endp - startp + 1;
if (len >= sizeof(bname)) {
errno = ENAMETOOLONG;
return (NULL);
}
memcpy(bname, startp, len);
bname[len] = '\0';
return (bname);
#endif /* HAVE_BASENAME */
}

View File

@ -1,8 +0,0 @@
#ifndef __LOCAL_BASENAME_H__
#define __LOCAL_BASENAME_H__
extern const char *path_separators;
char * local_basename(const char *);
#endif /* __LOCAL_BASENAME_H__ */

View File

@ -34,8 +34,6 @@
#include "util.h"
#include "xalloc.h"
#include "local_basename.h"
/* Usually defined in <sys/stat.h>. */
#ifndef S_IEXEC
# define S_IEXEC S_IXUSR
@ -307,7 +305,7 @@ metadata_get_name(const char *file)
abort();
}
if ((p1 = local_basename(filename)) == NULL) {
if ((p1 = basename(filename)) == NULL) {
printf("%s: Internal error: basename() failed with '%s'\n",
__progname, filename);
exit(1);

View File

@ -223,21 +223,15 @@ stream_setup(const char *host, unsigned short port, const char *mount)
char *
CHARtoUTF8(const char *in_str, int mode)
{
#ifndef WIN32
char *codeset;
# if defined(HAVE_NL_LANGINFO) && defined(HAVE_SETLOCALE) && defined(CODESET)
#if defined(HAVE_NL_LANGINFO) && defined(HAVE_SETLOCALE) && defined(CODESET)
setlocale(LC_CTYPE, "");
codeset = nl_langinfo((nl_item)CODESET);
setlocale(LC_CTYPE, "C");
# else
codeset = (char *)"";
# endif /* HAVE_NL_LANGINFO && HAVE_SETLOCALE && CODESET */
#else
char codeset[24];
snprintf(codeset, sizeof(codeset), "CP%u", GetACP());
#endif /* !WIN32 */
codeset = (char *)"";
#endif /* HAVE_NL_LANGINFO && HAVE_SETLOCALE && CODESET */
return (iconvert(in_str, codeset, "UTF-8", mode));
}
@ -245,21 +239,15 @@ CHARtoUTF8(const char *in_str, int mode)
char *
UTF8toCHAR(const char *in_str, int mode)
{
#ifndef WIN32
char *codeset;
# if defined(HAVE_NL_LANGINFO) && defined(HAVE_SETLOCALE) && defined(CODESET)
#if defined(HAVE_NL_LANGINFO) && defined(HAVE_SETLOCALE) && defined(CODESET)
setlocale(LC_CTYPE, "");
codeset = nl_langinfo((nl_item)CODESET);
setlocale(LC_CTYPE, "C");
# else
codeset = (char *)"";
# endif /* HAVE_NL_LANGINFO && HAVE_SETLOCALE && CODESET */
#else
char codeset[24];
snprintf(codeset, sizeof(codeset), "CP%u", GetACP());
#endif /* !WIN32 */
codeset = (char *)"";
#endif /* HAVE_NL_LANGINFO && HAVE_SETLOCALE && CODESET */
return (iconvert(in_str, "UTF-8", codeset, mode));
}
@ -373,32 +361,10 @@ ez_gettimeofday(void *tp_arg)
#ifdef HAVE_GETTIMEOFDAY
ret = gettimeofday(tp, NULL);
#else /* HAVE_GETTIMEOFDAY */
# ifdef WIN32
/*
* Idea for this way of implementing gettimeofday()-like functionality
* on Windows taken from cURL, (C) 1998 - 2007 Daniel Steinberg, et al.
* http://curl.haxx.se/docs/copyright.html
*/
SYSTEMTIME st;
struct tm tm;
GetLocalTime(&st);
tm.tm_sec = st.wSecond;
tm.tm_min = st.wMinute;
tm.tm_hour = st.wHour;
tm.tm_mday = st.wDay;
tm.tm_mon = st.wMonth - 1;
tm.tm_year = st.wYear - 1900;
tm.tm_isdst = -1;
tp->tv_sec = (long)mktime(&tm);
tp->tv_usec = st.wMilliseconds * 1000;
ret = 0;
# else /* WIN32 */
/* Fallback to time(): */
tp->tv_sec = (long)time(NULL);
tp->tv_usec = 0;
ret = 0;
# endif /* WIN32 */
#endif /* HAVE_GETTIMEOFDAY */
return (ret);

View File

@ -191,64 +191,18 @@ _xalloc_vasprintf(char **str_p, const char *fmt, va_list ap, size_t *strsiz)
va_list ap_local;
*str_p = NULL;
#ifndef WIN32
# ifndef HAVE_BROKEN_VSNPRINTF
/* MODERN UNIX */
va_copy(ap_local, ap);
*strsiz = vsnprintf(NULL, (size_t)0, fmt, ap_local) + 1;
va_end(ap_local);
# ifdef HAVE_ASPRINTF
#ifdef HAVE_ASPRINTF
if ((ret = vasprintf(str_p, fmt, ap)) == -1)
*str_p = NULL;
# else
#else
if ((*str_p = real_calloc(*strsiz, sizeof(char))) == NULL)
return (-1);
ret = vsnprintf(*str_p, *strsiz, fmt, ap);
# endif /* HAVE_ASPRINTF */
# else
/* ANCIENT UNIX */
{
char *buf = NULL;
*strsiz = 4;
for (;;) {
char *tbuf;
int pret;
if ((tbuf = real_realloc(buf, *strsiz)) == NULL) {
real_free(buf);
return (-1);
}
buf = tbuf;
va_copy(ap_local, ap);
pret = vsnprintf(buf, *strsiz, fmt, ap_local);
va_end(ap_local);
if (pret > 0 && pret < (int)*strsiz)
break;
if ((int)(*strsiz *= 2) < 0) {
real_free(buf);
return (-1);
}
}
ret = vsnprintf(buf, *strsiz, fmt, ap);
*str_p = buf;
}
# endif /* !HAVE_BROKEN_VSNPRINTF */
#else
/* WINDOWS */
va_copy(ap_local, ap);
*strsiz = _vscprintf(fmt, ap_local) + 1;
va_end(ap_local);
if ((*str_p = real_calloc(*strsiz, sizeof(char))) == NULL)
return (-1);
ret = _vsnprintf(*str_p, *strsiz, fmt, ap);
#endif /* !WIN32 */
#endif /* HAVE_ASPRINTF */
return (ret);
}

View File

@ -1,20 +0,0 @@
AUTOMAKE_OPTIONS = 1.10 foreign subdir-objects
SUBDIRS = shout
EXTRA_DIST = \
README.win32 config.h compat.h \
ezstream.sln ezstream.vcproj \
libflac.vcproj libogg.vcproj libshout.vcproj libspeex.vcproj \
libtheora.vcproj libvorbis.vcproj libvorbisfile.vcproj libz.vcproj \
taglib.vcproj taglib_c.vcproj \
tfile.cpp
CLEANFILES = core *.core *~ .*~ ezstream.1.pdf
do_subst = sed -e 's,!!EXAMPLES_DIR!!,${PACKAGE_TARNAME}-${PACKAGE_VERSION}-win32/examples,g'
.PHONY: regen-win32
regen-win32: Makefile
$(do_subst) < $(top_srcdir)/doc/ezstream.1.in | nroff -Tps -mandoc - | ps2pdf - ezstream.1.pdf

View File

@ -1,90 +0,0 @@
README.win32 - Information about the binary Ezstream distribution for Windows
=============================================================================
1. .ZIP Archive Contents
------------------------
| File | Description |
+======================================================================+
| \COPYING.txt | License for using, modifying and |
| | distributing Ezstream. |
+-----------------------+----------------------------------------------+
| \README.txt | This file. |
+-----------------------+----------------------------------------------+
| \ezstream.1.pdf | The ezstream manual in PDF format. |
+-----------------------+----------------------------------------------+
| \ezstream.exe | The ezstream executable file. |
+-----------------------+----------------------------------------------+
| \ezstream-X.Y.Z.zip | The ezstream source distribution, from which |
| | ezstream.exe was built. |
+-----------------------+----------------------------------------------+
| \examples\*.xml | Ezstream example configuration files. |
+-----------------------+----------------------------------------------+
| \examples\*.sh | Example playlist and metadata scripts, for |
| | demonstrational purposes (these are shell |
| | scripts.) |
+-----------------------+----------------------------------------------+
2. Installation
---------------
As of version 0.3.0, ezstream no longer comes with an installer. If you have a
previous version of ezstream installed, you might want to simply uninstall it.
The ezstream.exe file can be run from any location. To install it, simply copy
it to a location of your choosing. To make it available anywhere on the
system, add the installation folder to your PATH environment variable.
If it doesn't start, e.g. running
> ezstream.exe -h
does not show the command line help, the Microsoft Visual C++ 2008 runtime
libraries are missing. Download and install vcredist_x86.exe, which can be
easily found on www.microsoft.com via
http://www.google.com/search?q=vc+2008+redist
3. Limited functionality
------------------------
A few useful features are missing in the Windows version of ezstream:
* Runtime control via signals is not possible.
* Some useful external utilities (encoders, decoders) may not be available on
Windows.
4. Source code
--------------
Ezstream uses:
* zlib (http://www.zlib.net/, BSD-like license)
* libiconv (https://www.gnu.org/software/libiconv/, LGPL)
* libxml2 (http://xmlsoft.org/, BSD-like license)
* libogg, libvorbis, libvorbisfile (http://www.vorbis.com/, BSD-like license)
* libFLAC (https://xiph.org/flac/, BSD-like license)
* libtheora (http://www.theora.org/, BSD-like license)
* libshout (http://www.icecast.org, LGPL)
* TagLib (https://taglib.github.io/, LGPL)
These libraries are statically linked into the ezstream.exe file.
Ezstream itself is licensed under the GPL version 2 (see COPYING.txt for
details.)
5. Support
----------
For information on how to report issues with ezstream, please visit the
ezstream home page at http://www.icecast.org/ezstream.php

View File

@ -1,20 +0,0 @@
#ifndef __WIN32_COMPAT_H__
#define __WIN32_COMPAT_H__
/* #define WIN32_LEAN_AND_MEAN */
#include <io.h>
#include <process.h>
#include <winsock2.h>
#include <windows.h>
#define inline __inline
#define va_copy(dst, src) memcpy(&(dst), &(src), sizeof(va_list))
#define PATH_SEPARATORS "\\/"
#ifndef ssize_t
# define ssize_t long
#endif /* !ssize_t */
#endif /* __WIN32_COMPAT_H__ */

View File

@ -1,22 +0,0 @@
#ifndef __WIN32_CONFIG_H__
#define __WIN32_CONFIG_H__
#define PACKAGE_STRING "ezstream 0.6.0"
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_LOCALE_H 1
#define HAVE_STAT 1
#define HAVE__PCLOSE 1
#define HAVE__POPEN 1
#define HAVE__SNPRINTF 1
#define HAVE__STRTOI64 1
#define HAVE_ICONV 1
#define HAVE_TAGLIB 1
#define ICONV_CONST
#include <compat.h>
#endif /* __WIN32_CONFIG_H__ */

View File

@ -1,111 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ezstream", "ezstream.vcproj", "{43809192-0B8F-4AFE-85E6-C54E265CFB75}"
ProjectSection(ProjectDependencies) = postProject
{0A70BF55-FCF6-4DD8-A455-8233666A60E1} = {0A70BF55-FCF6-4DD8-A455-8233666A60E1}
{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5} = {1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}
{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B} = {29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}
{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08} = {8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libogg", "libogg.vcproj", "{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbis", "libvorbis.vcproj", "{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}"
ProjectSection(ProjectDependencies) = postProject
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F} = {60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvorbisfile", "libvorbisfile.vcproj", "{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}"
ProjectSection(ProjectDependencies) = postProject
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D} = {5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libflac", "libflac.vcproj", "{3B517561-45A7-4189-B149-6EA03369255D}"
ProjectSection(ProjectDependencies) = postProject
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F} = {60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheora", "libtheora.vcproj", "{140F1A87-BAE3-4DBD-9221-D0918A63646F}"
ProjectSection(ProjectDependencies) = postProject
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F} = {60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeex", "libspeex.vcproj", "{6EC28559-BD88-4C63-AD91-A406FED1B363}"
ProjectSection(ProjectDependencies) = postProject
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F} = {60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshout", "libshout.vcproj", "{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}"
ProjectSection(ProjectDependencies) = postProject
{6EC28559-BD88-4C63-AD91-A406FED1B363} = {6EC28559-BD88-4C63-AD91-A406FED1B363}
{3B517561-45A7-4189-B149-6EA03369255D} = {3B517561-45A7-4189-B149-6EA03369255D}
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D} = {5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}
{140F1A87-BAE3-4DBD-9221-D0918A63646F} = {140F1A87-BAE3-4DBD-9221-D0918A63646F}
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F} = {60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libz", "libz.vcproj", "{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taglib", "taglib.vcproj", "{B1A6316C-A73A-4B34-A428-E967A698CA37}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "taglib_c", "taglib_c.vcproj", "{0A70BF55-FCF6-4DD8-A455-8233666A60E1}"
ProjectSection(ProjectDependencies) = postProject
{B1A6316C-A73A-4B34-A428-E967A698CA37} = {B1A6316C-A73A-4B34-A428-E967A698CA37}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{43809192-0B8F-4AFE-85E6-C54E265CFB75}.Debug|Win32.ActiveCfg = Debug|Win32
{43809192-0B8F-4AFE-85E6-C54E265CFB75}.Debug|Win32.Build.0 = Debug|Win32
{43809192-0B8F-4AFE-85E6-C54E265CFB75}.Release|Win32.ActiveCfg = Release|Win32
{43809192-0B8F-4AFE-85E6-C54E265CFB75}.Release|Win32.Build.0 = Release|Win32
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}.Debug|Win32.ActiveCfg = Debug|Win32
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}.Debug|Win32.Build.0 = Debug|Win32
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}.Release|Win32.ActiveCfg = Release|Win32
{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}.Release|Win32.Build.0 = Release|Win32
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}.Debug|Win32.ActiveCfg = Debug|Win32
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}.Debug|Win32.Build.0 = Debug|Win32
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}.Release|Win32.ActiveCfg = Release|Win32
{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}.Release|Win32.Build.0 = Release|Win32
{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}.Debug|Win32.ActiveCfg = Debug|Win32
{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}.Debug|Win32.Build.0 = Debug|Win32
{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}.Release|Win32.ActiveCfg = Release|Win32
{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}.Release|Win32.Build.0 = Release|Win32
{3B517561-45A7-4189-B149-6EA03369255D}.Debug|Win32.ActiveCfg = Debug|Win32
{3B517561-45A7-4189-B149-6EA03369255D}.Debug|Win32.Build.0 = Debug|Win32
{3B517561-45A7-4189-B149-6EA03369255D}.Release|Win32.ActiveCfg = Release|Win32
{3B517561-45A7-4189-B149-6EA03369255D}.Release|Win32.Build.0 = Release|Win32
{140F1A87-BAE3-4DBD-9221-D0918A63646F}.Debug|Win32.ActiveCfg = Debug|Win32
{140F1A87-BAE3-4DBD-9221-D0918A63646F}.Debug|Win32.Build.0 = Debug|Win32
{140F1A87-BAE3-4DBD-9221-D0918A63646F}.Release|Win32.ActiveCfg = Release|Win32
{140F1A87-BAE3-4DBD-9221-D0918A63646F}.Release|Win32.Build.0 = Release|Win32
{6EC28559-BD88-4C63-AD91-A406FED1B363}.Debug|Win32.ActiveCfg = Debug|Win32
{6EC28559-BD88-4C63-AD91-A406FED1B363}.Debug|Win32.Build.0 = Debug|Win32
{6EC28559-BD88-4C63-AD91-A406FED1B363}.Release|Win32.ActiveCfg = Release|Win32
{6EC28559-BD88-4C63-AD91-A406FED1B363}.Release|Win32.Build.0 = Release|Win32
{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}.Debug|Win32.ActiveCfg = Debug|Win32
{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}.Debug|Win32.Build.0 = Debug|Win32
{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}.Release|Win32.ActiveCfg = Release|Win32
{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}.Release|Win32.Build.0 = Release|Win32
{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}.Debug|Win32.ActiveCfg = Debug|Win32
{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}.Debug|Win32.Build.0 = Debug|Win32
{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}.Release|Win32.ActiveCfg = Release|Win32
{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}.Release|Win32.Build.0 = Release|Win32
{B1A6316C-A73A-4B34-A428-E967A698CA37}.Debug|Win32.ActiveCfg = Debug|Win32
{B1A6316C-A73A-4B34-A428-E967A698CA37}.Debug|Win32.Build.0 = Debug|Win32
{B1A6316C-A73A-4B34-A428-E967A698CA37}.Release|Win32.ActiveCfg = Release|Win32
{B1A6316C-A73A-4B34-A428-E967A698CA37}.Release|Win32.Build.0 = Release|Win32
{0A70BF55-FCF6-4DD8-A455-8233666A60E1}.Debug|Win32.ActiveCfg = Debug|Win32
{0A70BF55-FCF6-4DD8-A455-8233666A60E1}.Debug|Win32.Build.0 = Debug|Win32
{0A70BF55-FCF6-4DD8-A455-8233666A60E1}.Release|Win32.ActiveCfg = Release|Win32
{0A70BF55-FCF6-4DD8-A455-8233666A60E1}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -1,296 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="ezstream"
ProjectGUID="{43809192-0B8F-4AFE-85E6-C54E265CFB75}"
RootNamespace="ezstream"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="0"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;..\src;taglib-bin\include;libxml2-bin\include;libiconv-bin\include;.\libshout\include;.\libvorbis\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_DEBUG;HAVE_CONFIG_H=1;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
UseUnicodeResponseFiles="false"
AdditionalDependencies="ws2_32.lib libxml2-bin\lib\libxml2_a.lib .\libiconv-bin\lib\libiconv-vc9.lib"
GenerateDebugInformation="true"
SubSystem="0"
LargeAddressAware="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="2"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;..\src;taglib-bin\include;libxml2-bin\include;libiconv-bin\include;.\libshout\include;.\libvorbis\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NDEBUG;HAVE_CONFIG_H=1;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
UseUnicodeResponseFiles="false"
AdditionalDependencies="ws2_32.lib libxml2-bin\lib\libxml2_a.lib .\libiconv-bin\lib\libiconv-vc9.lib"
GenerateDebugInformation="false"
SubSystem="1"
LargeAddressAware="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
SetChecksum="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\src\compat.c"
>
</File>
<File
RelativePath="..\src\configfile.c"
>
</File>
<File
RelativePath="..\src\ezstream.c"
>
</File>
<File
RelativePath="..\src\getopt.c"
>
</File>
<File
RelativePath="..\src\metadata.c"
>
</File>
<File
RelativePath="..\src\playlist.c"
>
</File>
<File
RelativePath="..\src\strlcat.c"
>
</File>
<File
RelativePath="..\src\strlcpy.c"
>
</File>
<File
RelativePath="..\src\strtonum.c"
>
</File>
<File
RelativePath="..\src\util.c"
>
</File>
<File
RelativePath="..\src\xalloc.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\src\configfile.h"
>
</File>
<File
RelativePath="..\src\ezstream.h"
>
</File>
<File
RelativePath="..\src\metadata.h"
>
</File>
<File
RelativePath="..\src\playlist.h"
>
</File>
<File
RelativePath="..\src\strfctns.h"
>
</File>
<File
RelativePath="..\src\util.h"
>
</File>
<File
RelativePath="..\src\xalloc.h"
>
</File>
<Filter
Name="win32"
>
<File
RelativePath=".\compat.h"
>
</File>
<File
RelativePath=".\config.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,411 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libflac"
ProjectGUID="{3B517561-45A7-4189-B149-6EA03369255D}"
RootNamespace="libflac"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
AdditionalIncludeDirectories=".;.\flac\src\libFLAC\include;.\flac\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FLAC__HAS_OGG;FLAC__CPU_IA32;VERSION=\&quot;1.2.0\&quot;;FLAC__NO_DLL;_DEBUG"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4267"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\flac\src\libFLAC\include;.\flac\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;FLAC__HAS_OGG;FLAC__CPU_IA32;VERSION=\&quot;1.2.0\&quot;;FLAC__NO_DLL;NDEBUG"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4267"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\flac\src\libFLAC\bitmath.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\bitreader.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\bitwriter.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\cpu.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\crc.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\fixed.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\float.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\format.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\lpc.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\md5.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\memory.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\metadata_iterators.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\metadata_object.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\ogg_decoder_aspect.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\ogg_encoder_aspect.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\ogg_helper.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\ogg_mapping.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\stream_decoder.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\stream_encoder.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\stream_encoder_framing.c"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\window.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="public"
>
<Filter
Name="FLAC"
>
<File
RelativePath=".\flac\include\FLAC\all.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\assert.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\callback.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\export.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\format.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\metadata.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\ordinals.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\stream_decoder.h"
>
</File>
<File
RelativePath=".\flac\include\FLAC\stream_encoder.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="private"
>
<File
RelativePath=".\flac\src\libFLAC\include\private\all.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\bitmath.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\bitreader.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\bitwriter.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\cpu.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\crc.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\fixed.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\float.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\format.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\lpc.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\md5.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\memory.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\metadata.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\ogg_decoder_aspect.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\ogg_encoder_aspect.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\ogg_helper.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\ogg_mapping.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\stream_encoder_framing.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\private\window.h"
>
</File>
</Filter>
<Filter
Name="protected"
>
<File
RelativePath=".\flac\src\libFLAC\include\protected\all.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\protected\stream_decoder.h"
>
</File>
<File
RelativePath=".\flac\src\libFLAC\include\protected\stream_encoder.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,212 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libogg"
ProjectGUID="{60A624C8-EEFF-4083-A02E-1A4F6B56CE4F}"
RootNamespace="libogg"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;libogg\include;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;libogg\include;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\libogg\src\bitwise.c"
>
</File>
<File
RelativePath=".\libogg\src\framing.c"
>
</File>
<File
RelativePath=".\libogg\win32\ogg.def"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="ogg"
>
<File
RelativePath=".\libogg\include\ogg\ogg.h"
>
</File>
<File
RelativePath=".\libogg\include\ogg\os_types.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,322 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libshout"
ProjectGUID="{29A3AE75-E9A8-4A43-BADB-A4EF0972BD5B}"
RootNamespace="libshout"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libshout\include;.\libshout\src;.\libogg\include;.\speex\include;.\libtheora\include;.\libvorbis\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NO_THREAD;HAVE_SPEEX;HAVE_THEORA;HAVE_CONFIG_H;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4005;4091;4133;4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
AdditionalDependencies="winmm.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libshout\include;.\libshout\src;.\libogg\include;.\speex\include;.\libtheora\include;.\libvorbis\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;NO_THREAD;HAVE_SPEEX;HAVE_THEORA;HAVE_CONFIG_H;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4005;4091;4133;4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
AdditionalDependencies="winmm.lib"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\libshout\src\mp3.c"
>
</File>
<File
RelativePath=".\libshout\src\ogg.c"
>
</File>
<File
RelativePath=".\libshout\src\shout.c"
>
</File>
<File
RelativePath=".\libshout\src\speex.c"
>
</File>
<File
RelativePath=".\libshout\src\theora.c"
>
</File>
<File
RelativePath=".\libshout\src\util.c"
>
</File>
<File
RelativePath=".\libshout\src\vorbis.c"
>
</File>
<Filter
Name="avl"
>
<File
RelativePath=".\libshout\src\avl\avl.c"
>
</File>
</Filter>
<Filter
Name="httpp"
>
<File
RelativePath=".\libshout\src\httpp\httpp.c"
>
</File>
</Filter>
<Filter
Name="net"
>
<File
RelativePath=".\libshout\src\net\resolver.c"
>
</File>
<File
RelativePath=".\libshout\src\net\sock.c"
>
</File>
</Filter>
<Filter
Name="timing"
>
<File
RelativePath=".\libshout\src\timing\timing.c"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="public"
>
<Filter
Name="shout"
>
<File
RelativePath=".\shout\shout.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="private"
>
<File
RelativePath=".\libshout\include\os.h"
>
</File>
<File
RelativePath=".\libshout\src\shout_ogg.h"
>
</File>
<File
RelativePath=".\libshout\src\shout_private.h"
>
</File>
<File
RelativePath=".\libshout\src\util.h"
>
</File>
<Filter
Name="avl"
>
<File
RelativePath=".\libshout\src\avl\avl.h"
>
</File>
</Filter>
<Filter
Name="httpp"
>
<File
RelativePath=".\libshout\src\httpp\httpp.h"
>
</File>
</Filter>
<Filter
Name="net"
>
<File
RelativePath=".\libshout\src\net\resolver.h"
>
</File>
<File
RelativePath=".\libshout\src\net\sock.h"
>
</File>
</Filter>
<Filter
Name="timing"
>
<File
RelativePath=".\libshout\src\timing\timing.h"
>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,392 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libspeex"
ProjectGUID="{6EC28559-BD88-4C63-AD91-A406FED1B363}"
RootNamespace="libspeex"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\speex\include;.\speex\libspeex;"
PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINDOWS;_DEBUG;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4244;4305"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\speex\include;.\speex\libspeex;"
PreprocessorDefinitions="WIN32;_LIB;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WINDOWS;NDEBUG;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4244;4305"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\speex\libspeex\bits.c"
>
</File>
<File
RelativePath=".\speex\libspeex\cb_search.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_10_16_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_10_32_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_20_32_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_5_256_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_5_64_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\exc_8_128_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\filters.c"
>
</File>
<File
RelativePath=".\speex\libspeex\gain_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\gain_table_lbr.c"
>
</File>
<File
RelativePath=".\speex\libspeex\hexc_10_32_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\hexc_table.c"
>
</File>
<File
RelativePath=".\speex\libspeex\high_lsp_tables.c"
>
</File>
<File
RelativePath=".\speex\libspeex\lpc.c"
>
</File>
<File
RelativePath=".\speex\libspeex\lsp.c"
>
</File>
<File
RelativePath=".\speex\libspeex\lsp_tables_nb.c"
>
</File>
<File
RelativePath=".\speex\libspeex\ltp.c"
>
</File>
<File
RelativePath=".\speex\libspeex\math_approx.c"
>
</File>
<File
RelativePath=".\speex\libspeex\misc.c"
>
</File>
<File
RelativePath=".\speex\libspeex\modes.c"
>
</File>
<File
RelativePath=".\speex\libspeex\nb_celp.c"
>
</File>
<File
RelativePath=".\speex\libspeex\quant_lsp.c"
>
</File>
<File
RelativePath=".\speex\libspeex\sb_celp.c"
>
</File>
<File
RelativePath=".\speex\libspeex\speex_callbacks.c"
>
</File>
<File
RelativePath=".\speex\libspeex\speex_header.c"
>
</File>
<File
RelativePath=".\speex\libspeex\stereo.c"
>
</File>
<File
RelativePath=".\speex\libspeex\vbr.c"
>
</File>
<File
RelativePath=".\speex\libspeex\vq.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="public"
>
<Filter
Name="speex"
>
<File
RelativePath=".\speex\include\speex\speex.h"
>
</File>
<File
RelativePath=".\speex\include\speex\speex_bits.h"
>
</File>
<File
RelativePath=".\speex\include\speex\speex_callbacks.h"
>
</File>
<File
RelativePath=".\speex\include\speex\speex_header.h"
>
</File>
<File
RelativePath=".\speex\include\speex\speex_stereo.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="private"
>
<File
RelativePath=".\speex\libspeex\cb_search.h"
>
</File>
<File
RelativePath=".\speex\libspeex\filters.h"
>
</File>
<File
RelativePath=".\speex\libspeex\lpc.h"
>
</File>
<File
RelativePath=".\speex\libspeex\lsp.h"
>
</File>
<File
RelativePath=".\speex\libspeex\ltp.h"
>
</File>
<File
RelativePath=".\speex\libspeex\math_approx.h"
>
</File>
<File
RelativePath=".\speex\libspeex\misc.h"
>
</File>
<File
RelativePath=".\speex\libspeex\modes.h"
>
</File>
<File
RelativePath=".\speex\libspeex\nb_celp.h"
>
</File>
<File
RelativePath=".\speex\libspeex\quant_lsp.h"
>
</File>
<File
RelativePath=".\speex\libspeex\sb_celp.h"
>
</File>
<File
RelativePath=".\speex\libspeex\stack_alloc.h"
>
</File>
<File
RelativePath=".\speex\libspeex\vbr.h"
>
</File>
<File
RelativePath=".\speex\libspeex\vq.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,504 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libtheora"
ProjectGUID="{140F1A87-BAE3-4DBD-9221-D0918A63646F}"
RootNamespace="libtheora"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libtheora\include;.\libtheora\lib;.\libtheora\lib\enc;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;USE_ASM;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4018;4244;4554"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libtheora\include;.\libtheora\lib;.\libtheora\lib\enc;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;USE_ASM;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4018;4244;4554"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\libtheora\lib\cpu.c"
>
</File>
<Filter
Name="dec"
>
<File
RelativePath=".\libtheora\lib\dec\apiwrapper.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\bitpack.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\decapiwrapper.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\decinfo.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\decode.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\dequant.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\fragment.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\huffdec.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\idct.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\info.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\internal.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\quant.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\state.c"
>
</File>
<Filter
Name="x86_vc"
>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\mmxfrag.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\mmxidct.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\mmxloopfilter.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\mmxstate.c"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\x86state.c"
>
</File>
</Filter>
</Filter>
<Filter
Name="enc"
>
<File
RelativePath=".\libtheora\lib\enc\blockmap.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\dct.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\dct_decode.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\dct_encode.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\dsp.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encapiwrapper.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encode.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_huffman.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_idct.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_quant.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_toplevel.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\frarray.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\frinit.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\mcomp.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\misc_common.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\pb.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\pp.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\reconstruct.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\scan.c"
>
</File>
<Filter
Name="x86_32_vs"
>
<File
RelativePath=".\libtheora\lib\enc\x86_32_vs\dsp_mmx.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\x86_32_vs\fdct_mmx.c"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\x86_32_vs\recon_mmx.c"
>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="public"
>
<Filter
Name="theora"
>
<File
RelativePath=".\libtheora\include\theora\codec.h"
>
</File>
<File
RelativePath=".\libtheora\include\theora\theora.h"
>
</File>
<File
RelativePath=".\libtheora\include\theora\theoradec.h"
>
</File>
<File
RelativePath=".\libtheora\include\theora\theoraenc.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="private"
>
<File
RelativePath=".\libtheora\lib\cpu.h"
>
</File>
<File
RelativePath=".\libtheora\lib\internal.h"
>
</File>
<Filter
Name="dec"
>
<File
RelativePath=".\libtheora\lib\dec\apiwrapper.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\bitpack.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\dct.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\decint.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\dequant.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\huffdec.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\huffman.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\idct.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\ocintrin.h"
>
</File>
<File
RelativePath=".\libtheora\lib\dec\quant.h"
>
</File>
<Filter
Name="x86"
>
<File
RelativePath=".\libtheora\lib\dec\x86\x86int.h"
>
</File>
</Filter>
<Filter
Name="x86_vc"
>
<File
RelativePath=".\libtheora\lib\dec\x86_vc\x86int.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="enc"
>
<File
RelativePath=".\libtheora\lib\enc\block_inline.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\codec_internal.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\dsp.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_huffman.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\encoder_lookup.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\hufftables.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\pp.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\quant_lookup.h"
>
</File>
<File
RelativePath=".\libtheora\lib\enc\toplevel_lookup.h"
>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,474 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libvorbis"
ProjectGUID="{5CC6CF7F-35F8-41D4-AB87-F8173EFF390D}"
RootNamespace="libvorbis"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libvorbis\include;.\libvorbis\lib;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4244;4267;4305"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libvorbis\include;.\libvorbis\lib;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4244;4267;4305"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\libvorbis\lib\analysis.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\bitrate.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\block.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\codebook.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\envelope.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\floor0.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\floor1.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\info.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\lpc.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\lsp.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\mapping0.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\mdct.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\psy.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\registry.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\res0.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\sharedbook.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\smallft.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\synthesis.c"
>
</File>
<File
RelativePath=".\libvorbis\win32\vorbis.def"
>
</File>
<File
RelativePath=".\libvorbis\lib\vorbisenc.c"
>
</File>
<File
RelativePath=".\libvorbis\lib\window.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="private"
>
<File
RelativePath=".\libvorbis\lib\backends.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\bitrate.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\codebook.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\codec_internal.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\envelope.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\highlevel.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\lookup.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\lookup_data.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\lpc.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\lsp.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\masking.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\mdct.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\misc.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\os.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\psy.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\registry.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\scales.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\smallft.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\window.h"
>
</File>
<Filter
Name="books"
>
<Filter
Name="coupled"
>
<File
RelativePath=".\libvorbis\lib\books\coupled\res_books_stereo.h"
>
</File>
</Filter>
<Filter
Name="floor"
>
<File
RelativePath=".\libvorbis\lib\books\floor\floor_books.h"
>
</File>
</Filter>
<Filter
Name="uncoupled"
>
<File
RelativePath=".\libvorbis\lib\books\uncoupled\res_books_uncoupled.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="modes"
>
<File
RelativePath=".\libvorbis\lib\modes\floor_all.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\psych_11.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\psych_16.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\psych_44.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\psych_8.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\residue_16.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\residue_44.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\residue_44u.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\residue_8.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_11.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_16.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_22.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_32.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_44.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_44u.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_8.h"
>
</File>
<File
RelativePath=".\libvorbis\lib\modes\setup_X.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="public"
>
<Filter
Name="vorbis"
>
<File
RelativePath=".\libvorbis\include\vorbis\codec.h"
>
</File>
<File
RelativePath=".\libvorbis\include\vorbis\vorbisenc.h"
>
</File>
<File
RelativePath=".\libvorbis\include\vorbis\vorbisfile.h"
>
</File>
</Filter>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,202 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libvorbisfile"
ProjectGUID="{8FB7BDB7-B66C-4D45-A03D-2FD46AAB1B08}"
RootNamespace="libvorbisfile"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libvorbis\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
DisableSpecificWarnings="4244;4267"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\libvorbis\include;.\libogg\include;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
DisableSpecificWarnings="4244;4267"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\libvorbis\lib\vorbisfile.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<Filter
Name="vorbis"
>
<File
RelativePath=".\libvorbis\include\vorbis\vorbisfile.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,280 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="libz"
ProjectGUID="{1ACB165E-8C63-4B44-A4EB-791EFA8FA0A5}"
RootNamespace="libz"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\zlib;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="0"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\zlib;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;"
StringPooling="true"
ExceptionHandling="0"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="false"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
LinkLibraryDependencies="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\zlib\adler32.c"
>
</File>
<File
RelativePath=".\zlib\compress.c"
>
</File>
<File
RelativePath=".\zlib\crc32.c"
>
</File>
<File
RelativePath=".\zlib\deflate.c"
>
</File>
<File
RelativePath=".\zlib\gzio.c"
>
</File>
<File
RelativePath=".\zlib\infback.c"
>
</File>
<File
RelativePath=".\zlib\inffast.c"
>
</File>
<File
RelativePath=".\zlib\inflate.c"
>
</File>
<File
RelativePath=".\zlib\inftrees.c"
>
</File>
<File
RelativePath=".\zlib\trees.c"
>
</File>
<File
RelativePath=".\zlib\uncompr.c"
>
</File>
<File
RelativePath=".\zlib\win32\zlib.def"
>
</File>
<File
RelativePath=".\zlib\zutil.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\zlib\crc32.h"
>
</File>
<File
RelativePath=".\zlib\deflate.h"
>
</File>
<File
RelativePath=".\zlib\inffast.h"
>
</File>
<File
RelativePath=".\zlib\inffixed.h"
>
</File>
<File
RelativePath=".\zlib\inflate.h"
>
</File>
<File
RelativePath=".\zlib\inftrees.h"
>
</File>
<File
RelativePath=".\zlib\trees.h"
>
</File>
<File
RelativePath=".\zlib\zconf.h"
>
</File>
<File
RelativePath=".\zlib\zlib.h"
>
</File>
<File
RelativePath=".\zlib\zutil.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,5 +0,0 @@
AUTOMAKE_OPTIONS = 1.10 foreign subdir-objects
EXTRA_DIST = shout.h
CLEANFILES = *~ core *.core

View File

@ -1,209 +0,0 @@
/* shout.h
*
* API for libshout, the streaming library for icecast
*
* Copyright (C) 2002-2003 the Icecast team <team@icecast.org>
*
* 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
*/
#ifndef __LIBSHOUT_SHOUT_H__
#define __LIBSHOUT_SHOUT_H__
#define VERSION "2.2.2"
#define LIBSHOUT_MAJOR 2
#define LIBSHOUT_MINOR 2
#define LIBSHOUT_MICRO 2
#include <sys/types.h>
#ifdef WIN32
#include <os.h>
#endif
#define SHOUTERR_SUCCESS (0)
#define SHOUTERR_INSANE (-1)
#define SHOUTERR_NOCONNECT (-2)
#define SHOUTERR_NOLOGIN (-3)
#define SHOUTERR_SOCKET (-4)
#define SHOUTERR_MALLOC (-5)
#define SHOUTERR_METADATA (-6)
#define SHOUTERR_CONNECTED (-7)
#define SHOUTERR_UNCONNECTED (-8)
#define SHOUTERR_UNSUPPORTED (-9)
#define SHOUTERR_BUSY (-10)
#define SHOUT_FORMAT_OGG (0)
#define SHOUT_FORMAT_MP3 (1)
/* backward-compatibility alias */
#define SHOUT_FORMAT_VORBIS SHOUT_FORMAT_OGG
#define SHOUT_PROTOCOL_HTTP (0)
#define SHOUT_PROTOCOL_XAUDIOCAST (1)
#define SHOUT_PROTOCOL_ICY (2)
#define SHOUT_AI_BITRATE "bitrate"
#define SHOUT_AI_SAMPLERATE "samplerate"
#define SHOUT_AI_CHANNELS "channels"
#define SHOUT_AI_QUALITY "quality"
typedef struct shout shout_t;
typedef struct _util_dict shout_metadata_t;
#ifdef __cplusplus
extern "C" {
#endif
/* initializes the shout library. Must be called before anything else */
void shout_init(void);
/* shuts down the shout library, deallocating any global storage. Don't call
* anything afterwards */
void shout_shutdown(void);
/* returns a static version string. Non-null parameters will be set to the
* value of the library major, minor, and patch levels, respectively */
const char *shout_version(int *major, int *minor, int *patch);
/* Allocates and sets up a new shout_t. Returns NULL if it can't get enough
* memory. The returns shout_t must be disposed of with shout_free. */
shout_t *shout_new(void);
/* Free all memory allocated by a shout_t */
void shout_free(shout_t *self);
/* Returns a statically allocated string describing the last shout error
* to occur. Only valid until the next libshout call on this shout_t */
const char *shout_get_error(shout_t *self);
/* Return the error code (e.g. SHOUTERR_SOCKET) for this shout instance */
int shout_get_errno(shout_t *self);
/* returns SHOUTERR_CONNECTED or SHOUTERR_UNCONNECTED */
int shout_get_connected(shout_t *self);
/* Parameter manipulation functions. libshout makes copies of all parameters,
* the caller may free its copies after giving them to libshout. May return
* SHOUTERR_MALLOC */
int shout_set_host(shout_t *self, const char *host);
const char *shout_get_host(shout_t *self);
int shout_set_port(shout_t *self, unsigned short port);
unsigned short shout_get_port(shout_t *self);
int shout_set_password(shout_t *, const char *password);
const char *shout_get_password(shout_t *self);
int shout_set_mount(shout_t *self, const char *mount);
const char *shout_get_mount(shout_t *self);
int shout_set_name(shout_t *self, const char *name);
const char *shout_get_name(shout_t *self);
int shout_set_url(shout_t *self, const char *url);
const char *shout_get_url(shout_t *self);
int shout_set_genre(shout_t *self, const char *genre);
const char *shout_get_genre(shout_t *self);
int shout_set_user(shout_t *self, const char *username);
const char *shout_get_user(shout_t *self);
int shout_set_agent(shout_t *self, const char *username);
const char *shout_get_agent(shout_t *self);
int shout_set_description(shout_t *self, const char *description);
const char *shout_get_description(shout_t *self);
int shout_set_dumpfile(shout_t *self, const char *dumpfile);
const char *shout_get_dumpfile(shout_t *self);
int shout_set_audio_info(shout_t *self, const char *name, const char *value);
const char *shout_get_audio_info(shout_t *self, const char *name);
int shout_set_public(shout_t *self, unsigned int make_public);
unsigned int shout_get_public(shout_t *self);
/* takes a SHOUT_FORMAT_xxxx argument */
int shout_set_format(shout_t *self, unsigned int format);
unsigned int shout_get_format(shout_t *self);
/* takes a SHOUT_PROTOCOL_xxxxx argument */
int shout_set_protocol(shout_t *self, unsigned int protocol);
unsigned int shout_get_protocol(shout_t *self);
/* Instructs libshout to use nonblocking I/O. Must be called before
* shout_open (no switching back and forth midstream at the moment). */
int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);
unsigned int shout_get_nonblocking(shout_t *self);
/* Opens a connection to the server. All parameters must already be set */
int shout_open(shout_t *self);
/* Closes a connection to the server */
int shout_close(shout_t *self);
/* Send data to the server, parsing it for format specific timing info */
int shout_send(shout_t *self, const unsigned char *data, size_t len);
/* Send unparsed data to the server. Do not use this unless you know
* what you are doing.
* Returns the number of bytes written, or < 0 on error.
*/
ssize_t shout_send_raw(shout_t *self, const unsigned char *data, size_t len);
/* return the number of bytes currently on the write queue (only makes sense in
* nonblocking mode). */
ssize_t shout_queuelen(shout_t *self);
/* Puts caller to sleep until it is time to send more data to the server */
void shout_sync(shout_t *self);
/* Amount of time in ms caller should wait before sending again */
int shout_delay(shout_t *self);
/* Sets MP3 metadata.
* Returns:
* SHOUTERR_SUCCESS
* SHOUTERR_UNSUPPORTED if format isn't MP3
* SHOUTERR_MALLOC
* SHOUTERR_INSANE
* SHOUTERR_NOCONNECT
* SHOUTERR_SOCKET
*/
int shout_set_metadata(shout_t *self, shout_metadata_t *metadata);
/* Allocates a new metadata structure. Must be freed by shout_metadata_free. */
shout_metadata_t *shout_metadata_new(void);
/* Free resources allocated by shout_metadata_t */
void shout_metadata_free(shout_metadata_t *self);
/* Add a parameter to the metadata structure.
* Returns:
* SHOUTERR_SUCCESS on success
* SHOUTERR_INSANE if self isn't a valid shout_metadata_t* or name is null
* SHOUTERR_MALLOC if memory can't be allocated */
int shout_metadata_add(shout_metadata_t *self, const char *name, const char *value);
#ifdef __cplusplus
}
#endif
/* --- Compiled features --- */
#define SHOUT_THREADSAFE 0
#endif /* __LIBSHOUT_SHOUT_H__ */

View File

@ -1,588 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="taglib"
ProjectGUID="{B1A6316C-A73A-4B34-A428-E967A698CA37}"
RootNamespace="taglib"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\taglib;.\taglib\taglib;.\taglib\taglib\toolkit;.\taglib\taglib\ogg;.\taglib\taglib\ogg\vorbis;.\taglib\taglib\ogg\flac;.\taglib\taglib\ogg\speex;.\taglib\taglib\flac;.\taglib\taglib\mpeg;.\taglib\taglib\mpeg\id3v1;.\taglib\taglib\mpeg\id3v2;.\taglib\taglib\mpc;.\taglib\taglib\ape;.\taglib\taglib\trueaudio;.\taglib\taglib\wavpack;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;MAKE_TAGLIB_LIB;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="1"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="2"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\taglib;.\taglib\taglib;.\taglib\taglib\toolkit;.\taglib\taglib\ogg;.\taglib\taglib\ogg\vorbis;.\taglib\taglib\ogg\flac;.\taglib\taglib\ogg\speex;.\taglib\taglib\flac;.\taglib\taglib\mpeg;.\taglib\taglib\mpeg\id3v1;.\taglib\taglib\mpeg\id3v2;.\taglib\taglib\mpc;.\taglib\taglib\ape;.\taglib\taglib\trueaudio;.\taglib\taglib\wavpack;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;MAKE_TAGLIB_LIB;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="true"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="2"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\taglib\taglib\ape\apefooter.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ape\apeitem.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ape\apetag.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\attachedpictureframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\audioproperties.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\commentsframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\fileref.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\flac\flacfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\flac\flacproperties.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v1\id3v1genres.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v1\id3v1tag.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2extendedheader.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2footer.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2frame.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2framefactory.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2header.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2synchdata.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2tag.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpc\mpcfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpc\mpcproperties.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegheader.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegproperties.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\flac\oggflacfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggpage.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggpageheader.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\relativevolumeframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\tag.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tbytevector.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tbytevectorlist.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tdebug.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\textidentificationframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tstring.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tstringlist.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\unicode.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\uniquefileidentifierframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\unknownframe.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\vorbis\vorbisfile.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\vorbis\vorbisproperties.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\xingheader.cpp"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\xiphcomment.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\taglib\taglib\ape\apefooter.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ape\apeitem.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ape\apetag.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\attachedpictureframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\audioproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\commentsframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\fileref.h"
>
</File>
<File
RelativePath=".\taglib\taglib\flac\flacfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\flac\flacproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\generalencapsulatedobjectframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v1\id3v1genres.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v1\id3v1tag.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2extendedheader.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2footer.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2frame.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2framefactory.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2header.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2synchdata.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\id3v2tag.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpc\mpcfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpc\mpcproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegheader.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\mpegproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\flac\oggflacfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggpage.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\oggpageheader.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\relativevolumeframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\speex\speexfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\speex\speexproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\tag.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\taglib.h"
>
</File>
<File
RelativePath=".\taglib\taglib\taglib_export.h"
>
</File>
<File
RelativePath=".\taglib\taglib\tagunion.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tbytevector.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tbytevectorlist.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tdebug.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\textidentificationframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tlist.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tmap.h"
>
</File>
<File
RelativePath=".\taglib\taglib\trueaudio\trueaudiofile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\trueaudio\trueaudioproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tstring.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\tstringlist.h"
>
</File>
<File
RelativePath=".\taglib\taglib\toolkit\unicode.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\uniquefileidentifierframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\unknownframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\unsynchronizedlyricsframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\id3v2\frames\urllinkframe.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\vorbis\vorbisfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\vorbis\vorbisproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\wavpack\wavpackfile.h"
>
</File>
<File
RelativePath=".\taglib\taglib\wavpack\wavpackproperties.h"
>
</File>
<File
RelativePath=".\taglib\taglib\mpeg\xingheader.h"
>
</File>
<File
RelativePath=".\taglib\taglib\ogg\xiphcomment.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,194 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="taglib_c"
ProjectGUID="{0A70BF55-FCF6-4DD8-A455-8233666A60E1}"
RootNamespace="taglib_c"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="0"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\taglib;.\taglib\taglib;.\taglib\taglib\toolkit;.\taglib\taglib\ogg;.\taglib\taglib\ogg\vorbis;.\taglib\taglib\ogg\flac;.\taglib\taglib\ogg\speex;.\taglib\taglib\flac;.\taglib\taglib\mpeg;.\taglib\taglib\mpeg\id3v1;.\taglib\taglib\mpeg\id3v2;.\taglib\taglib\mpc;.\taglib\taglib\ape;.\taglib\taglib\trueaudio;.\taglib\taglib\wavpack;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;_DEBUG;MAKE_TAGLIB_C_LIB;"
StringPooling="true"
MinimalRebuild="true"
ExceptionHandling="1"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
EnableFunctionLevelLinking="true"
RuntimeTypeInfo="true"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\$(TargetName)-BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
UseUnicodeResponseFiles="false"
Optimization="3"
EnableIntrinsicFunctions="false"
AdditionalIncludeDirectories=".;.\taglib;.\taglib\taglib;.\taglib\taglib\toolkit;.\taglib\taglib\ogg;.\taglib\taglib\ogg\vorbis;.\taglib\taglib\ogg\flac;.\taglib\taglib\ogg\speex;.\taglib\taglib\flac;.\taglib\taglib\mpeg;.\taglib\taglib\mpeg\id3v1;.\taglib\taglib\mpeg\id3v2;.\taglib\taglib\mpc;.\taglib\taglib\ape;.\taglib\taglib\trueaudio;.\taglib\taglib\wavpack;"
PreprocessorDefinitions="WIN32;_CRT_SECURE_NO_WARNINGS;NDEBUG;MAKE_TAGLIB_C_LIB;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="2"
EnableFunctionLevelLinking="false"
RuntimeTypeInfo="true"
ObjectFile="$(IntDir)\$(TargetName).obj\"
ProgramDataBaseFileName="$(IntDir)\$(TargetName)-vc90.pdb"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="2"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
UseUnicodeResponseFiles="false"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\taglib\bindings\c\tag_c.cpp"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\taglib\bindings\c\tag_c.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -1,511 +0,0 @@
/***************************************************************************
copyright : (C) 2002, 2003 by Scott Wheeler
email : wheeler@kde.org
***************************************************************************/
/***************************************************************************
* This library is free software; you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License version *
* 2.1 as published by the Free Software Foundation. *
* *
* 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 *
* Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public *
* License along with this library; if not, write to the Free Software *
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
* USA *
***************************************************************************/
#include "tfile.h"
#include "tstring.h"
#include "tdebug.h"
#ifdef WIN32
# include <io.h>
# define ftruncate _chsize
#endif /* WIN32 */
#include <stdio.h>
#include <sys/stat.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#if !defined(R_OK) || !defined(W_OK)
# undef R_OK
# undef W_OK
# define R_OK 4
# define W_OK 2
#endif /* !R_OK || !W_OK */
using namespace TagLib;
class File::FilePrivate
{
public:
FilePrivate(const char *fileName) :
file(0),
name(fileName),
readOnly(true),
valid(true),
size(0)
{}
~FilePrivate()
{
free((void *)name);
}
FILE *file;
const char *name;
bool readOnly;
bool valid;
ulong size;
static const uint bufferSize = 1024;
};
////////////////////////////////////////////////////////////////////////////////
// public members
////////////////////////////////////////////////////////////////////////////////
File::File(const char *file)
{
d = new FilePrivate(::strdup(file));
d->readOnly = !isWritable(file);
d->file = fopen(file, d->readOnly ? "r" : "r+");
if(!d->file)
debug("Could not open file " + String(file));
}
File::~File()
{
if(d->file)
fclose(d->file);
delete d;
}
const char *File::name() const
{
return d->name;
}
ByteVector File::readBlock(ulong length)
{
if(!d->file) {
debug("File::readBlock() -- Invalid File");
return ByteVector::null;
}
if(length > FilePrivate::bufferSize &&
length > ulong(File::length()))
{
length = File::length();
}
ByteVector v(static_cast<uint>(length));
const int count = fread(v.data(), sizeof(char), length, d->file);
v.resize(count);
return v;
}
void File::writeBlock(const ByteVector &data)
{
if(!d->file)
return;
if(d->readOnly) {
debug("File::writeBlock() -- attempted to write to a file that is not writable");
return;
}
fwrite(data.data(), sizeof(char), data.size(), d->file);
}
long File::find(const ByteVector &pattern, long fromOffset, const ByteVector &before)
{
if(!d->file || pattern.size() > d->bufferSize)
return -1;
// The position in the file that the current buffer starts at.
long bufferOffset = fromOffset;
ByteVector buffer;
// These variables are used to keep track of a partial match that happens at
// the end of a buffer.
int previousPartialMatch = -1;
int beforePreviousPartialMatch = -1;
// Save the location of the current read pointer. We will restore the
// position using seek() before all returns.
long originalPosition = tell();
// Start the search at the offset.
seek(fromOffset);
// This loop is the crux of the find method. There are three cases that we
// want to account for:
//
// (1) The previously searched buffer contained a partial match of the search
// pattern and we want to see if the next one starts with the remainder of
// that pattern.
//
// (2) The search pattern is wholly contained within the current buffer.
//
// (3) The current buffer ends with a partial match of the pattern. We will
// note this for use in the next itteration, where we will check for the rest
// of the pattern.
//
// All three of these are done in two steps. First we check for the pattern
// and do things appropriately if a match (or partial match) is found. We
// then check for "before". The order is important because it gives priority
// to "real" matches.
for(buffer = readBlock(d->bufferSize); buffer.size() > 0; buffer = readBlock(d->bufferSize)) {
// (1) previous partial match
if(previousPartialMatch >= 0 && int(d->bufferSize) > previousPartialMatch) {
const int patternOffset = (d->bufferSize - previousPartialMatch);
if(buffer.containsAt(pattern, 0, patternOffset)) {
seek(originalPosition);
return bufferOffset - d->bufferSize + previousPartialMatch;
}
}
if(!before.isNull() && beforePreviousPartialMatch >= 0 && int(d->bufferSize) > beforePreviousPartialMatch) {
const int beforeOffset = (d->bufferSize - beforePreviousPartialMatch);
if(buffer.containsAt(before, 0, beforeOffset)) {
seek(originalPosition);
return -1;
}
}
// (2) pattern contained in current buffer
long location = buffer.find(pattern);
if(location >= 0) {
seek(originalPosition);
return bufferOffset + location;
}
if(!before.isNull() && buffer.find(before) >= 0) {
seek(originalPosition);
return -1;
}
// (3) partial match
previousPartialMatch = buffer.endsWithPartialMatch(pattern);
if(!before.isNull())
beforePreviousPartialMatch = buffer.endsWithPartialMatch(before);
bufferOffset += d->bufferSize;
}
// Since we hit the end of the file, reset the status before continuing.
clear();
seek(originalPosition);
return -1;
}
long File::rfind(const ByteVector &pattern, long fromOffset, const ByteVector &before)
{
if(!d->file || pattern.size() > d->bufferSize)
return -1;
// The position in the file that the current buffer starts at.
ByteVector buffer;
// These variables are used to keep track of a partial match that happens at
// the end of a buffer.
/*
int previousPartialMatch = -1;
int beforePreviousPartialMatch = -1;
*/
// Save the location of the current read pointer. We will restore the
// position using seek() before all returns.
long originalPosition = tell();
// Start the search at the offset.
long bufferOffset;
if(fromOffset == 0) {
seek(-1 * int(d->bufferSize), End);
bufferOffset = tell();
}
else {
seek(fromOffset + -1 * int(d->bufferSize), Beginning);
bufferOffset = tell();
}
// See the notes in find() for an explanation of this algorithm.
for(buffer = readBlock(d->bufferSize); buffer.size() > 0; buffer = readBlock(d->bufferSize)) {
// TODO: (1) previous partial match
// (2) pattern contained in current buffer
long location = buffer.rfind(pattern);
if(location >= 0) {
seek(originalPosition);
return bufferOffset + location;
}
if(!before.isNull() && buffer.find(before) >= 0) {
seek(originalPosition);
return -1;
}
// TODO: (3) partial match
bufferOffset -= d->bufferSize;
seek(bufferOffset);
}
// Since we hit the end of the file, reset the status before continuing.
clear();
seek(originalPosition);
return -1;
}
void File::insert(const ByteVector &data, ulong start, ulong replace)
{
if(!d->file)
return;
if(data.size() == replace) {
seek(start);
writeBlock(data);
return;
}
else if(data.size() < replace) {
seek(start);
writeBlock(data);
removeBlock(start + data.size(), replace - data.size());
return;
}
// Woohoo! Faster (about 20%) than id3lib at last. I had to get hardcore
// and avoid TagLib's high level API for rendering just copying parts of
// the file that don't contain tag data.
//
// Now I'll explain the steps in this ugliness:
// First, make sure that we're working with a buffer that is longer than
// the *differnce* in the tag sizes. We want to avoid overwriting parts
// that aren't yet in memory, so this is necessary.
ulong bufferLength = bufferSize();
while(data.size() - replace > bufferLength)
bufferLength += bufferSize();
// Set where to start the reading and writing.
long readPosition = start + replace;
long writePosition = start;
ByteVector buffer;
ByteVector aboutToOverwrite(static_cast<uint>(bufferLength));
// This is basically a special case of the loop below. Here we're just
// doing the same steps as below, but since we aren't using the same buffer
// size -- instead we're using the tag size -- this has to be handled as a
// special case. We're also using File::writeBlock() just for the tag.
// That's a bit slower than using char *'s so, we're only doing it here.
seek(readPosition);
int bytesRead = fread(aboutToOverwrite.data(), sizeof(char), bufferLength, d->file);
readPosition += bufferLength;
seek(writePosition);
writeBlock(data);
writePosition += data.size();
buffer = aboutToOverwrite;
// Ok, here's the main loop. We want to loop until the read fails, which
// means that we hit the end of the file.
while(bytesRead != 0) {
// Seek to the current read position and read the data that we're about
// to overwrite. Appropriately increment the readPosition.
seek(readPosition);
bytesRead = fread(aboutToOverwrite.data(), sizeof(char), bufferLength, d->file);
aboutToOverwrite.resize(bytesRead);
readPosition += bufferLength;
// Check to see if we just read the last block. We need to call clear()
// if we did so that the last write succeeds.
if(ulong(bytesRead) < bufferLength)
clear();
// Seek to the write position and write our buffer. Increment the
// writePosition.
seek(writePosition);
fwrite(buffer.data(), sizeof(char), bufferLength, d->file);
writePosition += bufferLength;
// Make the current buffer the data that we read in the beginning.
buffer = aboutToOverwrite;
// Again, we need this for the last write. We don't want to write garbage
// at the end of our file, so we need to set the buffer size to the amount
// that we actually read.
bufferLength = bytesRead;
}
}
void File::removeBlock(ulong start, ulong length)
{
if(!d->file)
return;
ulong bufferLength = bufferSize();
long readPosition = start + length;
long writePosition = start;
ByteVector buffer(static_cast<uint>(bufferLength));
ulong bytesRead = true;
while(bytesRead != 0) {
seek(readPosition);
bytesRead = fread(buffer.data(), sizeof(char), bufferLength, d->file);
buffer.resize(bytesRead);
readPosition += bytesRead;
// Check to see if we just read the last block. We need to call clear()
// if we did so that the last write succeeds.
if(bytesRead < bufferLength)
clear();
seek(writePosition);
fwrite(buffer.data(), sizeof(char), bytesRead, d->file);
writePosition += bytesRead;
}
truncate(writePosition);
}
bool File::readOnly() const
{
return d->readOnly;
}
bool File::isReadable(const char *file)
{
return access(file, R_OK) == 0;
}
bool File::isOpen() const
{
return d->file;
}
bool File::isValid() const
{
return d->file && d->valid;
}
void File::seek(long offset, Position p)
{
if(!d->file) {
debug("File::seek() -- trying to seek in a file that isn't opened.");
return;
}
switch(p) {
case Beginning:
fseek(d->file, offset, SEEK_SET);
break;
case Current:
fseek(d->file, offset, SEEK_CUR);
break;
case End:
fseek(d->file, offset, SEEK_END);
break;
}
}
void File::clear()
{
clearerr(d->file);
}
long File::tell() const
{
return ftell(d->file);
}
long File::length()
{
// Do some caching in case we do multiple calls.
if(d->size > 0)
return d->size;
if(!d->file)
return 0;
long curpos = tell();
seek(0, End);
long endpos = tell();
seek(curpos, Beginning);
d->size = endpos;
return endpos;
}
bool File::isWritable(const char *file)
{
return access(file, W_OK) == 0;
}
////////////////////////////////////////////////////////////////////////////////
// protected members
////////////////////////////////////////////////////////////////////////////////
void File::setValid(bool valid)
{
d->valid = valid;
}
void File::truncate(long length)
{
ftruncate(fileno(d->file), length);
}
TagLib::uint File::bufferSize()
{
return FilePrivate::bufferSize;
}