shithub: aacenc

Download patch

ref: 5eb3da87e785a5d743adc1d7ee2ff9a79343c325
parent: d458cc1bb90c25815d61357c56dbf09c59e55859
author: aforanna <aforanna>
date: Tue Oct 26 09:04:09 EDT 2004

no message

binary files a/plugins/winamp/AudioCoding.bmp /dev/null differ
--- a/plugins/winamp/CRegistry.cpp
+++ /dev/null
@@ -1,362 +1,0 @@
-/*
-CRegistry class
-Copyright (C) 2002-2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-#include "CRegistry.h"
-
-//************************************************************************************************
-
-CRegistry::CRegistry()
-{
-	regKey=NULL;
-	path=NULL;
-}
-//------------------------------------------------------------------------------------------------
-
-CRegistry::~CRegistry()
-{
-	if(regKey)
-		RegCloseKey(regKey);
-	if(path)
-		free(path);
-}
-//************************************************************************************************
-/*
-void CRegistry::ShowLastError(char *Caption)
-{
-LPVOID MsgBuf;
-	if(FormatMessage( 
-		FORMAT_MESSAGE_ALLOCATE_BUFFER | 
-		FORMAT_MESSAGE_FROM_SYSTEM | 
-		FORMAT_MESSAGE_IGNORE_INSERTS,
-		NULL,
-		GetLastError(),
-		MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
-		(LPTSTR) &MsgBuf,
-		0,
-		NULL 
-	))
-		MessageBox(NULL, (LPCTSTR)MsgBuf, Caption, MB_OK|MB_ICONSTOP);
-	if(MsgBuf)
-		LocalFree(MsgBuf);
-}*/
-//************************************************************************************************
-
-#define setPath(SubKey) \
-	if(path) \
-		free(path); \
-	path=strdup(SubKey);
-
-BOOL CRegistry::Open(HKEY hKey, char *SubKey)
-{
-	if(regKey)
-		RegCloseKey(regKey);
-	if(RegOpenKeyEx(hKey, SubKey, 0, KEY_ALL_ACCESS, &regKey)==ERROR_SUCCESS)
-	{
-		setPath(SubKey);
-		return TRUE;
-	}
-	else // can't open the key -> error
-	{
-		regKey=0;
-		setPath("");
-		return FALSE;
-	}
-}
-//************************************************************************************************
-
-BOOL CRegistry::OpenCreate(HKEY hKey, char *SubKey)
-{
-	if(regKey)
-		RegCloseKey(regKey);
-	if(RegOpenKeyEx(hKey, SubKey, 0, KEY_ALL_ACCESS, &regKey)==ERROR_SUCCESS)
-	{
-		setPath(SubKey);
-		return TRUE;
-	}
-	else // open failed -> create the key
-	{
-	DWORD disp;
-		RegCreateKeyEx(hKey, SubKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &regKey, &disp);
-		if(disp==REG_CREATED_NEW_KEY) 
-		{
-			setPath(SubKey);
-			return TRUE;
-		}
-		else // can't create the key -> error
-		{
-			regKey=0;
-			setPath("");
-			return FALSE;
-		}
-	}
-}
-//************************************************************************************************
-
-void CRegistry::Close()
-{
-	if(regKey)
-		RegCloseKey(regKey);
-	regKey=NULL;
-	if(path) 
-		delete path; 
-	path=NULL;
-}
-//************************************************************************************************
-//************************************************************************************************
-//************************************************************************************************
-
-void CRegistry::DeleteVal(char *SubKey)
-{
-	RegDeleteValue(regKey,SubKey);
-}
-//************************************************************************************************
-
-void CRegistry::DeleteKey(char *SubKey)
-{
-	RegDeleteKey(regKey,SubKey);
-}
-
-//************************************************************************************************
-//************************************************************************************************
-//************************************************************************************************
-
-void CRegistry::SetBool(char *keyStr, bool val)
-{
-bool tempVal;
-DWORD len=sizeof(bool);
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS ||
-		tempVal!=val)
-		RegSetValueEx(regKey, keyStr, 0, REG_BINARY, (BYTE *)&val, sizeof(bool));
-}
-//************************************************************************************************
-
-void CRegistry::SetByte(char *keyStr, BYTE val)
-{
-DWORD	t=val;
-DWORD	tempVal;
-DWORD	len;
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS ||
-		tempVal!=val)
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&t, sizeof(DWORD));
-}
-//************************************************************************************************
-
-void CRegistry::SetWord(char *keyStr, WORD val)
-{
-DWORD	t=val;
-DWORD	tempVal;
-DWORD	len;
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS ||
-		tempVal!=val)
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&t, sizeof(DWORD));
-}
-//************************************************************************************************
-
-void CRegistry::SetDword(char *keyStr, DWORD val)
-{
-DWORD tempVal;
-DWORD len;
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS ||
-		tempVal!=val)
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&val, sizeof(DWORD));
-}
-//************************************************************************************************
-
-void CRegistry::SetFloat(char *keyStr, float val)
-{
-float tempVal;
-DWORD len;
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS ||
-		tempVal!=val)
-		RegSetValueEx(regKey, keyStr, 0, REG_BINARY, (BYTE *)&val, sizeof(float));
-}
-//************************************************************************************************
-
-void CRegistry::SetStr(char *keyStr, char *valStr)
-{
-DWORD len;
-DWORD slen=strlen(valStr)+1;
-
-	if(!valStr || !*valStr)
-		return;
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, NULL, &len )!=ERROR_SUCCESS ||
-		len!=slen)
-		RegSetValueEx(regKey, keyStr, 0, REG_SZ, (BYTE *)valStr, slen);
-	else
-	{
-	char *tempVal=new char[slen];
-		if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)tempVal, &len )!=ERROR_SUCCESS ||
-			strcmpi(tempVal,valStr))
-			RegSetValueEx(regKey, keyStr, 0, REG_SZ, (BYTE *)valStr, slen);
-		delete tempVal;
-	}
-}
-//************************************************************************************************
-
-void CRegistry::SetValN(char *keyStr, BYTE *addr,  DWORD size)
-{
-DWORD len;
-	if(!addr || !size)
-		return;
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, NULL, &len )!=ERROR_SUCCESS ||
-		len!=size)
-		RegSetValueEx(regKey, keyStr, 0, REG_BINARY, addr, size);
-	else
-	{
-	BYTE *tempVal=new BYTE[size];
-		if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)tempVal, &len )!=ERROR_SUCCESS ||
-			memcmp(tempVal,addr,len))
-			RegSetValueEx(regKey, keyStr, 0, REG_BINARY, addr, size);
-		delete tempVal;
-	}
-}
-
-
-
-//************************************************************************************************
-//************************************************************************************************
-//************************************************************************************************
-
-
-
-bool CRegistry::GetSetBool(char *keyStr, bool val)
-{
-bool tempVal;
-DWORD len=sizeof(bool);
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS)
-	{
-		RegSetValueEx(regKey, keyStr, 0, REG_BINARY, (BYTE *)&val, sizeof(bool));
-		return val;
-	}
-	return tempVal;
-}
-//************************************************************************************************
-
-BYTE CRegistry::GetSetByte(char *keyStr, BYTE val)
-{
-DWORD tempVal;
-DWORD len=sizeof(DWORD);
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS)
-	{
-		tempVal=val;
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&tempVal, sizeof(DWORD));
-		return val;
-	}
-	return (BYTE)tempVal;
-}
-//************************************************************************************************
-
-WORD CRegistry::GetSetWord(char *keyStr, WORD val)
-{
-DWORD tempVal;
-DWORD len=sizeof(DWORD);
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS)
-	{
-		tempVal=val;
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&tempVal, sizeof(DWORD));
-		return val;
-	}
-	return (WORD)tempVal;
-}
-//************************************************************************************************
-
-DWORD CRegistry::GetSetDword(char *keyStr, DWORD val)
-{
-DWORD tempVal;
-DWORD len=sizeof(DWORD);
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS)
-	{
-		RegSetValueEx(regKey, keyStr, 0, REG_DWORD, (BYTE *)&val, sizeof(DWORD));
-		return val;
-	}
-	return (DWORD)tempVal;
-}
-//************************************************************************************************
-
-float CRegistry::GetSetFloat(char *keyStr, float val)
-{
-float tempVal;
-DWORD len=sizeof(float);
-
-	if(RegQueryValueEx(regKey, keyStr, NULL, NULL, (BYTE *)&tempVal, &len )!=ERROR_SUCCESS)
-	{
-		RegSetValueEx(regKey, keyStr, 0, REG_BINARY, (BYTE *)&val, sizeof(float));
-		return val;
-	}
-	return tempVal;
-}
-//************************************************************************************************
-
-char *CRegistry::GetSetStr(char *keyStr, char *String)
-{
-long	retVal;
-DWORD	Len;
-char	*dest=NULL;
-	
-	if((retVal=RegQueryValueEx(regKey , keyStr , NULL , NULL, NULL, &Len))==ERROR_SUCCESS)
-		if(dest=(char *)malloc(Len+1))
-			retVal=RegQueryValueEx(regKey , keyStr , NULL , NULL, (BYTE *)dest , &Len);
-	if(retVal!=ERROR_SUCCESS)
-	{
-		if(dest)
-			free(dest);
-		if(!String)
-			return NULL;
-
-		Len=strlen(String)+1;
-		if(!(dest=strdup(String)))
-			return NULL;
-		RegSetValueEx(regKey , keyStr , NULL , REG_SZ , (BYTE *)dest , Len);
-	}
-	return dest;
-}
-// -----------------------------------------------------------------------------------------------
-
-int CRegistry::GetSetValN(char *keyStr, BYTE *defData, DWORD defSize, BYTE **dest)
-{
-long	retVal;
-DWORD	size;
-
-	dest=NULL;
-	if((retVal=RegQueryValueEx(regKey , keyStr , NULL , NULL, NULL, &size))==ERROR_SUCCESS)
-		if(*dest=(BYTE *)malloc(size+1))
-			retVal=RegQueryValueEx(regKey , keyStr , NULL , NULL, (BYTE *)*dest , &size);
-	if(retVal!=ERROR_SUCCESS)
-	{
-		if(dest)
-			free(dest);
-		if(!defData)
-			return 0;
-
-		size=defSize;
-		if(!(*dest=(BYTE *)malloc(size)))
-			return 0;
-		memcpy(*dest,defData,size);
-		RegSetValueEx(regKey , keyStr , NULL , REG_BINARY , (BYTE *)*dest , size);
-	}
-	return size;
-}
--- a/plugins/winamp/CRegistry.h
+++ /dev/null
@@ -1,64 +1,0 @@
-/*
-CRegistry class
-Copyright (C) 2002-2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-//---------------------------------------------------------------------------
-#ifndef CRegistryH
-#define CRegistryH
-//---------------------------------------------------------------------------
-
-#include <windows.h>
-#include <stdlib.h>
-#include <string.h>
-//#include <memory.h>
-
-class CRegistry 
-{
-public:
-			CRegistry();
-			~CRegistry();
-
-	BOOL	Open(HKEY hKey, char *SubKey);
-	BOOL	OpenCreate(HKEY hKey, char *SubKey);
-	void	Close();
-	void	DeleteVal(char *SubKey);
-	void	DeleteKey(char *SubKey);
-
-	void	SetBool(char *keyStr , bool val);
-	void	SetByte(char *keyStr , BYTE val);
-	void	SetWord(char *keyStr , WORD val);
-	void	SetDword(char *keyStr , DWORD val);
-	void	SetFloat(char *keyStr , float val);
-	void	SetStr(char *keyStr , char *valStr);
-	void	SetValN(char *keyStr , BYTE *addr,  DWORD size);
-
-	bool	GetSetBool(char *keyStr, bool var);
-	BYTE	GetSetByte(char *keyStr, BYTE var);
-	WORD	GetSetWord(char *keyStr, WORD var);
-	DWORD	GetSetDword(char *keyStr, DWORD var);
-	float	GetSetFloat(char *keyStr, float var);
-	char	*GetSetStr(char *keyStr, char *String);
-	int		GetSetValN(char *keyStr, BYTE *defData, DWORD defSize, BYTE **dest);
-
-	HKEY	regKey;
-	char	*path;
-};
-
-#endif
--- a/plugins/winamp/CTag.cpp
+++ /dev/null
@@ -1,316 +1,0 @@
-/*
-FAAC - codec plugin for Cooledit
-Copyright (C) 2002-2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-#include <stdlib.h>
-#include <mp4.h>
-#include <faac.h>
-#include "CTag.h"
-
-
-
-// *********************************************************************************************
-//										CMP4Tag
-// *********************************************************************************************
-
-CMP4Tag::CMP4Tag()
-{
-//	memset(this,0,sizeof(*this));
-	copyright=NULL;
-	artist=title=album=year=genre=writer=comment=NULL;
-	trackno=ntracks=discno=ndiscs=0;
-	compilation=0;
-	artFilename=NULL;
-	art.pictureType=0; // = other
-	memset(&art,0,sizeof(art));
-}
-// *********************************************************************************************
-
-void CMP4Tag::FreeTag()
-{
-	FREE_ARRAY(artist);
-	FREE_ARRAY(title);
-	FREE_ARRAY(album);
-	FREE_ARRAY(year);
-	FREE_ARRAY(genre);
-	FREE_ARRAY(writer);
-	FREE_ARRAY(comment);
-	FREE_ARRAY(artFilename);
-	FREE_ARRAY(art.data);
-	FREE_ARRAY(art.description);
-	FREE_ARRAY(art.mimeType);
-	FREE_ARRAY(art.format);
-}
-// ***********************************************************************************************
-
-int CMP4Tag::check_image_header(const char *buf)
-{
-	if(!strncmp(buf, "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A", 8))
-		return 1; /* PNG */
-	if(!strncmp(buf, "\xFF\xD8\xFF\xE0", 4) &&
-		!strncmp(buf + 6, "JFIF\0",	5))
-		return 2; /* JPEG */
-	if(!strncmp(buf, "GIF87a", 6)	|| !strncmp(buf, "GIF89a", 6))
-		return 3; /* GIF */
-
-	return 0;
-}
-// -----------------------------------------------------------------------------------------------
-
-int CMP4Tag::ReadCoverArtFile(char *pCoverArtFile, char **artData)
-{
-FILE *artFile;
-
-	if(!pCoverArtFile || !*pCoverArtFile)
-		return 0;
-
-	if(!(artFile=fopen(pCoverArtFile, "rb")))
-	{
-		MessageBox(NULL,"ReadCoverArtFile: fopen",NULL,MB_OK);
-		return 0;
-	}
-
-int r;
-char *art;
-int	artSize=0;
-
-	fseek(artFile, 0, SEEK_END);
-	artSize=ftell(artFile);
-	fseek(artFile, 0, SEEK_SET);
-
-	if(!(art=(char *)malloc(artSize)))
-	{
-		fclose(artFile);
-		MessageBox(NULL,"ReadCoverArtFile: Memory allocation error!", NULL, MB_OK);
-		return 0;
-	}
-
-	r=fread(art, 1, artSize, artFile);
-	if(r!=artSize)
-	{
-		free(art);
-		fclose(artFile);
-		MessageBox(NULL,"ReadCoverArtFile: Error reading cover art file!", NULL, MB_OK);
-		return 0;
-	}
-	else
-		if(artSize<12 || !check_image_header(art))
-		{
-			// the above expression checks the image signature
-			free(art);
-			fclose(artFile);
-			MessageBox(NULL,"ReadCoverArtFile: Unsupported cover image file format!", NULL, MB_OK);
-			return 0;
-		}
-
-	FREE_ARRAY(*artData);
-	*artData=art;
-	fclose(artFile);
-	return artSize;
-}
-// *********************************************************************************************
-
-void CMP4Tag::WriteMP4Tag(MP4FileHandle MP4File)
-{
-char	buf[512], *faac_id_string, *faac_copyright_string;
-
-	sprintf(buf, "FAAC v%s", (faacEncGetVersion(&faac_id_string, &faac_copyright_string)==FAAC_CFG_VERSION) ? faac_id_string : " wrong libfaac version");
-	MP4SetMetadataTool(MP4File, buf);
-
-	if(artist) MP4SetMetadataArtist(MP4File, artist);
-	if(writer) MP4SetMetadataWriter(MP4File, writer);
-	if(title) MP4SetMetadataName(MP4File, title);
-	if(album) MP4SetMetadataAlbum(MP4File, album);
-	if(trackno>0) MP4SetMetadataTrack(MP4File, trackno, ntracks);
-	if(discno>0) MP4SetMetadataDisk(MP4File, discno, ndiscs);
-	if(compilation) MP4SetMetadataCompilation(MP4File, compilation);
-	if(year) MP4SetMetadataYear(MP4File, year);
-	if(genre) MP4SetMetadataGenre(MP4File, genre);
-	if(comment) MP4SetMetadataComment(MP4File, comment);
-	if(art.size=ReadCoverArtFile(artFilename,&art.data))
-	{
-		MP4SetMetadataCoverArt(MP4File, (BYTE *)art.data, art.size);
-		FREE_ARRAY(art.data);
-	}
-}
-// *********************************************************************************************
-
-void CMP4Tag::ReadMp4Tag(char *Filename)						 
-{
-MP4FileHandle MP4File;
-
-	if(!(MP4File=MP4Read(Filename, 0)))
-	{
-		MessageBox(NULL,"Can't open file",NULL,MB_OK);
-		return;
-	}
-
-	FREE_ARRAY(copyright);
-	MP4GetMetadataTool(MP4File, &copyright);
-
-	FREE_ARRAY(artist);
-	MP4GetMetadataArtist(MP4File, &artist);
-	FREE_ARRAY(writer);
-	MP4GetMetadataWriter(MP4File, &writer);
-	FREE_ARRAY(title);
-	MP4GetMetadataName(MP4File, &title);
-	FREE_ARRAY(album);
-	MP4GetMetadataAlbum(MP4File, &album);
-	MP4GetMetadataTrack(MP4File, &trackno, &ntracks);
-	MP4GetMetadataDisk(MP4File, &discno, &ndiscs);
-	MP4GetMetadataCompilation(MP4File, &compilation);
-	FREE_ARRAY(year);
-	MP4GetMetadataYear(MP4File, &year);
-	FREE_ARRAY(genre);
-	MP4GetMetadataGenre(MP4File, &genre);
-	FREE_ARRAY(comment);
-	MP4GetMetadataComment(MP4File, &comment);
-	FREE_ARRAY(art.data);
-	MP4GetMetadataCoverArt(MP4File, (BYTE **)&art.data, (u_int32_t *)&art.size);
-
-	MP4Close(MP4File);
-/*
-	FILE *f=fopen("D:\\prova.jpg","wb");
-		fwrite(artFile,1,artSize,f);
-		fclose(f);*/
-}
-// *********************************************************************************************
-
-#define DEL_FIELD(id3Tag,ID3FID) \
-{ \
-ID3_Frame *Frame=id3Tag.Find(ID3FID); \
-	if(Frame!=NULL) \
-		id3Tag.RemoveFrame(Frame); \
-}
-// -----------------------------------------------------------------------------------------------
-
-#define ADD_FIELD(id3Tag,ID3FID,ID3FN,data) \
-{ \
-ID3_Frame *NewFrame=new ID3_Frame(ID3FID); \
-	NewFrame->Field(ID3FN)=data; \
-	DEL_FIELD(id3Tag,ID3FID); \
-	id3Tag.AttachFrame(NewFrame); \
-}
-// -----------------------------------------------------------------------------------------------
-
-void CMP4Tag::WriteAacTag(char *Filename)
-{
-char	buf[512], *faac_id_string, *faac_copyright_string;
-ID3_Tag id3Tag;
-
-	id3Tag.Link(Filename);
-
-	sprintf(buf, "FAAC v%s", (faacEncGetVersion(&faac_id_string, &faac_copyright_string)==FAAC_CFG_VERSION) ? faac_id_string : " wrong libfaac version");
-	ADD_FIELD(id3Tag,ID3FID_ENCODEDBY,ID3FN_TEXT,buf);
-
-	ADD_FIELD(id3Tag,ID3FID_LEADARTIST,ID3FN_TEXT,artist);
-	ADD_FIELD(id3Tag,ID3FID_COMPOSER,ID3FN_TEXT,writer);
-	ADD_FIELD(id3Tag,ID3FID_TITLE,ID3FN_TEXT,title);
-	ADD_FIELD(id3Tag,ID3FID_ALBUM,ID3FN_TEXT,album);
-	sprintf(buf,"%d",trackno);
-	ADD_FIELD(id3Tag,ID3FID_TRACKNUM,ID3FN_TEXT,buf);
-	ADD_FIELD(id3Tag,ID3FID_YEAR,ID3FN_TEXT,year);
-	ADD_FIELD(id3Tag,ID3FID_CONTENTTYPE,ID3FN_TEXT,genre);
-	ADD_FIELD(id3Tag,ID3FID_COMMENT,ID3FN_TEXT,comment);
-	art.size=ReadCoverArtFile(artFilename,&art.data);
-	if(art.size)
-	{
-	ID3_Frame *NewFrame=new ID3_Frame(ID3FID_PICTURE);
-	char name[_MAX_FNAME], ext[_MAX_EXT];
-		_splitpath(artFilename,NULL,NULL,name,ext);
-
-		NewFrame->Field(ID3FN_DESCRIPTION)=name;
-	char buf[15];
-		sprintf(buf,"image/%s",check_image_header(art.data)==2 ? "jpeg" : strlwr(ext+1));
-		NewFrame->Field(ID3FN_MIMETYPE)=buf;
-//		NewFrame->Field(ID3FN_IMAGEFORMAT)=;
-		NewFrame->Field(ID3FN_PICTURETYPE)=(DWORD)art.pictureType;
-		NewFrame->Field(ID3FN_DATA).Set((BYTE *)art.data,art.size);
-		id3Tag.AttachFrame(NewFrame);
-	}
-
-	// setup all our rendering parameters
-    id3Tag.SetUnsync(false);
-    id3Tag.SetExtendedHeader(true);
-    id3Tag.SetCompression(true);
-    id3Tag.SetPadding(true);
- 
-	// write any changes to the file
-    id3Tag.Update();
-
-	FREE_ARRAY(art.data);
-}
-// *********************************************************************************************
-
-#define GET_FIELD_STR(id3Tag,ID3FID,ID3FN,data) \
-{ \
-	Frame=id3Tag.Find(ID3FID); \
-	if(Frame!=NULL) \
-	{ \
-	DWORD size=Frame->Field(ID3FN).Size(); \
-		FREE_ARRAY(data); \
-		if(data=(char *)malloc(size+1)) \
-			Frame->Field(ID3FN).Get(data,size+1); \
-	} \
-	else \
-		FREE_ARRAY(data); \
-}
-// -----------------------------------------------------------------------------------------------
-
-void CMP4Tag::ReadAacTag(char *Filename)
-{
-char	*buf=NULL;
-ID3_Tag id3Tag;
-ID3_Frame *Frame;
-
-	id3Tag.Link(Filename);
-
-	GET_FIELD_STR(id3Tag,ID3FID_ENCODEDBY,ID3FN_TEXT,copyright);
-
-	GET_FIELD_STR(id3Tag,ID3FID_LEADARTIST,ID3FN_TEXT,artist);
-	GET_FIELD_STR(id3Tag,ID3FID_COMPOSER,ID3FN_TEXT,writer);
-	GET_FIELD_STR(id3Tag,ID3FID_TITLE,ID3FN_TEXT,title);
-	GET_FIELD_STR(id3Tag,ID3FID_ALBUM,ID3FN_TEXT,album);
-
-	GET_FIELD_STR(id3Tag,ID3FID_TRACKNUM,ID3FN_TEXT,buf);
-	if(buf)
-		trackno=atoi(buf);
-	FREE_ARRAY(buf);
-	GET_FIELD_STR(id3Tag,ID3FID_YEAR,ID3FN_TEXT,year);
-	GET_FIELD_STR(id3Tag,ID3FID_CONTENTTYPE,ID3FN_TEXT,genre);
-	GET_FIELD_STR(id3Tag,ID3FID_COMMENT,ID3FN_TEXT,comment);
-
-	if(Frame=id3Tag.Find(ID3FID_PICTURE))
-	{
-		art.size=Frame->Field(ID3FN_DATA).Size();
-		FREE_ARRAY(art.data);
-		if(art.data=(char *)malloc(art.size))
-			memcpy(art.data,Frame->Field(ID3FN_DATA).GetBinary(),art.size);
-
-		GET_FIELD_STR(id3Tag,ID3FID_PICTURE,ID3FN_MIMETYPE,art.mimeType);
-		GET_FIELD_STR(id3Tag,ID3FID_PICTURE,ID3FN_DESCRIPTION,art.description);
-		GET_FIELD_STR(id3Tag,ID3FID_PICTURE,ID3FN_IMAGEFORMAT,art.format);
-		art.pictureType=Frame->Field(ID3FN_PICTURETYPE).Get();
-/*
-	FILE *f=fopen("D:\\prova.jpg","wb");
-		fwrite(artFile,1,artSize,f);
-		fclose(f);*/
-	}
-}
\ No newline at end of file
--- a/plugins/winamp/CTag.h
+++ /dev/null
@@ -1,85 +1,0 @@
-/*
-FAAC - codec plugin for Cooledit
-Copyright (C) 2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-#ifndef _CTag_H
-#define _CTag_H
-
-// *********************************************************************************************
-
-#include <mp4.h>
-#include <id3/tag.h>	// id3 tag
-#include "CRegistry.h"
-#include "Defines.h"
-
-// *********************************************************************************************
-
-#define REG_TAGON "Tag On"
-#define REG_ARTIST "Tag Artist"
-#define REG_TITLE "Tag Title"
-#define REG_ALBUM "Tag Album"
-#define REG_YEAR "Tag Year"
-#define REG_GENRE "Tag Genre"
-#define REG_WRITER "Tag Writer"
-#define REG_COMMENT "Tag Comment"
-#define REG_TRACK "Tag Track"
-#define REG_NTRACKS "Tag Tracks"
-#define REG_DISK "Tag Disk"
-#define REG_NDISKS "Tag Disks"
-#define REG_COMPILATION "Tag Compilation"
-#define REG_ARTFILE "Tag Art file"
-
-// *********************************************************************************************
-
-typedef struct
-{
-	char	*data;
-	DWORD	size;
-	DWORD	pictureType; // front, back, icon, ...
-	char	*mimeType, // jpg, png, gif
-			*format, // ???
-			*description; // text description
-} id3Picture;
-
-class CMP4Tag
-{
-private:
-	int check_image_header(const char *buf);
-	int ReadCoverArtFile(char *pCoverArtFile, char **artBuf);
-
-public:
-	CMP4Tag();
-	virtual ~CMP4Tag() { FreeTag(); }
-
-	virtual void FreeTag();
-	virtual void WriteMP4Tag(MP4FileHandle MP4File);
-	virtual void WriteAacTag(char *Filename);
-	virtual void ReadMp4Tag(char *Filename);
-	virtual void ReadAacTag(char *Filename);
-
-	char	*copyright; // used in Cfaad
-	char	*artist, *title, *album, *year, *genre, *writer, *comment;
-	WORD	trackno,ntracks, discno,ndiscs;
-	BYTE	compilation;
-	char	*artFilename;
-	id3Picture art; // used in ReadAacTag(). Remark: field not stored into registry
-};
-
-#endif
\ No newline at end of file
--- a/plugins/winamp/Cfaac.cpp
+++ /dev/null
@@ -1,584 +1,0 @@
-/*
-FAAC - codec plugin for Cooledit
-Copyright (C) 2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-#include "Cfaac.h"
-
-
-
-// *********************************************************************************************
-//										CMyEncCfg
-// *********************************************************************************************
-
-void CMyEncCfg::getCfg(CMyEncCfg *cfg)
-{ 
-CRegistry reg;
-
-	if(reg.OpenCreate(HKEY_CURRENT_USER, REGISTRY_PROGRAM_NAME "\\FAAC"))
-	{
-		cfg->AutoCfg=reg.GetSetBool(REG_AUTO,DEF_AUTO);
-		cfg->SaveMP4=reg.GetSetBool(REG_WRITEMP4,DEF_WRITEMP4);
-		cfg->EncCfg.mpegVersion=reg.GetSetDword(REG_MPEGVER,DEF_MPEGVER); 
-		cfg->EncCfg.aacObjectType=reg.GetSetDword(REG_PROFILE,DEF_PROFILE); 
-		cfg->EncCfg.allowMidside=reg.GetSetDword(REG_MIDSIDE,DEF_MIDSIDE); 
-		cfg->EncCfg.useTns=reg.GetSetDword(REG_TNS,DEF_TNS); 
-		cfg->EncCfg.useLfe=reg.GetSetDword(REG_LFE,DEF_LFE);
-		cfg->UseQuality=reg.GetSetBool(REG_USEQUALTY,DEF_USEQUALTY);
-		cfg->EncCfg.quantqual=reg.GetSetDword(REG_QUALITY,DEF_QUALITY); 
-		cfg->EncCfg.bitRate=reg.GetSetDword(REG_BITRATE,DEF_BITRATE); 
-		cfg->EncCfg.bandWidth=reg.GetSetDword(REG_BANDWIDTH,DEF_BANDWIDTH); 
-		cfg->EncCfg.outputFormat=reg.GetSetDword(REG_HEADER,DEF_HEADER); 
-
-		cfg->OutDir=reg.GetSetStr(REG_OutFolder,"");
-
-		cfg->TagOn=reg.GetSetByte(REG_TAGON,0);
-		cfg->Tag.artist=reg.GetSetStr(REG_ARTIST,"");
-		cfg->Tag.title=reg.GetSetStr(REG_TITLE,"");
-		cfg->Tag.album=reg.GetSetStr(REG_ALBUM,"");
-		cfg->Tag.year=reg.GetSetStr(REG_YEAR,"");
-		cfg->Tag.genre=reg.GetSetStr(REG_GENRE,"");
-		cfg->Tag.writer=reg.GetSetStr(REG_WRITER,"");
-		cfg->Tag.comment=reg.GetSetStr(REG_COMMENT,"");
-		cfg->Tag.trackno=reg.GetSetWord(REG_TRACK,0);
-		cfg->Tag.ntracks=reg.GetSetWord(REG_NTRACKS,0);
-		cfg->Tag.discno=reg.GetSetWord(REG_DISK,0);
-		cfg->Tag.ndiscs=reg.GetSetWord(REG_NDISKS,0);
-		cfg->Tag.compilation=reg.GetSetByte(REG_COMPILATION,0);
-		cfg->Tag.artFilename=reg.GetSetStr(REG_ARTFILE,"");
-	}
-	else
-		MessageBox(0,"Can't open registry!",0,MB_OK|MB_ICONSTOP);
-}
-// -----------------------------------------------------------------------------------------------
-
-void CMyEncCfg::setCfg(CMyEncCfg *cfg)
-{ 
-CRegistry reg;
-
-	if(reg.OpenCreate(HKEY_CURRENT_USER, REGISTRY_PROGRAM_NAME "\\FAAC"))
-	{
-		reg.SetBool(REG_AUTO,cfg->AutoCfg); 
-		reg.SetBool(REG_WRITEMP4,cfg->SaveMP4); 
-		reg.SetDword(REG_MPEGVER,cfg->EncCfg.mpegVersion); 
-		reg.SetDword(REG_PROFILE,cfg->EncCfg.aacObjectType); 
-		reg.SetDword(REG_MIDSIDE,cfg->EncCfg.allowMidside); 
-		reg.SetDword(REG_TNS,cfg->EncCfg.useTns); 
-		reg.SetDword(REG_LFE,cfg->EncCfg.useLfe); 
-		reg.SetBool(REG_USEQUALTY,cfg->UseQuality); 
-		reg.SetDword(REG_QUALITY,cfg->EncCfg.quantqual); 
-		reg.SetDword(REG_BITRATE,cfg->EncCfg.bitRate); 
-		reg.SetDword(REG_BANDWIDTH,cfg->EncCfg.bandWidth); 
-		reg.SetDword(REG_HEADER,cfg->EncCfg.outputFormat); 
-
-		reg.SetStr(REG_OutFolder,cfg->OutDir);
-
-		reg.SetByte(REG_TAGON,cfg->TagOn);
-		reg.SetStr(REG_ARTIST,cfg->Tag.artist);
-		reg.SetStr(REG_TITLE,cfg->Tag.title);
-		reg.SetStr(REG_ALBUM,cfg->Tag.album);
-		reg.SetStr(REG_YEAR,cfg->Tag.year);
-		reg.SetStr(REG_GENRE,cfg->Tag.genre);
-		reg.SetStr(REG_WRITER,cfg->Tag.writer);
-		reg.SetStr(REG_COMMENT,cfg->Tag.comment);
-		reg.SetWord(REG_TRACK,cfg->Tag.trackno); 
-		reg.SetWord(REG_NTRACKS,cfg->Tag.ntracks); 
-		reg.SetWord(REG_DISK,cfg->Tag.discno); 
-		reg.SetWord(REG_NDISKS,cfg->Tag.ndiscs); 
-		reg.SetByte(REG_COMPILATION,cfg->Tag.compilation); 
-		reg.SetStr(REG_ARTFILE,cfg->Tag.artFilename);
-	}
-	else
-		MessageBox(0,"Can't open registry!",0,MB_OK|MB_ICONSTOP);
-}
-
-// *********************************************************************************************
-//											Cfaac
-// *********************************************************************************************
-
-
-
-Cfaac::Cfaac(HANDLE hOut)
-{
-	if(hOut)
-	{
-		hOutput=hOut;
-		return;
-	}
-
-    if(!(hOutput=GlobalAlloc(GMEM_MOVEABLE|GMEM_SHARE|GMEM_ZEROINIT,sizeof(MYOUTPUT))))
-	{
-		MessageBox(0, "Memory allocation error: hOutput", APP_NAME " plugin", MB_OK|MB_ICONSTOP); \
-		return;
-	}
-}
-// -----------------------------------------------------------------------------------------------
-
-Cfaac::~Cfaac()
-{
-	if(!hOutput)
-		return;
-
-MYOUTPUT *mo;
-
-	GLOBALLOCK(mo,hOutput,MYOUTPUT,return);
-	
-	if(mo->WrittenSamples)
-	{
-	int	BytesWritten;
-		if(mo->bytes_into_buffer>0)
-			memset(mo->bufIn+mo->bytes_into_buffer, 0, (mo->samplesInput*(mo->BitsPerSample>>3))-mo->bytes_into_buffer);
-		do
-		{
-			if((BytesWritten=processData(hOutput,mo->bufIn,mo->bytes_into_buffer))<0)
-				MessageBox(0, "~Cfaac: processData", APP_NAME " plugin", MB_OK|MB_ICONSTOP);
-			mo->bytes_into_buffer=0;
-		}while(BytesWritten>0);
-	}
-
-	if(mo->aacFile)
-	{
-		fclose(mo->aacFile);
-		mo->aacFile=0;
-
-	CMyEncCfg cfg(false);
-		if(cfg.TagOn && mo->Filename)
-			cfg.Tag.WriteAacTag(mo->Filename);
-	}
-	else
-	{
-		MP4Close(mo->MP4File);
-		mo->MP4File=0;
-	}
-	
-	if(mo->hEncoder)
-		faacEncClose(mo->hEncoder);
-	
-	FREE_ARRAY(mo->bitbuf)
-	FREE_ARRAY(mo->buf32bit)
-	FREE_ARRAY(mo->bufIn)
-	
-	GlobalUnlock(hOutput);
-	GlobalFree(hOutput);
-}
-
-// *********************************************************************************************
-//									Utilities
-// *********************************************************************************************
-
-#define SWAP32(x) (((x & 0xff) << 24) | ((x & 0xff00) << 8) \
-	| ((x & 0xff0000) >> 8) | ((x & 0xff000000) >> 24))
-#define SWAP16(x) (((x & 0xff) << 8) | ((x & 0xff00) >> 8))
-
-void Cfaac::To32bit(int32_t *buf, BYTE *bufi, int size, BYTE samplebytes, BYTE bigendian)
-{
-int i;
-
-	switch(samplebytes)
-	{
-	case 1:
-		// this is endian clean
-		for (i = 0; i < size; i++)
-			buf[i] = (bufi[i] - 128) * 65536;
-		break;
-		
-	case 2:
-#ifdef WORDS_BIGENDIAN
-		if (!bigendian)
-#else
-			if (bigendian)
-#endif
-			{
-				// swap bytes
-				for (i = 0; i < size; i++)
-				{
-					int16_t s = ((int16_t *)bufi)[i];
-					
-					s = SWAP16(s);
-					
-					buf[i] = ((u_int32_t)s) << 8;
-				}
-			}
-			else
-			{
-				// no swap
-				for (i = 0; i < size; i++)
-				{
-					int s = ((int16_t *)bufi)[i];
-					
-					buf[i] = s << 8;
-				}
-			}
-			break;
-			
-	case 3:
-		if (!bigendian)
-		{
-			for (i = 0; i < size; i++)
-			{
-				int s = bufi[3 * i] | (bufi[3 * i + 1] << 8) | (bufi[3 * i + 2] << 16);
-				
-				// fix sign
-				if (s & 0x800000)
-					s |= 0xff000000;
-				
-				buf[i] = s;
-			}
-		}
-		else // big endian input
-		{
-			for (i = 0; i < size; i++)
-			{
-				int s = (bufi[3 * i] << 16) | (bufi[3 * i + 1] << 8) | bufi[3 * i + 2];
-				
-				// fix sign
-				if (s & 0x800000)
-					s |= 0xff000000;
-				
-				buf[i] = s;
-			}
-		}
-		break;
-		
-	case 4:		
-#ifdef WORDS_BIGENDIAN
-		if (!bigendian)
-#else
-			if (bigendian)
-#endif
-			{
-				// swap bytes
-				for (i = 0; i < size; i++)
-				{
-					int s = bufi[i];
-					
-					buf[i] = SWAP32(s);
-				}
-			}
-			else
-				memcpy(buf,bufi,size*sizeof(u_int32_t));
-		/*
-		int exponent, mantissa;
-		float *bufo=(float *)buf;
-			
-			for (i = 0; i < size; i++)
-			{
-				exponent=bufi[(i<<2)+3]<<1;
-				if(bufi[i*4+2] & 0x80)
-					exponent|=0x01;
-				exponent-=126;
-				mantissa=(DWORD)bufi[(i<<2)+2]<<16;
-				mantissa|=(DWORD)bufi[(i<<2)+1]<<8;
-				mantissa|=bufi[(i<<2)];
-				bufo[i]=(float)ldexp(mantissa,exponent);
-			}*/
-			break;
-	}
-}
-
-// *********************************************************************************************
-//									Main functions
-// *********************************************************************************************
-
-void Cfaac::DisplayError(char *ProcName, char *str)
-{
-char buf[100]="";
-
-	if(str && *str)
-	{
-		if(ProcName && *ProcName)
-			sprintf(buf,"%s: ", ProcName);
-		strcat(buf,str);
-		MessageBox(0, buf, APP_NAME " plugin", MB_OK|MB_ICONSTOP);
-	}
-
-MYOUTPUT *mo;
-	GLOBALLOCK(mo,hOutput,MYOUTPUT,return);
-	mo->bytes_into_buffer=-1;
-	GlobalUnlock(hOutput);
-	GlobalUnlock(hOutput);
-}
-// *********************************************************************************************
-
-HANDLE Cfaac::Init(LPSTR lpstrFilename,long lSamprate,WORD wBitsPerSample,WORD wChannels,long FileSize)
-{
-MYOUTPUT	*mo;
-CMyEncCfg	cfg(false);
-DWORD		samplesInput,
-			maxBytesOutput;
-
-//	if(wBitsPerSample!=8 && wBitsPerSample!=16) // 32 bit audio from cooledit is in unsupported format
-//		return 0;
-	if(wChannels>48)	// FAAC supports max 48 tracks!
-		return NULL;
-
-	GLOBALLOCK(mo,hOutput,MYOUTPUT,return NULL);
-
-	// open the encoder library
-	if(!(mo->hEncoder=faacEncOpen(lSamprate, wChannels, &samplesInput, &maxBytesOutput)))
-		return ERROR_Init("Can't open library");
-
-	if(!(mo->bitbuf=(unsigned char *)malloc(maxBytesOutput*sizeof(unsigned char))))
-		return ERROR_Init("Memory allocation error: output buffer");
-
-	if(!(mo->bufIn=(BYTE *)malloc(samplesInput*sizeof(int32_t))))
-		return ERROR_Init("Memory allocation error: input buffer");
-
-	if(!(mo->buf32bit=(int32_t *)malloc(samplesInput*sizeof(int32_t))))
-		return ERROR_Init("Memory allocation error: 32 bit buffer");
-
-	if(cfg.SaveMP4)// || cfg.Tag.On)
-		if(!strcmpi(lpstrFilename+lstrlen(lpstrFilename)-4,".aac"))
-		{
-			strcpy(lpstrFilename+lstrlen(lpstrFilename)-4,".mp4");
-		FILE *f=fopen(lpstrFilename,"rb");
-			if(f)
-			{
-			char buf[MAX_PATH+20];
-				sprintf(buf,"Overwrite \"%s\" ?",lpstrFilename);
-				fclose(f);
-				if(MessageBox(NULL,buf,"File already exists!",MB_YESNO|MB_ICONQUESTION)==IDNO)
-					return ERROR_Init(0);//"User abort");
-			}
-		}
-		else
-			if(strcmpi(lpstrFilename+lstrlen(lpstrFilename)-4,".mp4"))
-				strcat(lpstrFilename,".mp4");
-	mo->WriteMP4=	!strcmpi(lpstrFilename+lstrlen(lpstrFilename)-4,".mp4") ||
-					!strcmpi(lpstrFilename+lstrlen(lpstrFilename)-4,".m4a");
-
-faacEncConfigurationPtr CurFormat=faacEncGetCurrentConfiguration(mo->hEncoder);
-	CurFormat->inputFormat=FAAC_INPUT_32BIT;
-/*	switch(wBitsPerSample)
-	{
-	case 16:
-		CurFormat->inputFormat=FAAC_INPUT_16BIT;
-		break;
-	case 24:
-		CurFormat->inputFormat=FAAC_INPUT_24BIT;
-		break;
-	case 32:
-		CurFormat->inputFormat=FAAC_INPUT_32BIT;
-		break;
-	default:
-		CurFormat->inputFormat=FAAC_INPUT_NULL;
-		break;
-	}*/
-	if(!cfg.AutoCfg)
-	{
-	faacEncConfigurationPtr myFormat=&cfg.EncCfg;
-
-		if(cfg.UseQuality)
-		{
-			CurFormat->quantqual=myFormat->quantqual;
-			CurFormat->bitRate=0;//myFormat->bitRate;
-		}
-		else
-		{
-			CurFormat->bitRate=myFormat->bitRate*1000;
-			CurFormat->quantqual=100;
-		}
-
-		switch(CurFormat->bandWidth)
-		{
-		case 0: // Auto
-			break;
-		case 0xffffffff: // Full
-			CurFormat->bandWidth=lSamprate/2;
-			break;
-		default:
-			CurFormat->bandWidth=myFormat->bandWidth;
-			break;
-		}
-		CurFormat->mpegVersion=myFormat->mpegVersion;
-		CurFormat->outputFormat=myFormat->outputFormat;
-		CurFormat->mpegVersion=myFormat->mpegVersion;
-		CurFormat->aacObjectType=myFormat->aacObjectType;
-		CurFormat->allowMidside=myFormat->allowMidside;
-		CurFormat->useTns=myFormat->useTns;
-	}
-	else
-	{
-		CurFormat->mpegVersion=DEF_MPEGVER;
-		CurFormat->aacObjectType=DEF_PROFILE;
-		CurFormat->allowMidside=DEF_MIDSIDE;
-		CurFormat->useTns=DEF_TNS;
-		CurFormat->useLfe=DEF_LFE;
-		CurFormat->quantqual=DEF_QUALITY;
-		CurFormat->bitRate=DEF_BITRATE;
-		CurFormat->bandWidth=DEF_BANDWIDTH;
-		CurFormat->outputFormat=DEF_HEADER;
-	}
-	if(mo->WriteMP4)
-		CurFormat->outputFormat=RAW;
-	CurFormat->useLfe=wChannels>=6 ? 1 : 0;
-	if(!faacEncSetConfiguration(mo->hEncoder, CurFormat))
-		return ERROR_Init("Unsupported parameters!");
-
-//	mo->src_size=lSize;
-//	mi->dst_name=strdup(lpstrFilename);
-	mo->Samprate=lSamprate;
-	mo->BitsPerSample=wBitsPerSample;
-	mo->Channels=wChannels;
-	mo->samplesInput=samplesInput;
-	mo->samplesInputSize=samplesInput*(mo->BitsPerSample>>3);
-
-	mo->maxBytesOutput=maxBytesOutput;
-
-    if(mo->WriteMP4) // Create MP4 file --------------------------------------------------------------------------
-	{
-    BYTE *ASC=0;
-    DWORD ASCLength=0;
-
-        if((mo->MP4File=MP4Create(lpstrFilename, 0, 0, 0))==MP4_INVALID_FILE_HANDLE)
-			return ERROR_Init("Can't create file");
-        MP4SetTimeScale(mo->MP4File, 90000);
-        mo->MP4track=MP4AddAudioTrack(mo->MP4File, lSamprate, MP4_INVALID_DURATION, MP4_MPEG4_AUDIO_TYPE);
-        MP4SetAudioProfileLevel(mo->MP4File, 0x0F);
-        faacEncGetDecoderSpecificInfo(mo->hEncoder, &ASC, &ASCLength);
-        MP4SetTrackESConfiguration(mo->MP4File, mo->MP4track, (unsigned __int8 *)ASC, ASCLength);
-		mo->frameSize=samplesInput/wChannels;
-		mo->ofs=mo->frameSize;
-
-		if(cfg.TagOn)
-			cfg.Tag.WriteMP4Tag(mo->MP4File);
-	}
-	else // Create AAC file -----------------------------------------------------------------------------
-	{
-		// open the aac output file 
-		if(!(mo->aacFile=fopen(lpstrFilename, "wb")))
-			return ERROR_Init("Can't create file");
-
-		// use bufferized stream
-		setvbuf(mo->aacFile,NULL,_IOFBF,32767);
-
-		mo->Filename=strdup(lpstrFilename);
-	}
-
-	showInfo(mo);
-
-	GlobalUnlock(hOutput);
-    return hOutput;
-}
-// *********************************************************************************************
-
-int Cfaac::processData(HANDLE hOutput, BYTE *bufIn, DWORD len)
-{
-	if(!hOutput)
-		return -1;
-
-int bytesWritten=0;
-int bytesEncoded;
-MYOUTPUT far *mo;
-
-	GLOBALLOCK(mo,hOutput,MYOUTPUT,return 0);
-
-int32_t *buf=mo->buf32bit;
-
-	if((int)len<mo->samplesInputSize)
-	{
-		mo->samplesInput=(len<<3)/mo->BitsPerSample;
-		mo->samplesInputSize=mo->samplesInput*(mo->BitsPerSample>>3);
-	}
-//	if(mo->BitsPerSample==8 || mo->BitsPerSample==32)
-		To32bit(buf,bufIn,mo->samplesInput,mo->BitsPerSample>>3,false);
-
-	// call the actual encoding routine
-	if((bytesEncoded=faacEncEncode(mo->hEncoder, (int32_t *)buf, mo->samplesInput, mo->bitbuf, mo->maxBytesOutput))<0)
-		return ERROR_processData("faacEncEncode()");
-
-	// write bitstream to aac file 
-	if(mo->aacFile)
-	{
-		if(bytesEncoded>0)
-		{
-			if((bytesWritten=fwrite(mo->bitbuf, 1, bytesEncoded, mo->aacFile))!=bytesEncoded)
-				return ERROR_processData("Write failed!");
-			mo->WrittenSamples=1; // needed into destructor
-		}
-	}
-	else
-	// write bitstream to mp4 file
-	{
-	MP4Duration dur,
-				SamplesLeft;
-		if(len>0)
-		{
-			mo->srcSize+=len;
-			dur=mo->frameSize;
-		}
-		else
-		{
-			mo->TotalSamples=(mo->srcSize<<3)/(mo->BitsPerSample*mo->Channels);
-			SamplesLeft=(mo->TotalSamples-mo->WrittenSamples)+mo->frameSize;
-			dur=SamplesLeft>mo->frameSize ? mo->frameSize : SamplesLeft;
-		}
-		if(bytesEncoded>0)
-		{
-			if(!(bytesWritten=MP4WriteSample(mo->MP4File, mo->MP4track, (unsigned __int8 *)mo->bitbuf, (DWORD)bytesEncoded, dur, mo->ofs, true) ? bytesEncoded : -1))
-				return ERROR_processData("MP4WriteSample()");
-			mo->ofs=0;
-			mo->WrittenSamples+=dur;
-		}
-	}
-
-	showProgress(mo);
-
-	GlobalUnlock(hOutput);
-	return bytesWritten;
-}
-// -----------------------------------------------------------------------------------------------
-
-int Cfaac::processDataBufferized(HANDLE hOutput, BYTE *bufIn, long lBytes)
-{
-	if(!hOutput)
-		return -1;
-
-int	bytesWritten=0, tot=0;
-MYOUTPUT far *mo;
-
-	GLOBALLOCK(mo,hOutput,MYOUTPUT,return 0);
-
-	if(mo->bytes_into_buffer>=0)
-		do
-		{
-			if(mo->bytes_into_buffer+lBytes<mo->samplesInputSize)
-			{
-				memmove(mo->bufIn+mo->bytes_into_buffer, bufIn, lBytes);
-				mo->bytes_into_buffer+=lBytes;
-				lBytes=0;
-			}
-			else
-			{
-			int	shift=mo->samplesInputSize-mo->bytes_into_buffer;
-				memmove(mo->bufIn+mo->bytes_into_buffer, bufIn, shift);
-				mo->bytes_into_buffer+=shift;
-				bufIn+=shift;
-				lBytes-=shift;
-
-				tot+=bytesWritten=processData(hOutput,mo->bufIn,mo->bytes_into_buffer);
-				if(bytesWritten<0)
-					return ERROR_processData(0);
-				mo->bytes_into_buffer=0;
-			}
-		}while(lBytes);
-
-	GlobalUnlock(hOutput);
-	return tot;
-}
--- a/plugins/winamp/Cfaac.h
+++ /dev/null
@@ -1,175 +1,0 @@
-/*
-FAAC - codec plugin for Cooledit
-Copyright (C) 2004 Antonio Foranna
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation.
-	
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-		
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-			
-The author can be contacted at:
-ntnfrn_email-temp@yahoo.it
-*/
-
-#ifndef _Cfaac_H
-#define _Cfaac_H
-
-// *********************************************************************************************
-
-#include <mp4.h>		// int32_t, ...
-#include <faad.h>		// FAAD2 version
-#ifdef MAIN
-	#undef MAIN
-#endif
-#ifdef SSR
-	#undef SSR
-#endif
-#ifdef LTP
-	#undef LTP
-#endif
-#include <faac.h>
-//#include <win32_ver.h>	// mpeg4ip version
-#include "CRegistry.h"
-#include "CTag.h"
-#include "Defines.h"	// my defines
-
-// *********************************************************************************************
-
-#ifdef	ADTS
-#undef	ADTS
-#define ADTS 1
-#endif
-
-// *********************************************************************************************
-
-#define REG_AUTO "Auto"
-#define DEF_AUTO true
-#define REG_WRITEMP4 "Write MP4"
-#define DEF_WRITEMP4 false
-#define REG_MPEGVER "MPEG version"
-#define DEF_MPEGVER MPEG4
-#define REG_PROFILE "Profile"
-#define DEF_PROFILE LOW
-#define REG_MIDSIDE "MidSide"
-#define DEF_MIDSIDE true
-#define REG_TNS "TNS"
-#define DEF_TNS true
-#define REG_LFE "LFE"
-#define DEF_LFE false
-#define REG_USEQUALTY "Use quality"
-#define DEF_USEQUALTY false
-#define REG_QUALITY "Quality"
-#define DEF_QUALITY 100
-#define REG_BITRATE "BitRate"
-#define DEF_BITRATE 0 /* quality on */
-#define REG_BANDWIDTH "BandWidth"
-#define DEF_BANDWIDTH 0
-#define REG_HEADER "Header"
-#define DEF_HEADER ADTS
-
-#define REG_OutFolder "Output folder"
-
-// *********************************************************************************************
-
-class CMyEncCfg
-{
-private:
-
-	bool SaveCfgOnDestroy;
-
-public:
-
-	CMyEncCfg(bool SaveOnDestroy=true) { getCfg(this); SaveCfgOnDestroy=SaveOnDestroy; }
-	virtual ~CMyEncCfg() { if(SaveCfgOnDestroy) setCfg(this); FreeCfg(this); }
-
-	void FreeCfg(CMyEncCfg *cfg) { Tag.FreeTag(); FREE_ARRAY(OutDir); }
-	void getCfg(CMyEncCfg *cfg);
-	void setCfg(CMyEncCfg *cfg);
-
-	bool					AutoCfg,
-							UseQuality,
-							SaveMP4;
-	char					*OutDir;
-	faacEncConfiguration	EncCfg;
-	CMP4Tag					Tag;
-	BYTE					TagOn;
-};
-// -----------------------------------------------------------------------------------------------
-
-typedef struct output_tag  // any special vars associated with output file
-{
-// MP4
-MP4FileHandle 	MP4File;
-MP4TrackId		MP4track;
-MP4Duration		TotalSamples,
-				WrittenSamples,
-				encoded_samples;
-DWORD			frameSize,
-				ofs;
-
-// AAC
-FILE			*aacFile;
-char			*Filename;
-
-// GLOBAL
-long			Samprate;
-WORD			BitsPerSample;
-WORD			Channels;
-DWORD			srcSize;
-//char			*dst_name;		// name of compressed file
-
-faacEncHandle	hEncoder;
-int32_t			*buf32bit;
-BYTE			*bufIn;
-unsigned char	*bitbuf;
-long			bytes_into_buffer;
-DWORD			maxBytesOutput;
-long			samplesInput,
-				samplesInputSize;
-bool			WriteMP4;
-} MYOUTPUT;
-
-
-
-// *********************************************************************************************
-
-
-
-class Cfaac
-{
-private:
-	virtual void DisplayError(char *ProcName, char *str);
-	virtual HANDLE ERROR_Init(char *str) { DisplayError("Init", str); return NULL; }
-	virtual int ERROR_processData(char *str) { DisplayError("processData", str); return -1; }
-	virtual void showInfo(MYOUTPUT *mi) {}
-	virtual void showProgress(MYOUTPUT *mi) {}
-	void To32bit(int32_t *buf, BYTE *bufi, int size, BYTE samplebytes, BYTE bigendian);
-
-public:
-    Cfaac(HANDLE hOutput=NULL);
-    virtual ~Cfaac();
-
-    virtual HANDLE Init(LPSTR lpstrFilename,long lSamprate,WORD wBitsPerSample,WORD wChannels,long FileSize);
-    virtual int processData(HANDLE hOutput, BYTE *bufIn, DWORD len);
-	virtual int processDataBufferized(HANDLE hOutput, BYTE *bufIn, long lBytes);
-/*
-// AAC
-	bool            BlockSeeking;
-
-// GLOBAL
-	long            newpos_ms;
-	BOOL            IsSeekable;
-	MYINPUT			*mi;
-*/
-	HANDLE			hOutput;
-};
-
-#endif
binary files a/plugins/winamp/Email.bmp /dev/null differ
--- a/plugins/winamp/EncDialog.cpp
+++ /dev/null
@@ -1,748 +1,0 @@
-#include <windows.h>
-#include <shlobj.h>		// Browse
-#include <shellapi.h>	// ShellExecute
-#include <Commdlg.h>
-#include "resource.h"
-#include "Defines.h"	// my defines
-#include "CTag.h"
-#include "Cfaac.h"
-#include "EncDialog.h"
-
-#include <commctrl.h>
-#include <id3v2tag.h>
-//#include <id3\globals.h> // ID3LIB_RELEASE
-
-// *********************************************************************************************
-
-#ifdef IDC_BTN_BROWSE			
-extern char	config_AACoutdir[MAX_PATH];
-#endif
-
-extern HINSTANCE hInstance;
-extern HBITMAP hBmBrowse;
-
-// *********************************************************************************************
-
-/*
-DWORD PackCfg(MY_ENC_CFG *cfg)
-{
-DWORD dwOptions=0;
-
-	if(cfg->AutoCfg)
-		dwOptions=1<<31;
-	dwOptions|=(DWORD)cfg->EncCfg.mpegVersion<<30;
-	dwOptions|=(DWORD)cfg->EncCfg.aacObjectType<<28;
-	dwOptions|=(DWORD)cfg->EncCfg.allowMidside<<27;
-	dwOptions|=(DWORD)cfg->EncCfg.useTns<<26;
-	dwOptions|=(DWORD)cfg->EncCfg.useLfe<<25;
-	dwOptions|=(DWORD)cfg->EncCfg.outputFormat<<24;
-	if(cfg->UseQuality)
-		dwOptions|=(((DWORD)cfg->EncCfg.quantqual>>1)&0xff)<<16; // [2,512]
-	else
-		dwOptions|=(((DWORD)cfg->EncCfg.bitRate>>1)&0xff)<<16; // [2,512]
-	if(cfg->UseQuality)
-		dwOptions|=1<<15;
-	dwOptions|=((DWORD)cfg->EncCfg.bandWidth>>1)&&0x7fff; // [0,65536]
-
-	return dwOptions;
-}
-// -----------------------------------------------------------------------------------------------
-
-void UnpackCfg(MY_ENC_CFG *cfg, DWORD dwOptions)
-{
-	cfg->AutoCfg=dwOptions>>31;
-	cfg->EncCfg.mpegVersion=(dwOptions>>30)&1;
-	cfg->EncCfg.aacObjectType=(dwOptions>>28)&3;
-	cfg->EncCfg.allowMidside=(dwOptions>>27)&1;
-	cfg->EncCfg.useTns=(dwOptions>>26)&1;
-	cfg->EncCfg.useLfe=(dwOptions>>25)&1;
-	cfg->EncCfg.outputFormat=(dwOptions>>24)&1;
-	cfg->EncCfg.bitRate=((dwOptions>>16)&0xff)<<1;
-	cfg->UseQuality=(dwOptions>>15)&1;
-	cfg->EncCfg.bandWidth=(dwOptions&0x7fff)<<1;
-}*/
-// -----------------------------------------------------------------------------------------------
-
-#define INIT_CB(hWnd,nID,list,IdSelected) \
-{ \
-	for(int i=0; list[i]; i++) \
-		SendMessage(GetDlgItem(hWnd, nID), CB_ADDSTRING, 0, (LPARAM)list[i]); \
-	SendMessage(GetDlgItem(hWnd, nID), CB_SETCURSEL, IdSelected, 0); \
-}
-// -----------------------------------------------------------------------------------------------
-
-#define INIT_CB_GENRES(hWnd,nID,ID3Genres,IdSelected) \
-{ \
-	for(int i=0; i<(sizeof(ID3Genres)/sizeof(ID3Genres[0])); i++) \
-		SendMessage(GetDlgItem(hWnd, nID), CB_ADDSTRING, 0, (LPARAM)ID3Genres[i].name); \
-	SendMessage(GetDlgItem(hWnd, nID), CB_SETCURSEL, IdSelected, 0); \
-}
-// -----------------------------------------------------------------------------------------------
-
-#define DISABLE_LTP \
-{ \
-	if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_MPEG2) && \
-	   IsDlgButtonChecked(hWndDlg,IDC_RADIO_LTP)) \
-	{ \
-		CheckDlgButton(hWndDlg,IDC_RADIO_LTP,FALSE); \
-		CheckDlgButton(hWndDlg,IDC_RADIO_MAIN,TRUE); \
-	} \
-    EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LTP), FALSE); \
-}
-// -----------------------------------------------------------------------------------------------
-
-//        EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_SSR), Enabled);
-//        EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_USELFE), Enabled);
-#define DISABLE_CTRLS_ENC(Enabled) \
-{ \
-	CheckDlgButton(hWndDlg,IDC_CHK_AUTOCFG, !Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_MPEG4), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_MPEG2), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_RAW), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_ADTS), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_ALLOWMIDSIDE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_USETNS), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_USELFE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CB_QUALITY), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CB_BITRATE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CB_BANDWIDTH), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_QUALITY), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_BITRATE), Enabled); \
-    EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_MAIN), Enabled); \
-    EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LOW), Enabled); \
-    EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LTP), Enabled); \
-	if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_MPEG4)) \
-		EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LTP), Enabled); \
-	else \
-		DISABLE_LTP \
-}
-// -----------------------------------------------------------------------------------------------
-
-#define ENABLE_TAG(Enabled) \
-{ \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_ARTIST), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_TITLE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_ALBUM), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_YEAR), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CB_GENRE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_WRITER), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_COMMENT), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_COMPILATION), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_COMPILATION), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_TRACK), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_NTRACKS), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_DISK), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_NDISKS), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_ARTFILE), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_BTN_ARTFILE), Enabled); \
-}
-// -----------------------------------------------------------------------------------------------
-
-#define ENABLE_AACTAGS(Enabled) \
-{ \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_COMPILATION), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_CHK_COMPILATION), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_NTRACKS), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_DISK), Enabled); \
-	EnableWindow(GetDlgItem(hWndDlg, IDC_E_NDISKS), Enabled); \
-}
-// -----------------------------------------------------------------------------------------------
-
-#ifdef IDC_BTN_BROWSE			
-static int CALLBACK BrowseCallbackProc( HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
-{
-	if (uMsg == BFFM_INITIALIZED)
-	{
-		SetWindowText(hwnd,"Select Directory");
-		SendMessage(hwnd,BFFM_SETSELECTION,(WPARAM)1,(LPARAM)config_AACoutdir);
-	}
-	return 0;
-}
-#endif
-// -----------------------------------------------------------------------------------------------
-
-BOOL DialogMsgProcAbout(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	switch(Message)
-	{
-	case WM_INITDIALOG:
-		{
-		char buf[512];
-		char *faac_id_string, *faac_copyright_string;
-
-		sprintf(buf,
-					APP_NAME " plugin " APP_VER " by Antonio Foranna\n\n"
-					"Libraries used:\n"
-					"\tlibfaac v%s\n"
-					"\tFAAD2 v" FAAD2_VERSION "\n"
-					"\t" PACKAGE " v" VERSION "\n"
-					"\tid3v2 \n\n" //"\t %s v %s \n\n"
-					"This code is given with FAAC package and does not contain executables.\n"
-					"This program is free software and can be distributed/modifyed under the terms of the GNU General Public License.\n"
-					"This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.\n\n"
-					"Compiled on %s\n",
-				(faacEncGetVersion(&faac_id_string, &faac_copyright_string)==FAAC_CFG_VERSION) ? faac_id_string : " wrong libfaac version",
-//					ID3LIB_FULL_NAME, ID3LIB_RELEASE,
-					__DATE__
-					);
-			SetDlgItemText(hWndDlg, IDC_L_ABOUT, buf);
-		}
-		break;
-	case WM_COMMAND:
-		switch(LOWORD(wParam))
-		{
-		case IDOK:
-			EndDialog(hWndDlg, TRUE);
-			break;
-        case IDCANCEL:
-			// Ignore data values entered into the controls and dismiss the dialog window returning FALSE
-			EndDialog(hWndDlg, FALSE);
-			break;
-		case IDC_AUDIOCODING:
-			ShellExecute(hWndDlg, NULL, "http://www.audiocoding.com", NULL, NULL, SW_SHOW);
-			break;
-		case IDC_MPEG4IP:
-			ShellExecute(hWndDlg, NULL, "http://www.mpeg4ip.net", NULL, NULL, SW_SHOW);
-			break;
-		case IDC_ID3:
-			ShellExecute(hWndDlg, NULL, "http://id3lib.sourceforge.net", NULL, NULL, SW_SHOW);
-			break;
-		case IDC_EMAIL:
-			ShellExecute(hWndDlg, NULL, "mailto:ntnfrn_email-temp@yahoo.it", NULL, NULL, SW_SHOW);
-			break;
-		}
-		break;
-	default: 
-		return FALSE;
-	}
-
-	return TRUE;
-}
-// -----------------------------------------------------------------------------------------------
-
-// ripped from id3v2tag.c
-ID3GENRES ID3Genres[]=
-{
-    123,    "Acapella",
-    34,     "Acid",
-    74,     "Acid Jazz",
-    73,     "Acid Punk",
-    99,     "Acoustic",
-    20,     "Alternative",
-    40,     "AlternRock",
-    26,     "Ambient",
-    90,     "Avantgarde",
-    116,    "Ballad",
-    41,     "Bass",
-    85,     "Bebob",
-    96,     "Big Band",
-    89,     "Bluegrass",
-    0,      "Blues",
-    107,    "Booty Bass",
-    65,     "Cabaret",
-    88,     "Celtic",
-    104,    "Chamber Music",
-    102,    "Chanson",
-    97,     "Chorus",
-    61,     "Christian Rap",
-    1,      "Classic Rock",
-    32,     "Classical",
-    112,    "Club",
-    57,     "Comedy",
-    2,      "Country",
-    58,     "Cult",
-    3,      "Dance",
-    125,    "Dance Hall",
-    50,     "Darkwave",
-    254,    "Data",
-    22,     "Death Metal",
-    4,      "Disco",
-    55,     "Dream",
-    122,    "Drum Solo",
-    120,    "Duet",
-    98,     "Easy Listening",
-    52,     "Electronic",
-    48,     "Ethnic",
-    124,    "Euro-House",
-    25,     "Euro-Techno",
-    54,     "Eurodance",
-    84,     "Fast Fusion",
-    80,     "Folk",
-    81,     "Folk-Rock",
-    115,    "Folklore",
-    119,    "Freestyle",
-    5,      "Funk",
-    30,     "Fusion",
-    36,     "Game",
-    59,     "Gangsta",
-    38,     "Gospel",
-    49,     "Gothic",
-    91,     "Gothic Rock",
-    6,      "Grunge",
-    79,     "Hard Rock",
-    7,      "Hip-Hop",
-    35,     "House",
-    100,    "Humour",
-    19,     "Industrial",
-    33,     "Instrumental",
-    46,     "Instrumental Pop",
-    47,     "Instrumental Rock",
-    8,      "Jazz",
-    29,     "Jazz+Funk",
-    63,     "Jungle",
-    86,     "Latin",
-    71,     "Lo-Fi",
-    45,     "Meditative",
-    9,      "Metal",
-    77,     "Musical",
-    82,     "National Folk",
-    64,     "Native American",
-    10,     "New Age",
-    66,     "New Wave",
-    39,     "Noise",
-    255,    "Not Set",
-    11,     "Oldies",
-    103,    "Opera",
-    12,     "Other",
-    75,     "Polka",
-    13,     "Pop",
-    62,     "Pop/Funk",
-    53,     "Pop-Folk",
-    109,    "Porn Groove",
-    117,    "Power Ballad",
-    23,     "Pranks",
-    108,    "Primus",
-    92,     "Progressive Rock",
-    67,     "Psychadelic",
-    93,     "Psychedelic Rock",
-    43,     "Punk",
-    121,    "Punk Rock",
-    14,     "R&B",
-    15,     "Rap",
-    68,     "Rave",
-    16,     "Reggae",
-    76,     "Retro",
-    87,     "Revival",
-    118,    "Rhythmic Soul",
-    17,     "Rock",
-    78,     "Rock & Roll",
-    114,    "Samba",
-    110,    "Satire",
-    69,     "Showtunes",
-    21,     "Ska",
-    111,    "Slow Jam",
-    95,     "Slow Rock",
-    105,    "Sonata",
-    42,     "Soul",
-    37,     "Sound Clip",
-    24,     "Soundtrack",
-    56,     "Southern Rock",
-    44,     "Space",
-    101,    "Speech",
-    83,     "Swing",
-    94,     "Symphonic Rock",
-    106,    "Symphony",
-    113,    "Tango",
-    18,     "Techno",
-    51,     "Techno-Industrial",
-    60,     "Top 40",
-    70,     "Trailer",
-    31,     "Trance",
-    72,     "Tribal",
-    27,     "Trip-Hop",
-    28,     "Vocal"
-};
-
-BOOL CALLBACK DIALOGMsgProcEnc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam)
-{
-	switch(Message)
-	{
-	case WM_INITDIALOG:
-		{
-		char buf[50];
-		char *Quality[]={"Default","10","20","30","40","50","60","70","80","90","100","110","120","130","140","150","200","300","400","500",0};
-		char *BitRate[]={"Auto","8","18","20","24","32","40","48","56","64","96","112","128","160","192","224","256","320","384",0};
-		char *BandWidth[]={"Auto","Full","4000","8000","11025","16000","22050","24000","32000","44100","48000",0};
-		CMyEncCfg cfg(false);
-			
-			SetWindowPos(GetDlgItem(hWndDlg,IDC_CHK_TAG),GetDlgItem(hWndDlg,IDC_GRP_TAG),0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
-
-			INIT_CB(hWndDlg,IDC_CB_QUALITY,Quality,0);
-			INIT_CB(hWndDlg,IDC_CB_BITRATE,BitRate,0);
-			INIT_CB(hWndDlg,IDC_CB_BANDWIDTH,BandWidth,0);
-
-			INIT_CB_GENRES(hWndDlg,IDC_CB_GENRE,ID3Genres,0);
-
-			SendMessage(GetDlgItem(hWndDlg, IDC_BTN_ARTFILE), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmBrowse);
-#ifdef IDC_BTN_BROWSE			
-			SendMessage(GetDlgItem(hWndDlg, IDC_BTN_BROWSE), BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBmBrowse);
-			if(!cfg.OutDir || !*cfg.OutDir)
-			{
-				GetCurrentDirectory(MAX_PATH,config_AACoutdir);
-				FREE_ARRAY(cfg.OutDir);
-				cfg.OutDir=strdup(config_AACoutdir);
-			}
-			else
-				strcpy(config_AACoutdir,cfg.OutDir);
-			SetDlgItemText(hWndDlg, IDC_E_BROWSE, cfg.OutDir);			
-#endif
-			if(cfg.EncCfg.mpegVersion==MPEG4)
-				CheckDlgButton(hWndDlg,IDC_RADIO_MPEG4,TRUE);
-			else
-				CheckDlgButton(hWndDlg,IDC_RADIO_MPEG2,TRUE);
-			
-			switch(cfg.EncCfg.aacObjectType)
-			{
-			case MAIN:
-				CheckDlgButton(hWndDlg,IDC_RADIO_MAIN,TRUE);
-				break;
-			case LOW:
-				CheckDlgButton(hWndDlg,IDC_RADIO_LOW,TRUE);
-				break;
-			case SSR:
-				CheckDlgButton(hWndDlg,IDC_RADIO_SSR,TRUE);
-				break;
-			case LTP:
-				CheckDlgButton(hWndDlg,IDC_RADIO_LTP,TRUE);
-				DISABLE_LTP
-				break;
-			}
-			
-			switch(cfg.EncCfg.outputFormat)
-			{
-			case RAW:
-				CheckDlgButton(hWndDlg,IDC_RADIO_RAW,TRUE);
-				break;
-			case ADTS:
-				CheckDlgButton(hWndDlg,IDC_RADIO_ADTS,TRUE);
-				break;
-			}
-			
-			CheckDlgButton(hWndDlg, IDC_CHK_ALLOWMIDSIDE, cfg.EncCfg.allowMidside);
-			CheckDlgButton(hWndDlg, IDC_CHK_USETNS, cfg.EncCfg.useTns);
-			CheckDlgButton(hWndDlg, IDC_CHK_USELFE, cfg.EncCfg.useLfe);
-
-			if(cfg.UseQuality)
-				CheckDlgButton(hWndDlg,IDC_RADIO_QUALITY,TRUE);
-			else
-				CheckDlgButton(hWndDlg,IDC_RADIO_BITRATE,TRUE);
-
-			switch(cfg.EncCfg.quantqual)
-			{
-			case 100:
-				SendMessage(GetDlgItem(hWndDlg, IDC_CB_QUALITY), CB_SETCURSEL, 0, 0);
-				break;
-			default:
-				if(cfg.EncCfg.quantqual<10)
-					cfg.EncCfg.quantqual=10;
-				if(cfg.EncCfg.quantqual>500)
-					cfg.EncCfg.quantqual=500;
-				sprintf(buf,"%lu",cfg.EncCfg.quantqual);
-				SetDlgItemText(hWndDlg, IDC_CB_QUALITY, buf);
-				break;
-			}
-			switch(cfg.EncCfg.bitRate)
-			{
-			case 0:
-				SendMessage(GetDlgItem(hWndDlg, IDC_CB_BITRATE), CB_SETCURSEL, 0, 0);
-				break;
-			default:
-				sprintf(buf,"%lu",cfg.EncCfg.bitRate);
-				SetDlgItemText(hWndDlg, IDC_CB_BITRATE, buf);
-				break;
-			}
-			switch(cfg.EncCfg.bandWidth)
-			{
-			case 0:
-				SendMessage(GetDlgItem(hWndDlg, IDC_CB_BANDWIDTH), CB_SETCURSEL, 0, 0);
-				break;
-			case 0xffffffff:
-				SendMessage(GetDlgItem(hWndDlg, IDC_CB_BANDWIDTH), CB_SETCURSEL, 1, 0);
-				break;
-			default:
-				sprintf(buf,"%lu",cfg.EncCfg.bandWidth);
-				SetDlgItemText(hWndDlg, IDC_CB_BANDWIDTH, buf);
-				break;
-			}
-			
-			CheckDlgButton(hWndDlg, IDC_CHK_WRITEMP4, cfg.SaveMP4);
-
-			CheckDlgButton(hWndDlg,IDC_CHK_AUTOCFG, cfg.AutoCfg);
-			DISABLE_CTRLS_ENC(!cfg.AutoCfg);
-
-			CheckDlgButton(hWndDlg,IDC_CHK_TAG, cfg.TagOn);
-			ENABLE_TAG(cfg.TagOn);
-			ENABLE_AACTAGS(cfg.SaveMP4);
-			SetDlgItemText(hWndDlg, IDC_E_ARTIST, cfg.Tag.artist);
-			SetDlgItemText(hWndDlg, IDC_E_TITLE, cfg.Tag.title);
-			SetDlgItemText(hWndDlg, IDC_E_ALBUM, cfg.Tag.album);
-			SetDlgItemText(hWndDlg, IDC_E_YEAR, cfg.Tag.year);
-			SetDlgItemText(hWndDlg, IDC_CB_GENRE, cfg.Tag.genre);
-			SetDlgItemText(hWndDlg, IDC_E_WRITER, cfg.Tag.writer);
-			SetDlgItemText(hWndDlg, IDC_E_COMMENT, cfg.Tag.comment);
-			SetDlgItemText(hWndDlg, IDC_E_ARTFILE, cfg.Tag.artFilename);
-			SetDlgItemInt(hWndDlg, IDC_E_TRACK, cfg.Tag.trackno, FALSE);
-			SetDlgItemInt(hWndDlg, IDC_E_NTRACKS, cfg.Tag.ntracks, FALSE);
-			SetDlgItemInt(hWndDlg, IDC_E_DISK, cfg.Tag.discno, FALSE);
-			SetDlgItemInt(hWndDlg, IDC_E_NDISKS, cfg.Tag.ndiscs, FALSE);
-			SetDlgItemInt(hWndDlg, IDC_E_COMPILATION, cfg.Tag.compilation, FALSE);
-			CheckDlgButton(hWndDlg, IDC_CHK_COMPILATION, cfg.Tag.compilation);
-		}
-		break; // End of WM_INITDIALOG                                 
-		
-	case WM_CLOSE:
-		// Closing the Dialog behaves the same as Cancel               
-		PostMessage(hWndDlg, WM_COMMAND, IDCANCEL, 0L);
-		break; // End of WM_CLOSE                                      
-		
-	case WM_COMMAND:
-		switch(LOWORD(wParam))
-		{
-		case IDOK:
-			{
-//			HANDLE hCfg=(HANDLE)lParam;
-			char buf[50];
-			CMyEncCfg cfg;
-
-				cfg.AutoCfg=IsDlgButtonChecked(hWndDlg,IDC_CHK_AUTOCFG) ? TRUE : FALSE;
-				cfg.EncCfg.mpegVersion=IsDlgButtonChecked(hWndDlg,IDC_RADIO_MPEG4) ? MPEG4 : MPEG2;
-				if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_MAIN))
-					cfg.EncCfg.aacObjectType=MAIN;
-				if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_LOW))
-					cfg.EncCfg.aacObjectType=LOW;
-				if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_SSR))
-					cfg.EncCfg.aacObjectType=SSR;
-				if(IsDlgButtonChecked(hWndDlg,IDC_RADIO_LTP))
-					cfg.EncCfg.aacObjectType=LTP;
-				cfg.EncCfg.allowMidside=IsDlgButtonChecked(hWndDlg, IDC_CHK_ALLOWMIDSIDE);
-				cfg.EncCfg.useTns=IsDlgButtonChecked(hWndDlg, IDC_CHK_USETNS);
-				cfg.EncCfg.useLfe=IsDlgButtonChecked(hWndDlg, IDC_CHK_USELFE);
-				
-				GetDlgItemText(hWndDlg, IDC_CB_BITRATE, buf, 50);
-				switch(*buf)
-				{
-				case 'A': // Auto
-					cfg.EncCfg.bitRate=0;
-					break;
-				default:
-					cfg.EncCfg.bitRate=GetDlgItemInt(hWndDlg, IDC_CB_BITRATE, 0, FALSE);
-				}
-				GetDlgItemText(hWndDlg, IDC_CB_BANDWIDTH, buf, 50);
-				switch(*buf)
-				{
-				case 'A': // Auto
-					cfg.EncCfg.bandWidth=0;
-					break;
-				case 'F': // Full
-					cfg.EncCfg.bandWidth=0xffffffff;
-					break;
-				default:
-					cfg.EncCfg.bandWidth=GetDlgItemInt(hWndDlg, IDC_CB_BANDWIDTH, 0, FALSE);
-				}
-				cfg.UseQuality=IsDlgButtonChecked(hWndDlg,IDC_RADIO_QUALITY) ? TRUE : FALSE;
-				GetDlgItemText(hWndDlg, IDC_CB_QUALITY, buf, 50);
-				switch(*buf)
-				{
-				case 'D': // Default
-					cfg.EncCfg.quantqual=100;
-					break;
-				default:
-					cfg.EncCfg.quantqual=GetDlgItemInt(hWndDlg, IDC_CB_QUALITY, 0, FALSE);
-				}
-				cfg.EncCfg.outputFormat=IsDlgButtonChecked(hWndDlg,IDC_RADIO_RAW) ? RAW : ADTS;
-#ifdef IDC_E_BROWSE
-				GetDlgItemText(hWndDlg, IDC_E_BROWSE, config_AACoutdir, MAX_PATH);
-				FREE_ARRAY(cfg.OutDir);
-				cfg.OutDir=strdup(config_AACoutdir);
-#endif
-				cfg.SaveMP4=IsDlgButtonChecked(hWndDlg, IDC_CHK_WRITEMP4) ? TRUE : FALSE;
-
-				cfg.TagOn=IsDlgButtonChecked(hWndDlg,IDC_CHK_TAG) ? 1 : 0;
-			char buffer[MAX_PATH];
-				GetDlgItemText(hWndDlg, IDC_E_ARTIST, buffer, MAX_PATH);
-				cfg.Tag.artist=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_TITLE, buffer, MAX_PATH);
-				cfg.Tag.title=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_ALBUM, buffer, MAX_PATH);
-				cfg.Tag.album=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_YEAR, buffer, MAX_PATH);
-				cfg.Tag.year=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_CB_GENRE, buffer, MAX_PATH);
-				cfg.Tag.genre=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_WRITER, buffer, MAX_PATH);
-				cfg.Tag.writer=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_COMMENT, buffer, MAX_PATH);
-				cfg.Tag.comment=strdup(buffer);
-				GetDlgItemText(hWndDlg, IDC_E_ARTFILE, buffer, MAX_PATH);
-				cfg.Tag.artFilename=strdup(buffer);
-				cfg.Tag.trackno=GetDlgItemInt(hWndDlg, IDC_E_TRACK, 0, FALSE);
-				cfg.Tag.ntracks=GetDlgItemInt(hWndDlg, IDC_E_NTRACKS, 0, FALSE);
-				cfg.Tag.discno=GetDlgItemInt(hWndDlg, IDC_E_DISK, 0, FALSE);
-				cfg.Tag.ndiscs=GetDlgItemInt(hWndDlg, IDC_E_NDISKS, 0, FALSE);
-				cfg.Tag.compilation=(BYTE)GetDlgItemInt(hWndDlg, IDC_E_COMPILATION, 0, FALSE);
-				cfg.Tag.compilation=IsDlgButtonChecked(hWndDlg, IDC_CHK_COMPILATION) ? 1 : 0;
-
-				EndDialog(hWndDlg, TRUE);//(DWORD)hCfg);
-			}
-			break;
-			
-        case IDCANCEL:
-			// Ignore data values entered into the controls        
-			// and dismiss the dialog window returning FALSE
-			EndDialog(hWndDlg, FALSE);
-			break;
-
-		case IDC_BTN_ABOUT:
-			DialogBox((HINSTANCE)hInstance,(LPCSTR)MAKEINTRESOURCE(IDD_ABOUT), (HWND)hWndDlg, (DLGPROC)DialogMsgProcAbout);
-			break;
-
-		case IDC_BTN_LICENSE:
-			{
-			char *license =
-				"\nPlease note that the use of this software may require the payment of patent royalties.\n"
-				"You need to consider this issue before you start building derivative works.\n"
-				"We are not warranting or indemnifying you in any way for patent royalities!\n"
-				"YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN ACTIONS!\n"
-				"\n"
-				"FAAC is based on the ISO MPEG-4 reference code. For this code base the\n"
-				"following license applies:\n"
-				"\n"
-/*				"This software module was originally developed by\n"
-				"\n"
-				"FirstName LastName (CompanyName)\n"
-				"\n"
-				"and edited by\n"
-				"\n"
-				"FirstName LastName (CompanyName)\n"
-				"FirstName LastName (CompanyName)\n"
-				"\n"
-*/				"in the course of development of the MPEG-2 NBC/MPEG-4 Audio standard\n"
-				"ISO/IEC 13818-7, 14496-1,2 and 3. This software module is an\n"
-				"implementation of a part of one or more MPEG-2 NBC/MPEG-4 Audio tools\n"
-				"as specified by the MPEG-2 NBC/MPEG-4 Audio standard. ISO/IEC gives\n"
-				"users of the MPEG-2 NBC/MPEG-4 Audio standards free license to this\n"
-				"software module or modifications thereof for use in hardware or\n"
-				"software products claiming conformance to the MPEG-2 NBC/ MPEG-4 Audio\n"
-				"standards. Those intending to use this software module in hardware or\n"
-				"software products are advised that this use may infringe existing\n"
-				"patents. The original developer of this software module and his/her\n"
-				"company, the subsequent editors and their companies, and ISO/IEC have\n"
-				"no liability for use of this software module or modifications thereof\n"
-				"in an implementation. Copyright is not released for non MPEG-2\n"
-				"NBC/MPEG-4 Audio conforming products. The original developer retains\n"
-				"full right to use the code for his/her own purpose, assign or donate\n"
-				"the code to a third party and to inhibit third party from using the\n"
-				"code for non MPEG-2 NBC/MPEG-4 Audio conforming products. This\n"
-				"copyright notice must be included in all copies or derivative works.\n"
-				"\n"
-				"Copyright (c) 1997.\n"
-				"\n"
-				"For the changes made for the FAAC project the GNU Lesser General Public\n"
-				"License (LGPL), version 2 1991 applies:\n"
-				"\n"
-				"FAAC - Freeware Advanced Audio Coder\n"
-				"Copyright (C) 2001-2004 The individual contributors\n"
-				"\n"
-				"This library is free software; you can redistribute it and/or modify it under the terms of\n"
-				"the GNU Lesser General Public License as published by the Free Software Foundation;\n"
-				"either version 2.1 of the License, or (at your option) any later version.\n"
-				"\n"
-				"This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n"
-				"without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
-				"See the GNU Lesser General Public License for more details.\n"
-				"\n"
-				"You should have received a copy of the GNU Lesser General Public\n"
-				"License along with this library; if not, write to the Free Software\n"
-				"Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\n";
-
-				MessageBox(hWndDlg,license,"FAAC libray License",MB_OK|MB_ICONINFORMATION);
-			}
-			break;
-
-#ifdef IDC_BTN_BROWSE
-		case IDC_BTN_BROWSE:
-			{
-			char name[MAX_PATH];
-			BROWSEINFO bi;
-			ITEMIDLIST *idlist;
-				bi.hwndOwner = hWndDlg;
-				bi.pidlRoot = 0;
-				bi.pszDisplayName = name;
-				bi.lpszTitle = "Select a directory for AAC-MPEG4 file output:";
-				bi.ulFlags = BIF_RETURNONLYFSDIRS;
-				bi.lpfn = BrowseCallbackProc;
-				bi.lParam = 0;
-				
-				GetDlgItemText(hWndDlg, IDC_E_BROWSE, config_AACoutdir, MAX_PATH);
-				idlist = SHBrowseForFolder( &bi );
-				if(idlist)
-				{
-					SHGetPathFromIDList( idlist, config_AACoutdir);
-					SetDlgItemText(hWndDlg, IDC_E_BROWSE, config_AACoutdir);
-				}
-			}
-			break;
-#endif			
-		case IDC_BTN_ARTFILE:
-			{
-			OPENFILENAME ofn;
-			char ArtFilename[MAX_PATH]="";
-
-//				GetDlgItemText(hWndDlg, IDC_E_ARTFILE, ArtFilename, MAX_PATH);
-
-				ofn.lStructSize			= sizeof(OPENFILENAME);
-				ofn.hwndOwner			= (HWND)hWndDlg;
-				ofn.lpstrFilter			= "Cover art files (*.gif,*jpg,*.png)\0*.gif;*.jpg;*.png\0";
-				ofn.lpstrCustomFilter	= NULL;
-				ofn.nFilterIndex		= 1;
-				ofn.lpstrFile			= ArtFilename;
-				ofn.nMaxFile			= MAX_PATH; //sizeof ArtFilename;
-				ofn.lpstrFileTitle		= NULL;
-				ofn.nMaxFileTitle		= 0;
-				ofn.lpstrInitialDir		= NULL;
-				ofn.lpstrTitle			= "Select cover art file";
-				ofn.Flags				= OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_ENABLESIZING;
-				ofn.lpstrDefExt			= NULL;//"jpg";
-				ofn.hInstance			= hInstance;
-
-				if(GetOpenFileName(&ofn))
-					SetDlgItemText(hWndDlg, IDC_E_ARTFILE, ArtFilename);
-			}
-			break;
-
-		case IDC_RADIO_MPEG4:
-			EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LTP), !IsDlgButtonChecked(hWndDlg,IDC_CHK_AUTOCFG));
-			break;
-			
-		case IDC_RADIO_MPEG2:
-			EnableWindow(GetDlgItem(hWndDlg, IDC_RADIO_LTP), FALSE);
-			DISABLE_LTP
-			break;
-
-		case IDC_CHK_AUTOCFG:
-			{
-			char Enabled=!IsDlgButtonChecked(hWndDlg,IDC_CHK_AUTOCFG);
-				DISABLE_CTRLS_ENC(Enabled);
-			}
-			break;
-
-		case IDC_CHK_TAG:
-			{
-			char Enabled=IsDlgButtonChecked(hWndDlg,IDC_CHK_TAG);
-				ENABLE_TAG(Enabled);
-			}
-//			break;
-		case IDC_CHK_WRITEMP4:
-			{
-			char Enabled=IsDlgButtonChecked(hWndDlg,IDC_CHK_WRITEMP4) && IsDlgButtonChecked(hWndDlg,IDC_CHK_TAG);
-				ENABLE_AACTAGS(Enabled);
-			}
-			break;
-		}
-		break; // End of WM_COMMAND
-	default: 
-		return FALSE;
-	}
-	
-	return TRUE;
-} // End of DIALOGSMsgProc                                      
--- a/plugins/winamp/EncDialog.h
+++ /dev/null
@@ -1,2 +1,0 @@
-extern BOOL DialogMsgProcAbout(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam);
-extern BOOL CALLBACK DIALOGMsgProcEnc(HWND hWndDlg, UINT Message, WPARAM wParam, LPARAM lParam);
--- a/plugins/winamp/FAAC.rc
+++ /dev/null
@@ -1,330 +1,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ENCODER DIALOGEX 0, 0, 338, 209
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
-    WS_SYSMENU
-CAPTION "MPEG4-AAC options"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
-    DEFPUSHBUTTON   "&OK",IDOK,12,190,36,14
-    PUSHBUTTON      "&Cancel",IDCANCEL,48,190,36,14
-    PUSHBUTTON      "&About",IDC_BTN_ABOUT,84,190,36,14
-    PUSHBUTTON      "&License",IDC_BTN_LICENSE,120,190,36,14
-    CONTROL         "Automatic configuration",IDC_CHK_AUTOCFG,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,4,4,90,10
-    CONTROL         "Main",IDC_RADIO_MAIN,"Button",BS_AUTORADIOBUTTON | 
-                    WS_GROUP,9,27,31,10
-    CONTROL         "LC",IDC_RADIO_LOW,"Button",BS_AUTORADIOBUTTON,9,39,25,
-                    10
-    CONTROL         "SSR",IDC_RADIO_SSR,"Button",BS_AUTORADIOBUTTON | 
-                    WS_DISABLED,9,51,31,10
-    CONTROL         "LTP",IDC_RADIO_LTP,"Button",BS_AUTORADIOBUTTON,9,63,29,
-                    10
-    CONTROL         "MPEG4",IDC_RADIO_MPEG4,"Button",BS_AUTORADIOBUTTON | 
-                    WS_GROUP,62,27,40,10
-    CONTROL         "MPEG2",IDC_RADIO_MPEG2,"Button",BS_AUTORADIOBUTTON,62,
-                    40,40,9
-    CONTROL         "Raw",IDC_RADIO_RAW,"Button",BS_AUTORADIOBUTTON | 
-                    WS_GROUP,112,27,42,10
-    CONTROL         "ADTS",IDC_RADIO_ADTS,"Button",BS_AUTORADIOBUTTON,112,40,
-                    41,9
-    CONTROL         "Quality",IDC_RADIO_QUALITY,"Button",BS_AUTORADIOBUTTON | 
-                    WS_GROUP,9,89,37,10
-    CONTROL         "Bitrate per channel",IDC_RADIO_BITRATE,"Button",
-                    BS_AUTORADIOBUTTON,9,105,75,10
-    COMBOBOX        IDC_CB_QUALITY,102,86,48,97,CBS_DROPDOWN | WS_VSCROLL | 
-                    WS_GROUP | WS_TABSTOP
-    COMBOBOX        IDC_CB_BITRATE,102,102,48,86,CBS_DROPDOWN | WS_VSCROLL | 
-                    WS_TABSTOP
-    LTEXT           "Bandwidth",IDC_STATIC,21,126,34,8
-    COMBOBOX        IDC_CB_BANDWIDTH,102,123,48,81,CBS_DROPDOWN | WS_VSCROLL | 
-                    WS_TABSTOP
-    CONTROL         "Allow Mid/Side",IDC_CHK_ALLOWMIDSIDE,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,9,140,63,10
-    CONTROL         "Use TNS",IDC_CHK_USETNS,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,9,153,45,10
-    CONTROL         "Use LFE channel",IDC_CHK_USELFE,"Button",
-                    BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | 
-                    WS_TABSTOP,71,59,67,10
-    CONTROL         "Write .mp4",IDC_CHK_WRITEMP4,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,102,153,50,10
-    EDITTEXT        IDC_E_BROWSE,50,167,83,14,ES_AUTOHSCROLL
-    PUSHBUTTON      "Browse",IDC_BTN_BROWSE,137,167,18,14,BS_BITMAP | 
-                    BS_FLAT
-    GROUPBOX        "",IDC_GRP_TAG,160,4,174,200
-    CONTROL         "Tag",IDC_CHK_TAG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
-                    165,3,29,10
-    EDITTEXT        IDC_E_ARTIST,207,20,121,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_TITLE,207,35,121,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_ALBUM,207,50,121,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_YEAR,207,65,121,14,ES_AUTOHSCROLL
-    COMBOBOX        IDC_CB_GENRE,207,80,121,161,CBS_DROPDOWN | WS_VSCROLL | 
-                    WS_TABSTOP
-    EDITTEXT        IDC_E_WRITER,207,94,121,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_COMMENT,207,109,121,29,ES_MULTILINE | 
-                    ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_COMPILATION,207,139,121,14,ES_AUTOHSCROLL | NOT 
-                    WS_VISIBLE
-    CONTROL         "Part of a compilation",IDC_CHK_COMPILATION,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,165,141,80,10
-    EDITTEXT        IDC_E_TRACK,233,155,40,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_NTRACKS,288,155,40,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_DISK,233,170,40,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_NDISKS,288,170,40,14,ES_AUTOHSCROLL
-    EDITTEXT        IDC_E_ARTFILE,207,185,98,14,ES_AUTOHSCROLL
-    PUSHBUTTON      "&...",IDC_BTN_ARTFILE,311,185,17,14,BS_BITMAP | BS_FLAT
-    GROUPBOX        "AAC type",IDC_STATIC,56,16,48,38
-    GROUPBOX        "Profile",IDC_STATIC,4,16,48,59
-    GROUPBOX        "Header",IDC_STATIC,108,16,48,38
-    GROUPBOX        "Encoding mode",IDC_STATIC,4,78,152,42
-    LTEXT           "Artist",IDC_STATIC,165,22,16,8
-    LTEXT           "Title",IDC_STATIC,165,37,14,8
-    LTEXT           "Album",IDC_STATIC,165,52,20,8
-    LTEXT           "Year",IDC_STATIC,165,67,16,8
-    LTEXT           "Genre",IDC_STATIC,165,82,20,8
-    LTEXT           "Writer",IDC_STATIC,165,96,20,8
-    LTEXT           "Comment\n(ctrl-Enter\nto go down)",IDC_STATIC,165,111,
-                    37,26
-    LTEXT           "Track",IDC_STATIC,165,159,20,8
-    LTEXT           "/",IDC_STATIC,277,159,8,8
-    LTEXT           "Disk",IDC_STATIC,165,173,15,8
-    LTEXT           "/",IDC_STATIC,277,173,8,8
-    LTEXT           "Cover art file",IDC_STATIC,165,188,40,8
-    LTEXT           "Output folder",IDC_STATIC,4,169,42,8
-END
-
-IDD_DECODER DIALOG  0, 0, 141, 105
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
-    WS_SYSMENU
-CAPTION "Raw .AAC options"
-FONT 8, "MS Sans Serif"
-BEGIN
-    DEFPUSHBUTTON   "&OK",IDOK,24,84,36,14
-    PUSHBUTTON      "&Cancel",IDCANCEL,61,84,36,14
-    PUSHBUTTON      "&About",IDC_BTN_ABOUT,97,84,36,14
-    CONTROL         "Main",IDC_RADIO_MAIN,"Button",BS_AUTORADIOBUTTON | 
-                    WS_GROUP,93,17,31,10
-    CONTROL         "Low",IDC_RADIO_LOW,"Button",BS_AUTORADIOBUTTON,93,28,29,
-                    10
-    CONTROL         "SSR",IDC_RADIO_SSR,"Button",BS_AUTORADIOBUTTON | 
-                    WS_DISABLED,93,40,31,10
-    CONTROL         "LTP",IDC_RADIO_LTP,"Button",BS_AUTORADIOBUTTON,93,52,29,
-                    10
-    GROUPBOX        "Profile",IDC_STATIC,85,7,48,70
-    COMBOBOX        IDC_CB_SAMPLERATE,13,57,62,87,CBS_DROPDOWN | WS_VSCROLL | 
-                    WS_TABSTOP
-    CONTROL         "Default settings",IDC_CHK_DEFAULTCFG,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,7,11,64,10
-    GROUPBOX        "Sample rate",IDC_STATIC,7,46,73,31
-    CONTROL         "HE",IDC_RADIO_HE,"Button",BS_AUTORADIOBUTTON,93,64,26,
-                    10
-    CONTROL         "Downmatrix",IDC_CHK_DOWNMATRIX,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,7,24,53,10
-    CONTROL         "Old ADTS",IDC_CHK_OLDADTS,"Button",BS_AUTOCHECKBOX | 
-                    WS_TABSTOP,7,36,48,10
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE 
-BEGIN
-    "resource.h\0"
-END
-
-2 TEXTINCLUDE 
-BEGIN
-    "#include ""afxres.h""\r\n"
-    "\0"
-END
-
-3 TEXTINCLUDE 
-BEGIN
-    "\r\n"
-    "\0"
-END
-
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
-BEGIN
-    IDD_ENCODER, DIALOG
-    BEGIN
-        LEFTMARGIN, 4
-        RIGHTMARGIN, 334
-        TOPMARGIN, 4
-        BOTTOMMARGIN, 204
-    END
-
-    IDD_DECODER, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 133
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 98
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-#endif    // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Italian (Italy) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ITA)
-#ifdef _WIN32
-LANGUAGE LANG_ITALIAN, SUBLANG_ITALIAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUT DIALOGEX 0, 0, 191, 230
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
-CAPTION "About"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
-    DEFPUSHBUTTON   "&OK",IDOK,142,208,42,14
-    CONTROL         104,IDC_AUDIOCODING,"Static",SS_BITMAP | SS_NOTIFY | 
-                    SS_SUNKEN,7,7,178,69
-    CONTROL         107,IDC_MPEG4IP,"Static",SS_BITMAP | SS_NOTIFY | 
-                    SS_SUNKEN,7,202,59,20
-    CONTROL         106,IDC_EMAIL,"Static",SS_BITMAP | SS_NOTIFY,94,204,43,
-                    18
-    LTEXT           "Text",IDC_L_ABOUT,7,55,177,142
-    ICON            IDI_ID3,IDC_ID3,70,202,20,20,SS_NOTIFY | SS_SUNKEN
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO 
-BEGIN
-    IDD_ABOUT, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 184
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 222
-    END
-END
-#endif    // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Bitmap
-//
-
-IDB_AUDIOCODING         BITMAP                  "AudioCoding.bmp"
-IDB_EMAIL               BITMAP                  "Email.bmp"
-IDB_MPEG4IP             BITMAP                  "mpeg4ip-v.bmp"
-IDB_BROWSE              BITMAP                  "Open.bmp"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_ID3                 ICON                    "id3v2.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,5,0,0
- PRODUCTVERSION 1,5,0,0
- FILEFLAGSMASK 0x17L
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x2L
- FILESUBTYPE 0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "041004b0"
-        BEGIN
-            VALUE "FileDescription", "Winamp FAAC"
-            VALUE "FileVersion", "1, 5, 0, 0"
-            VALUE "InternalName", "Out_FAAC"
-            VALUE "LegalCopyright", "Copyright (C) 2004"
-            VALUE "OriginalFilename", "Out_FAAC.dll"
-            VALUE "ProductName", " Out_FAAC Dynamic Link Library"
-            VALUE "ProductVersion", "1, 5, 0, 0"
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x410, 1200
-    END
-END
-
-#endif    // Italian (Italy) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif    // not APSTUDIO_INVOKED
-
binary files a/plugins/winamp/Open.bmp /dev/null differ
--- a/plugins/winamp/RESOURCE.H
+++ /dev/null
@@ -1,76 +1,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by FAAC.rc
-//
-#define IDD_ENCODER                     101
-#define IDD_DECODER                     102
-#define IDD_ABOUT                       103
-#define IDB_AUDIOCODING                 104
-#define IDB_EMAIL                       106
-#define IDB_MPEG4IP                     107
-#define IDB_BROWSE                      108
-#define IDI_ICON1                       109
-#define IDI_ID3                         109
-#define IDC_CHK_DEFAULTCFG              1000
-#define IDC_CHK_DOWNMATRIX              1001
-#define IDC_CHK_OLDADTS                 1002
-#define IDC_CB_SAMPLERATE               1003
-#define IDC_AUDIOCODING                 1004
-#define IDC_EMAIL                       1005
-#define IDC_MPEG4IP                     1006
-#define IDC_E_BROWSE                    1007
-#define IDC_BTN_BROWSE                  1008
-#define IDC_RADIO_MPEG4                 1009
-#define IDC_RADIO_MPEG2                 1010
-#define IDC_RADIO_LOW                   1011
-#define IDC_RADIO_MAIN                  1012
-#define IDC_RADIO_SSR                   1013
-#define IDC_RADIO_LTP                   1014
-#define IDC_RADIO_RAW                   1015
-#define IDC_RADIO_HE                    1016
-#define IDC_RADIO_ADTS                  1017
-#define IDC_CB_BANDWIDTH                1018
-#define IDC_CB_BITRATE                  1019
-#define IDC_CHK_ALLOWMIDSIDE            1020
-#define IDC_CHK_USETNS                  1021
-#define IDC_CHK_USELFE                  1022
-#define IDC_CHK_AUTOCFG                 1023
-#define IDC_BTN_ABOUT                   1024
-#define IDC_L_ABOUT                     1025
-#define IDC_BTN_ARTFILE                 1026
-#define IDC_CHK_USETNS2                 1027
-#define IDC_CHK_MP4                     1028
-#define WRITEMP4                        1029
-#define IDC_RADIO_BITRATE               1030
-#define IDC_RADIO_QUALITY               1031
-#define IDC_CB_QUALITY                  1032
-#define IDC_CHK_WRITEMP4                1033
-#define IDC_E_ARTIST                    1034
-#define IDC_CHK_TAG                     1035
-#define IDC_E_TITLE                     1036
-#define IDC_E_ALBUM                     1037
-#define IDC_E_YEAR                      1038
-#define IDC_CB_GENRE                    1039
-#define IDC_E_WRITER                    1040
-#define IDC_E_COMMENT                   1041
-#define IDC_E_TRACK                     1042
-#define IDC_E_NTRACKS                   1043
-#define IDC_E_DISK                      1044
-#define IDC_E_NDISKS                    1045
-#define IDC_GRP_TAG                     1046
-#define IDC_E_COMPILATION               1047
-#define IDC_E_ARTFILE                   1048
-#define IDC_BTN_LICENSE                 1049
-#define IDC_CHK_COMPILATION             1050
-#define IDC_ID3                         1052
-
-// Next default values for new objects
-// 
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        110
-#define _APS_NEXT_COMMAND_VALUE         40001
-#define _APS_NEXT_CONTROL_VALUE         1051
-#define _APS_NEXT_SYMED_VALUE           101
-#endif
-#endif
binary files a/plugins/winamp/id3v2.ico /dev/null differ
binary files a/plugins/winamp/mpeg4ip-v.bmp /dev/null differ
--- a/plugins/winamp/out_FAAC.sln
+++ /dev/null
@@ -1,71 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Out_FAAC", "Out_FAAC.vcproj", "{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac", "..\..\libfaac\libfaac.vcproj", "{140B72E6-CC42-48D8-97FF-24FFF9A825E9}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libmp4v2_st", "..\..\..\faad2\common\mp4v2\libmp4v2_st60.vcproj", "{239FBB04-89E8-4463-BC48-D57E565F08FC}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "id3lib", "..\..\..\faad2\common\id3lib\libprj\id3lib.vcproj", "{016F36CD-410C-4B47-A527-AF82B848E1EB}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "..\..\..\faad2\common\id3lib\zlib\prj\zlib.vcproj", "{873DE650-0D25-4EDA-846D-D36408A73E33}"
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		ConfigName.0 = Debug
-		ConfigName.1 = NASM Debug
-		ConfigName.2 = NASM Release
-		ConfigName.3 = Release
-	EndGlobalSection
-	GlobalSection(ProjectDependencies) = postSolution
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.0 = {239FBB04-89E8-4463-BC48-D57E565F08FC}
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.1 = {873DE650-0D25-4EDA-846D-D36408A73E33}
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.2 = {140B72E6-CC42-48D8-97FF-24FFF9A825E9}
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.3 = {016F36CD-410C-4B47-A527-AF82B848E1EB}
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.Debug.ActiveCfg = Debug|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.Debug.Build.0 = Debug|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.NASM Debug.ActiveCfg = Debug|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.NASM Debug.Build.0 = Debug|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.NASM Release.ActiveCfg = Release|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.NASM Release.Build.0 = Release|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.Release.ActiveCfg = Release|Win32
-		{D60DE5FC-6DD6-4335-A37A-EC45BD819E7C}.Release.Build.0 = Release|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.Debug.ActiveCfg = Debug|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.Debug.Build.0 = Debug|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.NASM Debug.ActiveCfg = Debug|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.NASM Debug.Build.0 = Debug|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.NASM Release.ActiveCfg = Release|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.NASM Release.Build.0 = Release|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.Release.ActiveCfg = Release|Win32
-		{140B72E6-CC42-48D8-97FF-24FFF9A825E9}.Release.Build.0 = Release|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.Debug.ActiveCfg = Debug|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.Debug.Build.0 = Debug|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.NASM Debug.ActiveCfg = Debug|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.NASM Debug.Build.0 = Debug|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.NASM Release.ActiveCfg = Release|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.NASM Release.Build.0 = Release|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.Release.ActiveCfg = Release|Win32
-		{239FBB04-89E8-4463-BC48-D57E565F08FC}.Release.Build.0 = Release|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.Debug.ActiveCfg = Debug|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.Debug.Build.0 = Debug|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.NASM Debug.ActiveCfg = Debug|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.NASM Debug.Build.0 = Debug|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.NASM Release.ActiveCfg = Release|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.NASM Release.Build.0 = Release|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.Release.ActiveCfg = Release|Win32
-		{016F36CD-410C-4B47-A527-AF82B848E1EB}.Release.Build.0 = Release|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.Debug.ActiveCfg = Debug|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.Debug.Build.0 = Debug|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.NASM Debug.ActiveCfg = NASM Debug|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.NASM Debug.Build.0 = NASM Debug|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.NASM Release.ActiveCfg = NASM Release|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.NASM Release.Build.0 = NASM Release|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.Release.ActiveCfg = Release|Win32
-		{873DE650-0D25-4EDA-846D-D36408A73E33}.Release.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
--- a/plugins/winamp/out_FAAC.vcproj
+++ /dev/null
@@ -1,208 +1,0 @@
-<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="7.00"
-	Name="Out_FAAC"
-	SccProjectName=""
-	SccLocalPath="">
-	<Platforms>
-		<Platform
-			Name="Win32"/>
-	</Platforms>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory=".\Release"
-			IntermediateDirectory=".\Release"
-			ConfigurationType="2"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE">
-			<Tool
-				Name="VCCLCompilerTool"
-				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="..\..\include,../../../faad2/common/mp4v2"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;WIN32_LEAN_AND_MEAN"
-				StringPooling="TRUE"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="TRUE"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderFile=".\Release/Out_FAAC.pch"
-				AssemblerListingLocation=".\Release/"
-				ObjectFile=".\Release/"
-				ProgramDataBaseFileName=".\Release/"
-				WarningLevel="3"
-				SuppressStartupBanner="TRUE"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalOptions="/MACHINE:I386"
-				AdditionalDependencies="odbc32.lib odbccp32.lib"
-				OutputFile="Release/Out_AAC.dll"
-				LinkIncremental="1"
-				SuppressStartupBanner="TRUE"
-				ModuleDefinitionFile=".\Out_FAAC.def"
-				ProgramDatabaseFile=".\Release/Out_AAC.pdb"
-				ImportLibrary=".\Release/Out_AAC.lib"/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions="NDEBUG"
-				MkTypLibCompatible="TRUE"
-				SuppressStartupBanner="TRUE"
-				TargetEnvironment="1"
-				TypeLibraryName=".\Release/Out_FAAC.tlb"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1040"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCWebDeploymentTool"/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory=".\Debug"
-			IntermediateDirectory=".\Debug"
-			ConfigurationType="2"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../include,../../../faad2/include,../../../faad2/common/faad,../../../faad2/common/mp4v2,../../../faad2/common/id3lib/include"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;WIN32_LEAN_AND_MEAN"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="2"
-				PrecompiledHeaderFile=".\Debug/Out_FAAC.pch"
-				AssemblerListingLocation=".\Debug/"
-				ObjectFile=".\Debug/"
-				ProgramDataBaseFileName=".\Debug/"
-				WarningLevel="3"
-				SuppressStartupBanner="TRUE"
-				DebugInformationFormat="4"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalOptions="/MACHINE:I386"
-				AdditionalDependencies="ws2_32.lib odbc32.lib odbccp32.lib"
-				OutputFile="C:\Program Files\Audio\Gen\Winamp\Plugins\Out_AAC.dll"
-				LinkIncremental="2"
-				SuppressStartupBanner="TRUE"
-				ModuleDefinitionFile=".\Out_FAAC.def"
-				GenerateDebugInformation="TRUE"
-				ProgramDatabaseFile=".\Debug/Out_AAC.pdb"
-				ImportLibrary=".\Debug/Out_AAC.lib"/>
-			<Tool
-				Name="VCMIDLTool"
-				PreprocessorDefinitions="_DEBUG"
-				MkTypLibCompatible="TRUE"
-				SuppressStartupBanner="TRUE"
-				TargetEnvironment="1"
-				TypeLibraryName=".\Debug/Out_FAAC.tlb"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1040"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCWebDeploymentTool"/>
-		</Configuration>
-	</Configurations>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
-			<File
-				RelativePath=".\CRegistry.cpp">
-			</File>
-			<File
-				RelativePath="CTag.cpp">
-			</File>
-			<File
-				RelativePath=".\Cfaac.cpp">
-			</File>
-			<File
-				RelativePath="EncDialog.cpp">
-			</File>
-			<File
-				RelativePath=".\FAAC.rc">
-			</File>
-			<File
-				RelativePath=".\Out_FAAC.def">
-			</File>
-			<File
-				RelativePath=".\Out_faac.cpp">
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl">
-			<File
-				RelativePath=".\CRegistry.h">
-			</File>
-			<File
-				RelativePath="CTag.h">
-			</File>
-			<File
-				RelativePath=".\Cfaac.h">
-			</File>
-			<File
-				RelativePath="EncDialog.h">
-			</File>
-			<File
-				RelativePath=".\FILTERS.H">
-			</File>
-			<File
-				RelativePath=".\OUT.H">
-			</File>
-			<File
-				RelativePath=".\defines.h">
-			</File>
-			<File
-				RelativePath="..\..\include\faac.h">
-			</File>
-			<File
-				RelativePath=".\resource.h">
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
-			<File
-				RelativePath=".\AudioCoding.bmp">
-			</File>
-			<File
-				RelativePath=".\Email.bmp">
-			</File>
-			<File
-				RelativePath=".\Open.bmp">
-			</File>
-			<File
-				RelativePath=".\Open.ico">
-			</File>
-			<File
-				RelativePath=".\mpeg4ip-v.bmp">
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>