ref: 090d7e381ee5f782170d2105bda52344971fe4c0
parent: b1ad0c2767ebcf4131f5df7aeeaa369e701a71f5
author: menno <menno>
date: Sun Jan 25 15:31:26 EST 2009
Updated projects and removed outdated code
--- a/plugins/aac_acm/StdAfx.cpp
+++ /dev/null
@@ -1,8 +1,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// aac_acm.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
--- a/plugins/aac_acm/StdAfx.h
+++ /dev/null
@@ -1,24 +1,0 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#if !defined(AFX_STDAFX_H__4B6551ED_F548_4AD7_B0DA_37308A3D8313__INCLUDED_)
-#define AFX_STDAFX_H__4B6551ED_F548_4AD7_B0DA_37308A3D8313__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-
-// Insert your headers here
-#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
-
-#include <windows.h>
-
-// TODO: reference additional headers your program requires here
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_STDAFX_H__4B6551ED_F548_4AD7_B0DA_37308A3D8313__INCLUDED_)
--- a/plugins/aac_acm/aac_acm.cpp
+++ /dev/null
@@ -1,192 +1,0 @@
-// aac_acm.cpp : Defines the entry point for the DLL application.
-//
-
-#include "stdafx.h"
-#include "codec.h"
-#include <list>
-
-struct messagetype
-{
- const char* c;
- int i;
-};
-
-const messagetype g_types[] =
-{
- "DRV_LOAD", DRV_LOAD,
- "DRV_FREE", DRV_FREE,
- "DRV_OPEN", DRV_OPEN,
- "DRV_CLOSE", DRV_CLOSE,
- "DRV_DISABLE", DRV_DISABLE,
- "DRV_ENABLE", DRV_ENABLE,
- "DRV_INSTALL", DRV_INSTALL,
- "DRV_REMOVE", DRV_REMOVE,
- "DRV_CONFIGURE", DRV_CONFIGURE,
- "DRV_QUERYCONFIGURE", DRV_QUERYCONFIGURE,
- "ACMDM_DRIVER_DETAILS", ACMDM_DRIVER_DETAILS,
- "ACMDM_DRIVER_ABOUT", ACMDM_DRIVER_ABOUT,
- "ACMDM_FORMATTAG_DETAILS", ACMDM_FORMATTAG_DETAILS,
- "ACMDM_FORMAT_DETAILS", ACMDM_FORMAT_DETAILS,
- "ACMDM_FORMAT_SUGGEST", ACMDM_FORMAT_SUGGEST,
- "ACMDM_STREAM_OPEN", ACMDM_STREAM_OPEN,
- "ACMDM_STREAM_CLOSE", ACMDM_STREAM_CLOSE,
- "ACMDM_STREAM_SIZE", ACMDM_STREAM_SIZE,
- "ACMDM_STREAM_CONVERT", ACMDM_STREAM_CONVERT,
- "ACMDM_STREAM_RESET", ACMDM_STREAM_RESET,
- "ACMDM_STREAM_PREPARE", ACMDM_STREAM_PREPARE,
- "ACMDM_STREAM_UNPREPARE", ACMDM_STREAM_UNPREPARE,
- "ACMDM_STREAM_UPDATE", ACMDM_STREAM_UPDATE,
-};
-
-#include <stdio.h>
-
-static void Message(const char* fmt, ...)
-{
-#ifndef NDEBUG
- FILE* f=fopen("c:\\msg.log", "ab");
- va_list va;
- va_start(va, fmt);
- vfprintf(f, fmt, va);
- va_end(va);
- fclose(f);
-#endif
-}
-
-//codec c1;
-//codec c2;
-//int iCodecs=0;
-
-bool g_bAttached=false;
-std::list<codec*> g_codec_objects;
-
-BOOL APIENTRY DllMain( HANDLE hModule,
- DWORD ul_reason_for_call,
- LPVOID lpReserved
- )
-{
- Message("DllMain(%d)\n");
- if(ul_reason_for_call==DLL_PROCESS_ATTACH)
- g_bAttached=true;
- if(ul_reason_for_call==DLL_PROCESS_DETACH)
- {
- for(std::list<codec*>::iterator it=g_codec_objects.begin();
- it!=g_codec_objects.end();
- it++)
- delete *it;
- g_bAttached=false;
- }
- return TRUE;
-}
-
-
-extern "C" LONG WINAPI DriverProc(DWORD dwDriverID, HDRVR hDriver, UINT uiMessage, LPARAM lParam1, LPARAM lParam2)
-{
- codec *cdx = (codec *)(UINT)dwDriverID;
- ICOPEN *icinfo = (ICOPEN *)lParam2;
-
- if(g_bAttached==false)
- // it really happens!
- // and since our heap may be already destroyed, we don't dare to do anything
- return E_FAIL;
-
- for(int i=0; i<sizeof(g_types)/sizeof(g_types[0]); i++)
- {
- if(uiMessage==g_types[i].i)
- {
- Message("%x %s %x %x\n", dwDriverID, g_types[i].c, lParam1, lParam2);
- goto cont;
- }
- }
- Message("%x %x %x %x\n", dwDriverID, uiMessage, lParam1, lParam2);
-cont:
- switch (uiMessage)
- {
- /****************************************
-
- standard driver messages
-
- ****************************************/
-
- case DRV_LOAD:
- return (LRESULT)1L;
-
- case DRV_FREE:
- return (LRESULT)1L;
-
- case DRV_OPEN:
- if (icinfo && icinfo->fccType != ICTYPE_AUDIO) return NULL;
- // if(!iCodecs)
- // cdx=&c1;
- // else
- // cdx=&c2;
- // iCodecs++;
- cdx = new codec;
- g_codec_objects.push_back(cdx);
- if (icinfo) icinfo->dwError = cdx ? ICERR_OK : ICERR_MEMORY;
- Message(" ==> %x\n", cdx);
- return (LRESULT)(DWORD)(UINT) cdx;
-
- case DRV_CLOSE:
- g_codec_objects.remove(cdx);
- delete cdx;
- return (LRESULT)1L;
-
- case DRV_DISABLE:
- case DRV_ENABLE:
- return (LRESULT)1L;
-
- case DRV_INSTALL:
- case DRV_REMOVE:
- return (LRESULT)DRV_OK;
-
- case DRV_QUERYCONFIGURE:
- return (LRESULT)0L; // does support drive configure with the about box
-
- case DRV_CONFIGURE:
- // return cdx->about(lParam1,lParam2);
- MessageBox(0, "Configure", "qqq", MB_OK);
- return DRVCNF_OK;
-
- case ACMDM_DRIVER_DETAILS:
- return cdx->details((ACMDRIVERDETAILSW*)lParam1);
-
- case ACMDM_DRIVER_ABOUT:
- return cdx->about((DWORD)lParam1);
-
- case ACMDM_FORMATTAG_DETAILS:
- return cdx->formattag_details((ACMFORMATTAGDETAILSW*)lParam1, (DWORD)lParam2);
-
- case ACMDM_FORMAT_DETAILS:
- return cdx->format_details((ACMFORMATDETAILSW*)lParam1, (DWORD)lParam2);
-
- case ACMDM_FORMAT_SUGGEST:
- return cdx->format_suggest((ACMDRVFORMATSUGGEST*)lParam1);
-
- case ACMDM_STREAM_OPEN:
- return cdx->open((ACMDRVSTREAMINSTANCE*)lParam1);
-
- case ACMDM_STREAM_PREPARE:
- return cdx->prepare((ACMDRVSTREAMINSTANCE*)lParam1, (ACMDRVSTREAMHEADER*) lParam2);
-
- case ACMDM_STREAM_RESET:
- return cdx->reset((ACMDRVSTREAMINSTANCE*)lParam1);
-
- case ACMDM_STREAM_SIZE:
- return cdx->size((ACMDRVSTREAMINSTANCE*)lParam1, (ACMDRVSTREAMSIZE*)lParam2);
-
- case ACMDM_STREAM_UNPREPARE:
- return cdx->unprepare((ACMDRVSTREAMINSTANCE*)lParam1, (ACMDRVSTREAMHEADER*) lParam2);
-
- case ACMDM_STREAM_CONVERT:
- return cdx->convert((ACMDRVSTREAMINSTANCE*)lParam1, (ACMDRVSTREAMHEADER*) lParam2);
-
- case ACMDM_STREAM_CLOSE:
- return cdx->close((ACMDRVSTREAMINSTANCE*)lParam1);
-
- }
-
- if (uiMessage < DRV_USER)
- return DefDriverProc(dwDriverID, hDriver, uiMessage, lParam1, lParam2);
- else
- return MMSYSERR_NOTSUPPORTED;
-}
--- a/plugins/aac_acm/aac_acm.def
+++ /dev/null
@@ -1,5 +1,0 @@
-LIBRARY "aac_acm"
-DESCRIPTION 'Windows Dynamic Link Library'
-
-EXPORTS
- DriverProc PRIVATE
--- a/plugins/aac_acm/aac_acm.dsp
+++ /dev/null
@@ -1,140 +1,0 @@
-# Microsoft Developer Studio Project File - Name="aac_acm" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=aac_acm - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "aac_acm.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "aac_acm.mak" CFG="aac_acm - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "aac_acm - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "aac_acm - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "aac_acm - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /I "../../../faad/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x419 /d "NDEBUG"
-# ADD RSC /l 0x419 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib vfw32.lib winmm.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"bin"
-
-!ELSEIF "$(CFG)" == "aac_acm - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../../faad/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /FD /GZ /c
-# SUBTRACT CPP /FA<none>
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x419 /d "_DEBUG"
-# ADD RSC /l 0x419 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib vfw32.lib winmm.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"bin"
-
-!ENDIF
-
-# Begin Target
-
-# Name "aac_acm - Win32 Release"
-# Name "aac_acm - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\aac_acm.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\aac_acm.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\codec.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\StdAfx.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\codec.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\faac.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\faad\include\faad.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\msacmdrv.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\StdAfx.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
--- a/plugins/aac_acm/aac_acm.dsw
+++ /dev/null
@@ -1,59 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "aac_acm"=.\aac_acm.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name libfaac
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libfaad
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "libfaac"=..\..\libfaac\libfaac.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libfaad"=..\..\..\faad\libfaad\libfaad.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- a/plugins/aac_acm/aac_acm.inf
+++ /dev/null
@@ -1,80 +1,0 @@
-
-
-[Version]
-Signature = "$CHICAGO$"
-Class = MEDIA
-
-[SourceDisksNames]
-1="AAC Audio Codec Install Disk",, 0001
-
-[SourceDisksFiles]
-aac_acm.dll=1
-aac_acm.inf=1
-
-[Installable.Drivers]
-divxa32 = 1:aac_acm.dll, "msacm.aac" , "AAC Audio Codec" , , ,
-
-[DefaultInstall]
-CopyFiles=AAC.Copy,AAC.Copy.Inf
-Updateinis = AAC.Updateini
-addreg = AAC.AddReg9x
-MediaType = SOFTWARE
-
-[DefaultInstall.ntx86]
-CopyFiles=AAC.Copy,AAC.Copy.Inf
-addreg = AAC.AddRegNT
-MediaType = SOFTWARE
-
-[Remove_AAC]
-AddReg = AAC.Unregister
-DelFiles = AAC.Copy,AAC.Copy.Inf
-UpdateInis = AAC.DelIni
-
-[AAC.Copy]
-aac_acm.dll
-
-[AAC.Copy.Inf]
-aac_acm.inf
-
-[AAC.UpdateIni]
-system.ini, drivers32,,"msacm.aac=aac_acm.dll"
-
-[AAC.DelIni]
-system.ini, drivers32,"msacm.aac=aac_acm.dll"
-
-[AAC.AddReg9x]
-HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\acm\msacm.aac,Description,,%AACAudio%
-HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\acm\msacm.aac,Driver,,aac_acm.dll
-HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\acm\msacm.aac,FriendlyName,,%AACAudio%
-
-HKLM,%UnInstallPath%,DisplayName,,%UninstallDispName%
-HKLM,%UnInstallPath%,UninstallString,,"%10%\rundll.exe setupx.dll,InstallHinfSection Remove_AAC 132 %17%\%InfFile%"
-
-[AAC.AddRegNT]
-HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc,aac_acm.dll,,%AACAudio%
-HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers32,msacm.aac,,aac_acm.dll
-
-
-HKLM,%UnInstallPath%,DisplayName,,%UninstallDispName%
-HKLM,%UnInstallPath%,UninstallString,,"%11%\rundll32.exe setupapi,InstallHinfSection Remove_AAC 132 %17%\%InfFile%"
-
-[AAC.DelReg]
-HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\acm\msacm.aac
-
-HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc,aac_acm.dll,,""
-HKLM,SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers32,msacm.aac,,""
-HKLM,%UnInstallPath%
-
-[DestinationDirs]
-DefaultDestDir = 11 ; LDID_SYS
-AAC.Copy = 11
-AAC.Copy.Inf = 17
-
-[Strings]
-AACAudio="MPEG-2/4 AAC audio codec"
-InfFile="aac_acm.inf"
-UninstallDispName="MPEG-2/4 AAC audio codec"
-UnInstallPath="Software\Microsoft\Windows\CurrentVersion\Uninstall\AACCodec"
-MediaClassName="Media Devices"
-mfgname="No more money !"
-
--- a/plugins/aac_acm/aac_acm.sln
+++ /dev/null
@@ -1,35 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aac_acm", "aac_acm.vcproj", "{D99ED960-4DEC-421E-87DE-EDA1D4A83832}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaac", "..\..\libfaac\libfaac.vcproj", "{D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "..\..\..\faad\libfaad\libfaad.vcproj", "{8855A63B-544C-4C2F-A254-1B824BE9D5FC}"
-EndProject
-Global
- GlobalSection(SolutionConfiguration) = preSolution
- ConfigName.0 = Debug
- ConfigName.1 = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.0 = {8855A63B-544C-4C2F-A254-1B824BE9D5FC}
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.1 = {D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.Debug.ActiveCfg = Debug|Win32
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.Debug.Build.0 = Debug|Win32
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.Release.ActiveCfg = Release|Win32
- {D99ED960-4DEC-421E-87DE-EDA1D4A83832}.Release.Build.0 = Release|Win32
- {D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}.Debug.ActiveCfg = Debug|Win32
- {D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}.Debug.Build.0 = Debug|Win32
- {D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}.Release.ActiveCfg = Release|Win32
- {D959B8AF-46D6-46D3-B839-AAB9F7AB5A56}.Release.Build.0 = Release|Win32
- {8855A63B-544C-4C2F-A254-1B824BE9D5FC}.Debug.ActiveCfg = Debug|Win32
- {8855A63B-544C-4C2F-A254-1B824BE9D5FC}.Debug.Build.0 = Debug|Win32
- {8855A63B-544C-4C2F-A254-1B824BE9D5FC}.Release.ActiveCfg = Release|Win32
- {8855A63B-544C-4C2F-A254-1B824BE9D5FC}.Release.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
--- a/plugins/aac_acm/aac_acm.vcproj
+++ /dev/null
@@ -1,177 +1,0 @@
-<?xml version="1.0" encoding = "Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="7.00"
- Name="aac_acm"
- 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,../../../faad/include"
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
- StringPooling="TRUE"
- RuntimeLibrary="4"
- EnableFunctionLevelLinking="TRUE"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Release/aac_acm.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 vfw32.lib winmm.lib"
- OutputFile=".\Release/aac_acm.dll"
- LinkIncremental="1"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="bin"
- ModuleDefinitionFile=".\aac_acm.def"
- ProgramDatabaseFile=".\Release/aac_acm.pdb"
- SubSystem="2"
- ImportLibrary=".\Release/aac_acm.lib"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/aac_acm.tlb"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1049"/>
- <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,../../../faad/include"
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="2"
- PrecompiledHeaderFile=".\Debug/aac_acm.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
- CompileAs="0"/>
- <Tool
- Name="VCCustomBuildTool"/>
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="odbc32.lib odbccp32.lib vfw32.lib winmm.lib"
- OutputFile=".\Debug/aac_acm.dll"
- LinkIncremental="2"
- SuppressStartupBanner="TRUE"
- AdditionalLibraryDirectories="bin"
- ModuleDefinitionFile=".\aac_acm.def"
- GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\Debug/aac_acm.pdb"
- SubSystem="2"
- ImportLibrary=".\Debug/aac_acm.lib"/>
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="TRUE"
- SuppressStartupBanner="TRUE"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/aac_acm.tlb"/>
- <Tool
- Name="VCPostBuildEventTool"/>
- <Tool
- Name="VCPreBuildEventTool"/>
- <Tool
- Name="VCPreLinkEventTool"/>
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1049"/>
- <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=".\StdAfx.cpp">
- </File>
- <File
- RelativePath=".\aac_acm.cpp">
- </File>
- <File
- RelativePath=".\aac_acm.def">
- </File>
- <File
- RelativePath=".\codec.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- <File
- RelativePath=".\StdAfx.h">
- </File>
- <File
- RelativePath=".\codec.h">
- </File>
- <File
- RelativePath="..\..\include\faac.h">
- </File>
- <File
- RelativePath="..\..\..\faad\include\faad.h">
- </File>
- <File
- RelativePath=".\msacmdrv.h">
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
--- a/plugins/aac_acm/codec.cpp
+++ /dev/null
@@ -1,669 +1,0 @@
-#include "codec.h"
-#include <assert.h>
-
-// we must register these by emailing to mmreg@microsoft.com
-const int codec::m_iCompressedFormatTag = 0x1234;
-const int codec::m_iManufacturerID = MM_GADGETLABS;
-const int codec::m_iProductID = 7;
-
-const wchar_t g_sCodecName[]=L"MPEG-2/4 AAC audio codec";
-const wchar_t g_sLongCodecName[]=L"Very special audio codec";
-const wchar_t g_sFormatName[]=L"MPEG-2/4 AAC";
-
-codec::codec()
-{
-}
-
-codec::~codec()
-{
-}
-
-HRESULT codec::formattag_details(ACMFORMATTAGDETAILSW* lParam1, DWORD lParam2)
-{
- bool bCompressedFormat;
- switch(lParam2)
- {
- case ACM_FORMATTAGDETAILSF_INDEX:
- if(lParam1->dwFormatTagIndex>=2)
- return ACMERR_NOTPOSSIBLE;
- bCompressedFormat=(lParam1->dwFormatTagIndex==1);
- break;
- case ACM_FORMATTAGDETAILSF_FORMATTAG:
- if(lParam1->dwFormatTag==1)
- bCompressedFormat=false;
- else if(lParam1->dwFormatTag==m_iCompressedFormatTag)
- bCompressedFormat=true;
- else
- return ACMERR_NOTPOSSIBLE;
- case ACM_FORMATTAGDETAILSF_LARGESTSIZE:
- bCompressedFormat=true;
- break;
- default:
- return ACMERR_NOTPOSSIBLE;
- }
- lParam1->cbStruct=sizeof(ACMFORMATTAGDETAILSW);
- lParam1->cbFormatSize=bCompressedFormat ? 20 : 16;
- lParam1->fdwSupport=ACMDRIVERDETAILS_SUPPORTF_CODEC;
- if(bCompressedFormat)
- lParam1->cStandardFormats=8; // 44 & 48 khz 16 bit, mono & stereo, 64 & 128 kbps
- else
- lParam1->cStandardFormats=8; // 44 & 48 khz 8 & 16 bit, mono & stereo
- if(bCompressedFormat)
- {
- wcscpy(lParam1->szFormatTag, g_sFormatName);
- lParam1->dwFormatTag=m_iCompressedFormatTag;
- }
- else
- {
- wcscpy(lParam1->szFormatTag, L"PCM");
- lParam1->dwFormatTag=1;
- }
- return MMSYSERR_NOERROR;
-}
-
-void codec::fill_pcm_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels)
-{
- pwfx->wFormatTag=1;
- pwfx->nSamplesPerSec=rate;
- pwfx->wBitsPerSample=bits;
- pwfx->nChannels=channels;
- pwfx->nAvgBytesPerSec=rate * bits * channels / 8;
- pwfx->nBlockAlign=channels * bits / 8;
- pwfx->cbSize=0;
-}
-
-#define MAIN 0
-#define LOW 1
-#define SSR 2
-#define LTP 3
-
-static unsigned int aacSamplingRates[16] = {
- 96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050,
- 16000, 12000, 11025, 8000, 7350, 0, 0, 0
-};
-
-void codec::fill_compressed_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels, int bitrate)
-{
- pwfx->wFormatTag=m_iCompressedFormatTag;
- pwfx->nSamplesPerSec=rate;
- pwfx->wBitsPerSample=bits;
- pwfx->nChannels=channels;
- pwfx->nAvgBytesPerSec=bitrate / 8;
- pwfx->nBlockAlign=1024;
- pwfx->cbSize=2;
-
- unsigned char* ext=(unsigned char*)(&pwfx[1]);
- int profile = MAIN;
- int samplerate_index=-1;
- for(int i=0; i<16; i++)
- if(aacSamplingRates[i]==rate)
- {
- samplerate_index=i;
- break;
- }
- if(samplerate_index<0)
- return;
- ext[0] = ((profile + 1) << 3) | ((samplerate_index & 0xe) >> 1);
- ext[1] = ((samplerate_index & 0x1) << 7) | (channels << 3);
- // 960 byte frames not used
-}
-
-HRESULT codec::format_details(ACMFORMATDETAILSW* lParam1, DWORD lParam2)
-{
- lParam1->cbStruct=sizeof(ACMFORMATDETAILSW);
- lParam1->szFormat[0]=0;
- lParam1->fdwSupport=ACMDRIVERDETAILS_SUPPORTF_CODEC;
-
- if(lParam1->dwFormatTag==1)
- {
- if(lParam2==ACM_FORMATDETAILSF_INDEX)
- {
- switch(lParam1->dwFormatIndex)
- {
- case 0:
- fill_pcm_format(lParam1->pwfx, 44100, 16, 1);
- break;
- case 1:
- fill_pcm_format(lParam1->pwfx, 44100, 16, 2);
- break;
- case 2:
- fill_pcm_format(lParam1->pwfx, 44100, 8, 1);
- break;
- case 3:
- fill_pcm_format(lParam1->pwfx, 44100, 8, 2);
- break;
- case 4:
- fill_pcm_format(lParam1->pwfx, 48000, 16, 1);
- break;
- case 5:
- fill_pcm_format(lParam1->pwfx, 48000, 16, 2);
- break;
- case 6:
- fill_pcm_format(lParam1->pwfx, 48000, 8, 1);
- break;
- case 7:
- fill_pcm_format(lParam1->pwfx, 48000, 8, 2);
- break;
- default:
- return ACMERR_NOTPOSSIBLE;
- }
- }
- else if(lParam2==ACM_FORMATDETAILSF_FORMAT)
- {
- if((lParam1->pwfx->nSamplesPerSec != 44100) && (lParam1->pwfx->nSamplesPerSec != 48000))
- return ACMERR_NOTPOSSIBLE;
- }
- else
- return ACMERR_NOTPOSSIBLE;
- }
- else if(lParam1->dwFormatTag==m_iCompressedFormatTag)
- {
- if(lParam2==ACM_FORMATDETAILSF_INDEX)
- {
- switch(lParam1->dwFormatIndex)
- {
- case 0:
- fill_compressed_format(lParam1->pwfx, 44100, 16, 1, 128000);
- break;
- case 1:
- fill_compressed_format(lParam1->pwfx, 44100, 16, 2, 128000);
- break;
- case 2:
- fill_compressed_format(lParam1->pwfx, 44100, 16, 1, 64000);
- break;
- case 3:
- fill_compressed_format(lParam1->pwfx, 44100, 16, 2, 64000);
- break;
- case 4:
- fill_compressed_format(lParam1->pwfx, 48000, 16, 1, 128000);
- break;
- case 5:
- fill_compressed_format(lParam1->pwfx, 48000, 16, 2, 128000);
- break;
- case 6:
- fill_compressed_format(lParam1->pwfx, 48000, 16, 1, 64000);
- break;
- case 7:
- fill_compressed_format(lParam1->pwfx, 48000, 16, 2, 64000);
- break;
- default:
- return ACMERR_NOTPOSSIBLE;
- }
- }
- else if(lParam2==ACM_FORMATDETAILSF_FORMAT)
- {
- if((lParam1->pwfx->nSamplesPerSec != 44100) && (lParam1->pwfx->nSamplesPerSec != 48000))
- return ACMERR_NOTPOSSIBLE;
- }
- else
- return ACMERR_NOTPOSSIBLE;
- }
- else
- return ACMERR_NOTPOSSIBLE;
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::format_suggest(ACMDRVFORMATSUGGEST* pFormat)
-{
- bool bEncode;
- if(pFormat->fdwSuggest & ACM_FORMATSUGGESTF_WFORMATTAG)
- {
- if((pFormat->pwfxDst->wFormatTag == 1) && (pFormat->pwfxSrc->wFormatTag == m_iCompressedFormatTag))
- bEncode=false;
- else
- if((pFormat->pwfxDst->wFormatTag == m_iCompressedFormatTag) && (pFormat->pwfxSrc->wFormatTag == 1))
- bEncode=true;
- else
- return ACMERR_NOTPOSSIBLE;
- }
- else
- {
- if(pFormat->pwfxSrc->wFormatTag == m_iCompressedFormatTag)
- {
- pFormat->pwfxDst->wFormatTag=1;
- bEncode=false;
- }
- else
- if(pFormat->pwfxSrc->wFormatTag == 1)
- {
- pFormat->pwfxDst->wFormatTag=m_iCompressedFormatTag;
- bEncode=true;
- }
- else
- return ACMERR_NOTPOSSIBLE;
- }
- if(pFormat->fdwSuggest & ACM_FORMATSUGGESTF_NCHANNELS)
- {
- if(pFormat->pwfxDst->nChannels != pFormat->pwfxSrc->nChannels)
- return ACMERR_NOTPOSSIBLE;
- }
- int iChannels = pFormat->pwfxSrc->nChannels;
- if(pFormat->fdwSuggest & ACM_FORMATSUGGESTF_NSAMPLESPERSEC)
- {
- if(pFormat->pwfxDst->nSamplesPerSec != pFormat->pwfxSrc->nSamplesPerSec)
- return ACMERR_NOTPOSSIBLE;
- }
- int iSamplesPerSec = pFormat->pwfxSrc->nSamplesPerSec;
-
- if(pFormat->fdwSuggest & ACM_FORMATSUGGESTF_WBITSPERSAMPLE)
- {
- if(pFormat->pwfxDst->wBitsPerSample != pFormat->pwfxSrc->wBitsPerSample)
- return ACMERR_NOTPOSSIBLE;
- }
- int iBitsPerSample = pFormat->pwfxSrc->wBitsPerSample;
-
- if(bEncode)
- fill_compressed_format(pFormat->pwfxDst, iSamplesPerSec, iBitsPerSample, iChannels, 128000);
- else
- fill_pcm_format(pFormat->pwfxDst, iSamplesPerSec, iBitsPerSample, iChannels);
-
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::details(ACMDRIVERDETAILSW* pDetails)
-{
- memset(pDetails, 0, sizeof(ACMDRIVERDETAILSW));
- pDetails->cbStruct=sizeof(ACMDRIVERDETAILSW);
- pDetails->fccType=ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC;
- pDetails->fccComp=ACMDRIVERDETAILS_FCCCOMP_UNDEFINED;
- pDetails->wMid=m_iManufacturerID;
- pDetails->wPid=m_iProductID;
- pDetails->vdwACM=0x3320000;
- pDetails->vdwDriver=0x1000000;
- pDetails->fdwSupport=ACMDRIVERDETAILS_SUPPORTF_CODEC;
- pDetails->cFormatTags=2;
- pDetails->cFilterTags=0;
- wcscpy(pDetails->szShortName, g_sCodecName);
- wcscpy(pDetails->szLongName, g_sLongCodecName);
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::about(DWORD h)
-{
- if(h==(DWORD)-1)
- return MMSYSERR_NOERROR;
- MessageBoxW((HWND)h, g_sLongCodecName, L"About", MB_OK);
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::open(ACMDRVSTREAMINSTANCE* pStream)
-{
- if(pStream->pwfxDst->nChannels != pStream->pwfxSrc->nChannels)
- return ACMERR_NOTPOSSIBLE;
- if(pStream->pwfxDst->nSamplesPerSec != pStream->pwfxSrc->nSamplesPerSec)
- return ACMERR_NOTPOSSIBLE;
- bool bDecode = (pStream->pwfxDst->wFormatTag == 1);
- if(bDecode)
- {
- if(pStream->pwfxDst->wBitsPerSample!=16)
- return ACMERR_NOTPOSSIBLE;
- if(pStream->pwfxSrc->wFormatTag!=m_iCompressedFormatTag)
- return ACMERR_NOTPOSSIBLE;
- }
- else
- {
- // if(pStream->pwfxSrc->wBitsPerSample!=16)
- // return ACMERR_NOTPOSSIBLE;
- if(pStream->pwfxDst->wFormatTag!=m_iCompressedFormatTag)
- return ACMERR_NOTPOSSIBLE;
- if(pStream->pwfxSrc->wFormatTag!=1)
- return ACMERR_NOTPOSSIBLE;
- }
-
- if(pStream->fdwOpen & ACM_STREAMOPENF_QUERY)
- return MMSYSERR_NOERROR;
-
- if(bDecode)
- pStream->dwDriver=(DWORD)new decoder(pStream->pwfxSrc);
- else
- pStream->dwDriver=(DWORD)new encoder(pStream->pwfxSrc, pStream->pwfxDst);
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::prepare(ACMDRVSTREAMINSTANCE* pStream, ACMDRVSTREAMHEADER* pHeader)
-{
- return MMSYSERR_NOTSUPPORTED;
-}
-
-HRESULT codec::reset(ACMDRVSTREAMINSTANCE* pStream)
-{
- stream* pstr=(stream*)pStream->dwDriver;
- return pstr->reset();
-}
-
-HRESULT codec::size(ACMDRVSTREAMINSTANCE* pStream, ACMDRVSTREAMSIZE* pSize)
-{
- stream* pstr=(stream*)pStream->dwDriver;
- return pstr->size(pSize);
-}
-
-HRESULT codec::unprepare(ACMDRVSTREAMINSTANCE* pStream, ACMDRVSTREAMHEADER* pHeader)
-{
- return MMSYSERR_NOTSUPPORTED;
-}
-
-HRESULT codec::convert(ACMDRVSTREAMINSTANCE* pStream, ACMDRVSTREAMHEADER* pHeader)
-{
- stream* pstr=(stream*)pStream->dwDriver;
- return pstr->convert(pHeader);
-}
-
-HRESULT codec::close(ACMDRVSTREAMINSTANCE* pStream)
-{
- stream* pstr=(stream*)pStream->dwDriver;
- delete pstr;
- return MMSYSERR_NOERROR;
-}
-
-#include "faac.h"
-
-codec::encoder::encoder(WAVEFORMATEX* pF, WAVEFORMATEX* pFDest) : m_sFormat(*pF)
-{
- m_iOutputBytesPerSec=pFDest->nAvgBytesPerSec;
-
- m_pHandle=faacEncOpen(pF->nSamplesPerSec, pF->nChannels, &m_iInputSamples, &m_iMaxOutputBytes);
-
- faacEncConfiguration conf;
- conf.mpegVersion = MPEG4;
- conf.aacObjectType = MAIN;
- conf.allowMidside = 1;
- conf.useLfe = 1;
- conf.useTns = 1;
- conf.bitRate = m_iOutputBytesPerSec/pFDest->nChannels; // bits/second per channel
- conf.bandWidth = 18000; //Hz
- conf.outputFormat = 1; // ADTS
- faacEncSetConfiguration(m_pHandle, &conf);
-}
-
-HRESULT codec::encoder::reset()
-{
- // fixme (?)
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::encoder::size(ACMDRVSTREAMSIZE* pSize)
-{
- double dwInputBitRate=m_sFormat.nSamplesPerSec * m_sFormat.wBitsPerSample * m_sFormat.nChannels;
- double dwOutputBitRate=m_iOutputBytesPerSec;// kbytes/s
-
- if(pSize->fdwSize == ACM_STREAMSIZEF_SOURCE)
- {
- if(pSize->cbSrcLength<2*m_iInputSamples)
- pSize->cbSrcLength=2*m_iInputSamples;
- pSize->cbDstLength = pSize->cbSrcLength * 2 * dwOutputBitRate/dwInputBitRate;
- if(pSize->cbDstLength<m_iMaxOutputBytes)
- pSize->cbDstLength=m_iMaxOutputBytes;
-
- }
- else
- {
- if(pSize->cbDstLength<m_iMaxOutputBytes)
- pSize->cbDstLength=m_iMaxOutputBytes;
- pSize->cbSrcLength = pSize->cbDstLength * 2 * dwInputBitRate/dwOutputBitRate;;
- if(pSize->cbSrcLength<2*m_iInputSamples)
- pSize->cbSrcLength=2*m_iInputSamples;
- }
-
- return MMSYSERR_NOERROR;
-}
-
-#include <stdio.h>
-
-HRESULT codec::encoder::convert(ACMDRVSTREAMHEADER* pHeader)
-{
-#if 0
- short* pSrc, *pDst;
- pSrc=(short*)(pHeader->pbSrc);
- pDst=(short*)(pHeader->pbDst);
- int iSrc=0, iDst=0;
- int block_size=m_sFormat.nChannels * 64;
- int samples_to_process=pHeader->cbSrcLength / (2 * block_size);
-
- for(int j=0; j<samples_to_process; j++)
- {
- if(m_sFormat.nChannels==1)
- {
- pDst[0]=pSrc[0];
- for(int i=1; i<64; i++)
- pDst[i]=(int)pSrc[i]-(int)pSrc[i-1];
- pSrc+=block_size;
- pDst+=block_size;
- }
- else
- {
- pDst[0]=pSrc[0];
- pDst[1]=pSrc[1];
- for(int i=1; i<64; i++)
- {
- pDst[2*i]=(int)pSrc[2*i]-(int)pSrc[2*i-2];
- pDst[2*i+1]=(int)pSrc[2*i+1]-(int)pSrc[2*i-1];
- }
- pSrc+=block_size;
- pDst+=block_size;
- }
- }
- FILE* f=fopen("c:\\enc.log", "ab");
- fwrite(pHeader->pbSrc, 2 * block_size * samples_to_process, 1, f);
- fclose(f);
- f=fopen("c:\\enc2.log", "ab");
- fwrite(pHeader->pbDst, 2 * block_size * samples_to_process, 1, f);
- fclose(f);
- pHeader->cbDstLengthUsed=2 * block_size * samples_to_process;
- pHeader->cbSrcLengthUsed=2 * block_size * samples_to_process;
- return MMSYSERR_NOERROR;
-#else
- short* buffer=0;
- int length=pHeader->cbSrcLength;
- if(m_sFormat.wBitsPerSample!=16)
- {
- buffer = new short[length];
- for(int i=0; i<length; i++)
- {
- short s=(short)(((unsigned char*)pHeader->pbSrc)[i]);
- s-=128;
- s*=256;
- buffer[i]=s;
- }
- }
- short* pointer = buffer ? buffer : (short*)(pHeader->pbSrc);
- pHeader->cbSrcLengthUsed=0;
- pHeader->cbDstLengthUsed=0;
- while(1)
- {
- if(length-pHeader->cbSrcLengthUsed<2*m_iInputSamples)
- break;
- if(pHeader->cbDstLength-pHeader->cbDstLengthUsed<m_iMaxOutputBytes)
- break;
- int result=faacEncEncode(m_pHandle, pointer+pHeader->cbSrcLengthUsed,
- m_iInputSamples,
- (short*)(pHeader->pbDst+pHeader->cbDstLengthUsed),
- pHeader->cbDstLength-pHeader->cbDstLengthUsed);
- if(result<0)
- {
- reset();
- break;
- }
- pHeader->cbDstLengthUsed+=result;
- pHeader->cbSrcLengthUsed+=2*m_iInputSamples;
- }
- if(buffer)
- {
- pHeader->cbSrcLengthUsed/=2;
- delete[] buffer;
- }
- return MMSYSERR_NOERROR;
-#endif
-}
-
-codec::decoder::decoder(WAVEFORMATEX* pF) : m_sFormat(*pF), m_bInitialized(false), m_pCache(0)
-{
- m_pHandle=faacDecOpen();
-}
-
-HRESULT codec::decoder::reset()
-{
- faacDecClose(m_pHandle);
- m_pHandle=faacDecOpen();
- m_bInitialized=false;
- delete[] m_pCache;
- m_pCache=0;
- return MMSYSERR_NOERROR;
-}
-
-HRESULT codec::decoder::size(ACMDRVSTREAMSIZE* pSize)
-{
- double dwInputBitRate=m_sFormat.nAvgBytesPerSec;
- double dwOutputBitRate=m_sFormat.nSamplesPerSec * m_sFormat.wBitsPerSample * m_sFormat.nChannels;
-
- if(pSize->fdwSize == ACM_STREAMSIZEF_SOURCE)
- {
- if(pSize->cbSrcLength<768*m_sFormat.nChannels)
- pSize->cbSrcLength=768*m_sFormat.nChannels;
- pSize->cbDstLength = pSize->cbSrcLength * 2 * dwOutputBitRate/dwInputBitRate;
- if(pSize->cbDstLength<4096)
- pSize->cbDstLength=4096;
- }
- else
- {
- if(pSize->cbDstLength<4096)
- pSize->cbDstLength=4096;
- pSize->cbSrcLength = pSize->cbDstLength * 2 * dwInputBitRate/dwOutputBitRate;;
- if(pSize->cbSrcLength<768*m_sFormat.nChannels)
- pSize->cbSrcLength=768*m_sFormat.nChannels;
- }
-
- return MMSYSERR_NOERROR;
-}
-
-//static int iBytesProcessed=0;
-HRESULT codec::decoder::convert(ACMDRVSTREAMHEADER* pHeader)
-{
-#if 0
- short *pSrc, *pDst;
- pSrc=(short*)pHeader->pbSrc;
- pDst=(short*)pHeader->pbDst;
- int iSrc=0, iDst=0;
- int block_size=m_sFormat.nChannels * 64;
- int samples_to_process=pHeader->cbSrcLength / (2 * block_size);
- for(int j=0; j<samples_to_process; j++)
- {
- if(m_sFormat.nChannels==1)
- {
- pDst[0]=pSrc[0];
- for(int i=1; i<64; i++)
- pDst[i]=(int)pSrc[i]+(int)pDst[i-1];
- pSrc+=block_size;
- pDst+=block_size;
- }
- else
- {
- pDst[0]=pSrc[0];
- pDst[1]=pSrc[1];
- for(int i=1; i<64; i++)
- {
- pDst[2*i]=(int)pSrc[2*i]+(int)pDst[2*i-2];
- pDst[2*i+1]=(int)pSrc[2*i+1]+(int)pDst[2*i-1];
- }
- pSrc+=block_size;
- pDst+=block_size;
- }
- }
- FILE* f=fopen("c:\\dec.log", "ab");
- fwrite(pHeader->pbDst, 2 * block_size * samples_to_process, 1, f);
- fclose(f);
- pHeader->cbDstLengthUsed=2 * block_size * samples_to_process;
- pHeader->cbSrcLengthUsed=2 * block_size * samples_to_process;
- return MMSYSERR_NOERROR;
-#else
- // fixme: check fdwConvert contents
-
- const int iMinInputSize = 768*m_sFormat.nChannels;
- pHeader->cbSrcLengthUsed=0;
- pHeader->cbDstLengthUsed=0;
- int decoded_bytes=0;
- if(!m_bInitialized)
- {
- unsigned long samplerate;
- unsigned long channels;
- //assert(!m_pCache);
- // we don't really need this call
- // and it is done only because i am not sure if it's necessary for faac functionality
- pHeader->cbSrcLengthUsed=faacDecInit(m_pHandle, pHeader->pbSrc, &samplerate, &channels);
- m_bInitialized=true;
- }
- unsigned long bytesconsumed;
- unsigned long samples;
- if(pHeader->cbDstLength<4096)
- goto finish;
-
- int iSrcDataLeft=pHeader->cbSrcLength;
-
- while(m_pCache)
- {
- int iFillSize = iMinInputSize - m_iCacheSize;
- if(iFillSize > iSrcDataLeft)
- iFillSize = iSrcDataLeft;
- memcpy(&m_pCache[m_iCacheSize], pHeader->pbSrc+pHeader->cbSrcLengthUsed, iFillSize);
- m_iCacheSize += iFillSize;
- iSrcDataLeft -= iFillSize;
- pHeader->cbSrcLengthUsed += iFillSize;
- if(m_iCacheSize < iMinInputSize)
- goto finish;
- int result=faacDecDecode(m_pHandle, m_pCache, &bytesconsumed,
- (short*)(pHeader->pbDst+pHeader->cbDstLengthUsed), &samples); // no way to prevent output buffer overrun???
- if(result==FAAD_FATAL_ERROR)
- {
- reset();
- goto finish;
- }
- if(result==FAAD_OK)
- pHeader->cbDstLengthUsed+=sizeof(short)*samples;
- assert(bytesconsumed <= iMinInputSize);
- if(bytesconsumed < iMinInputSize)
- memmove(m_pCache, &m_pCache[bytesconsumed], iMinInputSize-bytesconsumed);
- m_iCacheSize-=bytesconsumed;
- if(m_iCacheSize==0)
- {
- delete[] m_pCache;
- m_pCache=0;
- }
- }
-
- if(iSrcDataLeft == 0)
- goto finish;
-
- if(iSrcDataLeft < iMinInputSize)
- {
- m_pCache = new unsigned char[iMinInputSize];
- memcpy(m_pCache, pHeader->pbSrc + pHeader->cbSrcLengthUsed, iSrcDataLeft);
- m_iCacheSize = iSrcDataLeft;
- pHeader->cbSrcLengthUsed = pHeader->cbSrcLength;
- goto finish;
- }
-
- while(iSrcDataLeft>=iMinInputSize)
- {
- if(pHeader->cbDstLength-pHeader->cbDstLengthUsed<4096)
- break;
- int result=faacDecDecode(m_pHandle, pHeader->pbSrc+pHeader->cbSrcLengthUsed, &bytesconsumed,
- (short*)(pHeader->pbDst+pHeader->cbDstLengthUsed), &samples); // no way to prevent output buffer overrun???
- if(result==FAAD_FATAL_ERROR)
- {
- pHeader->cbSrcLengthUsed=pHeader->cbSrcLength;
- reset();
- goto finish;
- }
- if(result==FAAD_OK)
- pHeader->cbDstLengthUsed+=sizeof(short)*samples;
- pHeader->cbSrcLengthUsed+=bytesconsumed;
- iSrcDataLeft-=bytesconsumed;
- }
-finish:
- FILE* f=fopen("c:\\aac_acm.bin", "ab");
- fwrite(pHeader->pbSrc, pHeader->cbSrcLengthUsed, 1, f);
- fclose(f);
- // iBytesProcessed+=pHeader->cbSrcLengthUsed;
- return MMSYSERR_NOERROR;
-#endif
-}
-
--- a/plugins/aac_acm/codec.h
+++ /dev/null
@@ -1,71 +1,0 @@
-#ifndef _CODEC_H
-#define _CODEC_H
-
-#include "msacmdrv.h"
-#include "faac.h"
-#include "faad.h"
-class codec
-{
- static const int m_iCompressedFormatTag;
- static const int m_iManufacturerID;
- static const int m_iProductID;
-
- static void fill_pcm_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels);
- static void fill_compressed_format(WAVEFORMATEX* pwfx, int rate, int bits, int channels, int bitrate);
- int something;
- class stream
- {
- public:
- virtual ~stream() {}
- virtual HRESULT reset() =0;
- virtual HRESULT size(ACMDRVSTREAMSIZE*) =0;
- virtual HRESULT convert(ACMDRVSTREAMHEADER*) =0;
- };
- class encoder: public stream
- {
- WAVEFORMATEX m_sFormat;
- unsigned long m_iInputSamples;
- unsigned long m_iMaxOutputBytes;
- unsigned long m_iOutputBytesPerSec;
- faacEncHandle m_pHandle;
- public:
- encoder(WAVEFORMATEX* pF, WAVEFORMATEX* pFDest);
- ~encoder() {}
- virtual HRESULT reset();
- virtual HRESULT size(ACMDRVSTREAMSIZE*);
- virtual HRESULT convert(ACMDRVSTREAMHEADER*);
- };
- class decoder: public stream
- {
- WAVEFORMATEX m_sFormat;
- faacDecHandle m_pHandle;
- bool m_bInitialized;
- unsigned char* m_pCache;
- int m_iCacheSize;
- public:
- decoder(WAVEFORMATEX* pF);
- ~decoder() { delete[] m_pCache; }
- virtual HRESULT reset();
- virtual HRESULT size(ACMDRVSTREAMSIZE*);
- virtual HRESULT convert(ACMDRVSTREAMHEADER*);
- };
- public:
- codec();
- ~codec();
- HRESULT formattag_details(ACMFORMATTAGDETAILSW* lParam1, DWORD lParam2);
- HRESULT format_details(ACMFORMATDETAILSW* lParam1, DWORD lParam2);
- HRESULT format_suggest(ACMDRVFORMATSUGGEST*);
- HRESULT details(ACMDRIVERDETAILSW*);
- HRESULT about(DWORD);
- HRESULT open(ACMDRVSTREAMINSTANCE*);
- HRESULT prepare(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);
- HRESULT reset(ACMDRVSTREAMINSTANCE*);
- HRESULT size(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMSIZE*);
- HRESULT unprepare(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);
- HRESULT convert(ACMDRVSTREAMINSTANCE*, ACMDRVSTREAMHEADER*);
- HRESULT close(ACMDRVSTREAMINSTANCE*);
-};
-
-#endif
-
-
--- a/plugins/aac_acm/msacmdrv.h
+++ /dev/null
@@ -1,178 +1,0 @@
-#ifndef _MSACMDRV_H
-#define _MSACMDRV_H
-
-#include <windows.h>
-#include <mmsystem.h>
-#include <mmreg.h>
-#include <vfw.h>
-#include <msacm.h>
-
-#define ACMDM_DRIVER_DETAILS (ACMDM_BASE + 10)
-#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
-#define ACMDM_FORMATTAG_DETAILS (ACMDM_BASE + 25)
-#define ACMDM_FORMAT_DETAILS (ACMDM_BASE + 26)
-#define ACMDM_FORMAT_SUGGEST (ACMDM_BASE + 27)
-
-#define ACMDM_STREAM_OPEN (ACMDM_BASE + 76)
-#define ACMDM_STREAM_CLOSE (ACMDM_BASE + 77)
-#define ACMDM_STREAM_SIZE (ACMDM_BASE + 78)
-#define ACMDM_STREAM_CONVERT (ACMDM_BASE + 79)
-#define ACMDM_STREAM_RESET (ACMDM_BASE + 80)
-#define ACMDM_STREAM_PREPARE (ACMDM_BASE + 81)
-#define ACMDM_STREAM_UNPREPARE (ACMDM_BASE + 82)
-#define ACMDM_STREAM_UPDATE (ACMDM_BASE + 83)
-
-typedef struct _ACMDRVOPENDESCA
-{
- DWORD cbStruct;
- FOURCC fccType;
- FOURCC fccComp;
- DWORD dwVersion;
- DWORD dwFlags;
- DWORD dwError;
- LPCSTR pszSectionName;
- LPCSTR pszAliasName;
- DWORD dnDevNode;
-} ACMDRVOPENDESCA, *PACMDRVOPENDESCA;
-
-typedef struct _ACMDRVOPENDESCW
-{
- DWORD cbStruct;
- FOURCC fccType;
- FOURCC fccComp;
- DWORD dwVersion;
- DWORD dwFlags;
- DWORD dwError;
- LPCWSTR pszSectionName;
- LPCWSTR pszAliasName;
- DWORD dnDevNode;
-} ACMDRVOPENDESCW, *PACMDRVOPENDESCW;
-
-typedef struct _ACMDRVOPENDESC16
-{
- DWORD cbStruct;
- FOURCC fccType;
- FOURCC fccComp;
- DWORD dwVersion;
- DWORD dwFlags;
- DWORD dwError;
- LPCSTR pszSectionName;
- LPCSTR pszAliasName;
- DWORD dnDevNode;
-} ACMDRVOPENDESC16, *NPACMDRVOPENDESC16, *LPACMDRVOPENDESC16;
-/*
-typedef struct _ACMDRVSTREAMINSTANCE16
-{
- DWORD cbStruct;
- LPWAVEFORMATEX pwfxSrc;
- LPWAVEFORMATEX pwfxDst;
- LPWAVEFILTER pwfltr;
- DWORD dwCallback;
- DWORD dwInstance;
- DWORD fdwOpen;
- DWORD fdwDriver;
- DWORD dwDriver;
- HACMSTREAM16 has;
-} ACMDRVSTREAMINSTANCE16, *NPACMDRVSTREAMINSTANCE16, *LPACMDRVSTREAMINSTANCE16;
-*/
-typedef struct _ACMDRVSTREAMINSTANCE
-{
- DWORD cbStruct;
- PWAVEFORMATEX pwfxSrc;
- PWAVEFORMATEX pwfxDst;
- PWAVEFILTER pwfltr;
- DWORD dwCallback;
- DWORD dwInstance;
- DWORD fdwOpen;
- DWORD fdwDriver;
- DWORD dwDriver;
- HACMSTREAM has;
-} ACMDRVSTREAMINSTANCE, *PACMDRVSTREAMINSTANCE;
-
-
-typedef struct _ACMDRVSTREAMHEADER16 *LPACMDRVSTREAMHEADER16;
-typedef struct _ACMDRVSTREAMHEADER16 {
- DWORD cbStruct;
- DWORD fdwStatus;
- DWORD dwUser;
- LPBYTE pbSrc;
- DWORD cbSrcLength;
- DWORD cbSrcLengthUsed;
- DWORD dwSrcUser;
- LPBYTE pbDst;
- DWORD cbDstLength;
- DWORD cbDstLengthUsed;
- DWORD dwDstUser;
-
- DWORD fdwConvert;
- LPACMDRVSTREAMHEADER16 *padshNext;
- DWORD fdwDriver;
- DWORD dwDriver;
-
- /* Internal fields for ACM */
- DWORD fdwPrepared;
- DWORD dwPrepared;
- LPBYTE pbPreparedSrc;
- DWORD cbPreparedSrcLength;
- LPBYTE pbPreparedDst;
- DWORD cbPreparedDstLength;
-} ACMDRVSTREAMHEADER16, *NPACMDRVSTREAMHEADER16;
-
-typedef struct _ACMDRVSTREAMHEADER *PACMDRVSTREAMHEADER;
-typedef struct _ACMDRVSTREAMHEADER {
- DWORD cbStruct;
- DWORD fdwStatus;
- DWORD dwUser;
- LPBYTE pbSrc;
- DWORD cbSrcLength;
- DWORD cbSrcLengthUsed;
- DWORD dwSrcUser;
- LPBYTE pbDst;
- DWORD cbDstLength;
- DWORD cbDstLengthUsed;
- DWORD dwDstUser;
-
- DWORD fdwConvert;
- PACMDRVSTREAMHEADER *padshNext;
- DWORD fdwDriver;
- DWORD dwDriver;
-
- /* Internal fields for ACM */
- DWORD fdwPrepared;
- DWORD dwPrepared;
- LPBYTE pbPreparedSrc;
- DWORD cbPreparedSrcLength;
- LPBYTE pbPreparedDst;
- DWORD cbPreparedDstLength;
-} ACMDRVSTREAMHEADER;
-
-typedef struct _ACMDRVSTREAMSIZE
-{
- DWORD cbStruct;
- DWORD fdwSize;
- DWORD cbSrcLength;
- DWORD cbDstLength;
-} ACMDRVSTREAMSIZE16, *NPACMDRVSTREAMSIZE16, *LPACMDRVSTREAMSIZE16,
- ACMDRVSTREAMSIZE, *PACMDRVSTREAMSIZE;
-
-typedef struct _ACMDRVFORMATSUGGEST16
-{
- DWORD cbStruct;
- DWORD fdwSuggest;
- LPWAVEFORMATEX pwfxSrc;
- DWORD cbwfxSrc;
- LPWAVEFORMATEX pwfxDst;
- DWORD cbwfxDst;
-} ACMDRVFORMATSUGGEST16, *NPACMDRVFORMATSUGGEST, *LPACMDRVFORMATSUGGEST;
-
-typedef struct _ACMDRVFORMATSUGGEST
-{
- DWORD cbStruct;
- DWORD fdwSuggest;
- PWAVEFORMATEX pwfxSrc;
- DWORD cbwfxSrc;
- PWAVEFORMATEX pwfxDst;
- DWORD cbwfxDst;
-} ACMDRVFORMATSUGGEST, *PACMDRVFORMATSUGGEST;
-
-#endif
--- a/plugins/cooledit/FAAC.dsp
+++ /dev/null
@@ -1,216 +1,0 @@
-# Microsoft Developer Studio Project File - Name="FAAC" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=FAAC - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "FAAC.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "FAAC.mak" CFG="FAAC - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "FAAC - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "FAAC - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "FAAC - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FAAC_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I "../../common/Cfaac" /I "../../../faad2/common/id3lib/include" /I "../../include" /I "../../../faad2/include" /I "../../../faad2/common/faad" /I "../../common/mp4v2" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x410 /d "NDEBUG"
-# ADD RSC /l 0x410 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /machine:I386 /out:"Release/FAAC.flt"
-
-!ELSEIF "$(CFG)" == "FAAC - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "FAAC_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../common/Cfaac" /I "../../../faad2/common/id3lib/include" /I "../../include" /I "../../../faad2/include" /I "../../../faad2/common/faad" /I "../../common/mp4v2" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x410 /d "_DEBUG"
-# ADD RSC /l 0x410 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"Debug\FAAC.flt" /pdbtype:sept
-# SUBTRACT LINK32 /nodefaultlib /force
-
-!ENDIF
-
-# Begin Target
-
-# Name "FAAC - Win32 Release"
-# Name "FAAC - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaac.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaad.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CRegistry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CTag.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\DecDialog.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\EncDialog.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Faac.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FAAC.def
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\FAAC.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\Faad.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Main.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaac.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaad.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CRegistry.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CTag.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\DecDialog.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Defines.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\EncDialog.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\faac.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\faad2\include\faad.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filters.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\resource.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\TypeDef.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\AudioCoding.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Email.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\id3v2.ico
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Mail.bmp
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\common\Cfaac\mpeg4ip-v.bmp"
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/plugins/cooledit/FAAC.dsw
+++ /dev/null
@@ -1,119 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "FAAC"=.\FAAC.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name libfaac
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libfaad
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libmp4v2_st
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name aacInfoLib
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name id3lib
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name zlib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "aacInfoLib"=.\aacInfoLib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "id3lib"=..\..\..\faad2\common\id3lib\libprj\id3lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libfaac"=..\..\libfaac\libfaac.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libfaad"=..\..\..\faad2\libfaad\libfaad.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libmp4v2_st"=..\..\..\faad2\common\mp4v2\libmp4v2_st60.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "zlib"=..\..\..\faad2\common\id3lib\zlib\prj\zlib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- /dev/null
+++ b/plugins/cooledit/FAAC.sln
@@ -1,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAAC", "FAAC.vcproj", "{DEC2740A-F3D5-430C-BB81-C57006D20378}"
+ ProjectSection(ProjectDependencies) = postProject
+ {2E6FD2E8-55B9-4740-8882-CF823F77F7E1} = {2E6FD2E8-55B9-4740-8882-CF823F77F7E1}
+ {429A062F-81E0-4EFD-832B-55E0DE931FC8} = {429A062F-81E0-4EFD-832B-55E0DE931FC8}
+ {BD8FBE75-314D-476B-B13C-A206C52F0BD1} = {BD8FBE75-314D-476B-B13C-A206C52F0BD1}
+ {7F01A591-0084-4749-B53F-F9D2BFE8DF6E} = {7F01A591-0084-4749-B53F-F9D2BFE8DF6E}
+ {6440BFC6-57A6-4F6E-A8FB-F960D088ADEE} = {6440BFC6-57A6-4F6E-A8FB-F960D088ADEE}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacInfoLib", "aacInfoLib.vcproj", "{3257D980-5029-486B-94DC-AA520B501C62}"
+EndProject
+Project("{059D6162-CD51-11D0-AE1F-00A0C90FFFC3}") = "id3lib", "..\..\..\faad2\common\id3lib\libprj\id3lib.dsp", "{7F01A591-0084-4749-B53F-F9D2BFE8DF6E}"
+EndProject
+Project("{059D6162-CD51-11D0-AE1F-00A0C90FFFC3}") = "libfaac", "..\..\libfaac\libfaac.dsp", "{2E6FD2E8-55B9-4740-8882-CF823F77F7E1}"
+EndProject
+Project("{059D6162-CD51-11D0-AE1F-00A0C90FFFC3}") = "libfaad", "..\..\..\faad2\libfaad\libfaad.dsp", "{429A062F-81E0-4EFD-832B-55E0DE931FC8}"
+EndProject
+Project("{059D6162-CD51-11D0-AE1F-00A0C90FFFC3}") = "libmp4v2_st", "..\..\..\faad2\common\mp4v2\libmp4v2_st60.dsp", "{BD8FBE75-314D-476B-B13C-A206C52F0BD1}"
+EndProject
+Project("{059D6162-CD51-11D0-AE1F-00A0C90FFFC3}") = "zlib", "..\..\..\faad2\common\id3lib\zlib\prj\zlib.dsp", "{6440BFC6-57A6-4F6E-A8FB-F960D088ADEE}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DEC2740A-F3D5-430C-BB81-C57006D20378}.Debug|Win32.ActiveCfg = Debug|Win32
+ {DEC2740A-F3D5-430C-BB81-C57006D20378}.Debug|Win32.Build.0 = Debug|Win32
+ {DEC2740A-F3D5-430C-BB81-C57006D20378}.Release|Win32.ActiveCfg = Release|Win32
+ {DEC2740A-F3D5-430C-BB81-C57006D20378}.Release|Win32.Build.0 = Release|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.Build.0 = Debug|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.ActiveCfg = Release|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
--- /dev/null
+++ b/plugins/cooledit/FAAC.vcproj
@@ -1,0 +1,521 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="FAAC"
+ ProjectGUID="{DEC2740A-F3D5-430C-BB81-C57006D20378}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/FAAC.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,../../common/Cfaac,../../../faad2/common/id3lib/include,../../include,../../../faad2/include,../../../faad2/common/faad,../../common/mp4v2"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;WIN32_LEAN_AND_MEAN"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/FAAC.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1040"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib odbc32.lib odbccp32.lib"
+ OutputFile="Release/FAAC.flt"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\FAAC.def"
+ ProgramDatabaseFile=".\Release/FAAC.pdb"
+ ImportLibrary=".\Release/FAAC.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/FAAC.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="2"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/FAAC.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,../../common/Cfaac,../../../faad2/common/id3lib/include,../../include,../../../faad2/include,../../../faad2/common/faad,../../common/mp4v2"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;WIN32_LEAN_AND_MEAN"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\Debug/FAAC.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1040"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib odbc32.lib odbccp32.lib"
+ OutputFile="Debug\FAAC.flt"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ ModuleDefinitionFile=".\FAAC.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/FAAC.pdb"
+ ImportLibrary=".\Debug/FAAC.lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/FAAC.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\common\Cfaac\Cfaac.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\Cfaad.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\CRegistry.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\CTag.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\DecDialog.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\EncDialog.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="Faac.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="FAAC.def"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\FAAC.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Audiocoding.com\repository\faac\common\Cfaac"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Audiocoding.com\repository\faac\common\Cfaac"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="Faad.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="Main.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\common\Cfaac\Cfaac.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\Cfaad.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\CRegistry.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\CTag.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\DecDialog.h"
+ >
+ </File>
+ <File
+ RelativePath="Defines.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\EncDialog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\faac.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\faad2\include\faad.h"
+ >
+ </File>
+ <File
+ RelativePath="Filters.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\TypeDef.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\..\common\Cfaac\AudioCoding.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\Email.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\id3v2.ico"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\Mail.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\Cfaac\mpeg4ip-v.bmp"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
--- a/plugins/cooledit/aacInfoLib.dsp
+++ /dev/null
@@ -1,112 +1,0 @@
-# Microsoft Developer Studio Project File - Name="aacInfoLib" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=aacInfoLib - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "aacInfoLib.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "aacInfoLib.mak" CFG="aacInfoLib - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "aacInfoLib - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "aacInfoLib - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "aacInfoLib - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "aacInfoLib___Win32_Release"
-# PROP BASE Intermediate_Dir "aacInfoLib___Win32_Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-MTL=midl.exe
-F90=df.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../faad2/common/faad" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD BASE RSC /l 0x410 /d "NDEBUG"
-# ADD RSC /l 0x410 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "aacInfoLib - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "aacInfoLib___Win32_Debug"
-# PROP BASE Intermediate_Dir "aacInfoLib___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-MTL=midl.exe
-F90=df.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../faad2/common/faad" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x410 /d "_DEBUG"
-# ADD RSC /l 0x410 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=xilink6.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "aacInfoLib - Win32 Release"
-# Name "aacInfoLib - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\..\faad2\common\faad\aacinfo.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\faad2\common\faad\filestream.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\common\faad\aacinfo.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\faad\filestream.h
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/plugins/cooledit/aacInfoLib.dsw
+++ /dev/null
@@ -1,29 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "aacInfoLib"=.\aacInfoLib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- /dev/null
+++ b/plugins/cooledit/aacInfoLib.sln
@@ -1,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacInfoLib", "aacInfoLib.vcproj", "{3257D980-5029-486B-94DC-AA520B501C62}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Debug|Win32.Build.0 = Debug|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.ActiveCfg = Release|Win32
+ {3257D980-5029-486B-94DC-AA520B501C62}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
--- /dev/null
+++ b/plugins/cooledit/aacInfoLib.vcproj
@@ -1,0 +1,235 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="aacInfoLib"
+ ProjectGUID="{3257D980-5029-486B-94DC-AA520B501C62}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../faad2/common/faad"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\Debug/aacInfoLib.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1040"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Debug\aacInfoLib.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Debug/aacInfoLib.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../../faad2/common/faad"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\Release/aacInfoLib.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1040"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\Release\aacInfoLib.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\Release/aacInfoLib.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\faad2\common\faad\aacinfo.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\faad2\common\faad\filestream.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\common\faad\aacinfo.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\common\faad\filestream.h"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
--- a/plugins/foo_faac/foo_faac.cpp
+++ /dev/null
@@ -1,805 +1,0 @@
-// FAAC encoder for foobar2000 diskwriter
-// Copyright (C) 2003 Janne Hyv�rinen
-//
-// Changes:
-// 0.4.2 (2003-12-14): Changed the gapless method again
-// 0.4.1 (2003-12-13): Added ctts field writing for MP4 mode
-// 0.4 (2003-12-11): Added support for average bitrate controlling
-// 0.3.5 (2003-10-17): Changed way gapless encoding is handled (iTunes is buggy...)
-// 0.3.4 (2003-10-14): Fixed AAC object type selecting
-// 0.3.3 (2003-10-02): Removed gapless support for raw AAC files, it was hacky and recent libfaad changes broke it
-// 0.3.2 (2003-09-17): Last fix wasn't perfect and very small input chunks wouldn't have been encoded
-// 0.3.1 (2003-09-14): Fixed possible memory access problems
-// 0.3 (2003-08-17): Even more corrections to MP4 writing, now encoder delay is taken into account and first MP4 sample is given length 0
-// writes 'TOOL' metadata tag with libfaac version string
-// 0.2.9 (2003-08-16): Fixes in MP4 writing
-// 0.2.8 (2003-08-16): Added silence padding at the end, new libfaac doesn't do it itself
-// 0.2.7 (2003-08-16): MP4 fixes, now MP4 header stores correct length
-// 0.2.6 (2003-08-16): MP4 writing uses correct length for last frame
-// 0.2.5 (2003-08-15): "libfaac flushing" added for 0.2.2 removed, foo_mp4 was cutting the end away incorrectly
-// 0.2.4 (2003-08-09): Added direct M4A writing and one new mode to bandwidth list
-// uses LFE mode with 6 channels
-// 0.2.3 (2003-08-08): Doesn't write tech info to APEv2 tags anymore
-// stores original file length now also for AAC
-// no longer limited to 32bit storage for length
-// changes to config
-// 0.2.2 (2003-08-07): Flushes libfaac now properly to get gapless playback
-// fixed bandwidth selecting issues in config
-// 0.2.1 (2003-08-07): Fixed MP4 writing
-// 0.2 (2003-08-07): Added MP4 creation and tagging, reorganized config
-// reports libfaac version in component info string
-// 0.1 (2003-08-06): First public version
-
-#include <mp4.h>
-#include "../SDK/foobar2000.h"
-#include "resource.h"
-#include <commctrl.h>
-#include <faac.h>
-#include <version.h>
-
-#define FOO_FAAC_VERSION "0.4.2"
-
-#define FF_AAC 0
-#define FF_MP4 1
-#define FF_M4A 2
-
-#define FF_DEFAULT_OBJECTTYPE LOW
-#define FF_DEFAULT_MIDSIDE 1
-#define FF_DEFAULT_TNS 0
-#define FF_DEFAULT_QUANTQUAL 100
-#define FF_DEFAULT_AVGBRATE 64
-#define FF_DEFAULT_CUTOFF -1
-#define FF_DEFAULT_MP4CONTAINER FF_MP4
-#define FF_DEFAULT_USE_QQ 1
-#define FF_DEFAULT_USE_AB 0
-
-static cfg_int cfg_objecttype ( "objecttype", FF_DEFAULT_OBJECTTYPE );
-static cfg_int cfg_midside ( "midside", FF_DEFAULT_MIDSIDE );
-static cfg_int cfg_tns ( "tns", FF_DEFAULT_TNS );
-static cfg_int cfg_quantqual ( "quantqual", FF_DEFAULT_QUANTQUAL );
-static cfg_int cfg_avgbrate ( "avgbrate", FF_DEFAULT_AVGBRATE );
-static cfg_int cfg_cutoff ( "cutoff", FF_DEFAULT_CUTOFF );
-static cfg_int cfg_mp4container ( "mp4container", FF_DEFAULT_MP4CONTAINER );
-static cfg_int cfg_use_qq ( "use_qq", FF_DEFAULT_USE_QQ );
-static cfg_int cfg_use_ab ( "use_ab", FF_DEFAULT_USE_AB );
-
-DECLARE_COMPONENT_VERSION ( "FAAC encoder", FOO_FAAC_VERSION, "Uses libfaac version " FAAC_VERSION );
-
-class diskwriter_faac : public diskwriter {
-private:
- // mp4
- MP4FileHandle MP4hFile;
- MP4TrackId MP4track;
-
- // faac
- faacEncHandle hEncoder;
- faacEncConfigurationPtr myFormat;
- unsigned int objectType;
- unsigned int useMidSide;
- unsigned int useTns;
- int cutOff;
- int bitRate;
- unsigned long quantqual;
- int use_qq, use_ab;
-
- int create_mp4;
-
- reader *m_reader;
- mem_block_t<unsigned char> bitbuf;
- mem_block_t<float> floatbuf;
- unsigned long samplesInput, maxBytesOutput;
- int *chanmap;
- unsigned int bufferedSamples;
- unsigned int frameSize;
-
- string8 path;
- file_info_i_full info;
- unsigned int srate, nch, bps;
- __int64 total_samples, encoded_samples, delay_samples;
- bool encode_error;
-
-public:
- diskwriter_faac()
- {
- objectType = cfg_objecttype;
- useMidSide = cfg_midside;
- useTns = cfg_tns;
- cutOff = cfg_cutoff;
- bitRate = cfg_avgbrate * 1000;
- quantqual = cfg_quantqual;
- use_qq = cfg_use_qq;
- use_ab = cfg_use_ab;
- hEncoder = 0;
- myFormat = 0;
-
- MP4hFile = 0;
- MP4track = 0;
-
- create_mp4 = cfg_mp4container;
-
- m_reader = 0;
- }
-
- ~diskwriter_faac()
- {
- if ( m_reader ) m_reader->reader_release();
- }
-
- virtual const char *get_name() { return "AAC"; }
-
- virtual const char *get_extension()
- {
- switch ( create_mp4 ) {
- case FF_MP4:
- default:
- return "mp4";
- case FF_M4A:
- return "m4a";
- case FF_AAC:
- return "aac";
- }
- }
-
- virtual int open ( const char *filename, metadb_handle *src_file )
- {
- if ( m_reader ) return 0;
-
- encode_error = false;
- path = filename;
- if ( src_file ) src_file->handle_query ( &info ); else info.reset();
-
- console::info ( "AAC encoding with FAAC version " FAAC_VERSION );
- console::info ( string_printf ("Source file: %s", (const char *)info.get_file_path()) );
- console::info ( string_printf ("Destination file: %s", (const char *)path) );
-
- if ( path.is_empty() ) {
- console::error ( "No destination name" );
- return 0;
- }
-
- m_reader = file::g_open ( path, reader::MODE_WRITE_NEW );
- if ( !m_reader ) {
- console::error ( "Can't write to destination" );
- return 0;
- }
-
- return 1;
- }
-
- virtual int process_samples ( const audio_chunk *src )
- {
- if ( encode_error ) return 0;
-
- if ( !hEncoder ) {
- encode_error = true;
- nch = src->get_channels();
- srate = src->get_srate();
-
- // get faac version
- hEncoder = faacEncOpen ( 44100, 2, &samplesInput, &maxBytesOutput );
- myFormat = faacEncGetCurrentConfiguration ( hEncoder );
-
- if ( myFormat->version == FAAC_CFG_VERSION ) {
- //console::info ( string_printf ("libfaac version %s", (const char *)myFormat->name) );
- faacEncClose ( hEncoder );
- } else {
- console::error ( "Wrong libfaac version" );
- faacEncClose ( hEncoder );
- hEncoder = 0;
- return 0;
- }
-
- // open the encoder library
- hEncoder = faacEncOpen ( srate, nch, &samplesInput, &maxBytesOutput );
-
- bufferedSamples = 0;
- frameSize = samplesInput / nch;
- total_samples = 0;
- encoded_samples = 0;
- delay_samples = frameSize;
- bitbuf.check_size ( maxBytesOutput );
- floatbuf.check_size ( samplesInput );
- chanmap = mkChanMap ( nch, 3/*chanC*/, 4/*chanLF*/ );
-
- if ( cutOff <= 0 ) {
- if ( cutOff < 0 ) {
- cutOff = 0;
- } else {
- cutOff = srate / 2;
- }
- }
- if ( (unsigned)cutOff > (srate / 2) ) cutOff = srate / 2;
-
- // put the options in the configuration struct
- myFormat = faacEncGetCurrentConfiguration ( hEncoder );
- myFormat->aacObjectType = objectType;
- myFormat->mpegVersion = (create_mp4 || objectType == LTP) ? MPEG4 : MPEG2;
- myFormat->useLfe = (nch == 6) ? 1 : 0;
- myFormat->useTns = useTns;
- myFormat->allowMidside = useMidSide;
- if ( use_ab ) myFormat->bitRate = bitRate;
- myFormat->bandWidth = cutOff;
- if ( use_qq ) myFormat->quantqual = quantqual;
- myFormat->outputFormat = create_mp4 ? 0 : 1;
- myFormat->inputFormat = FAAC_INPUT_FLOAT;
-
- if ( !faacEncSetConfiguration (hEncoder, myFormat) ) {
- console::error ( "Unsupported output format" );
- return 0;
- }
-
- // initialize MP4 creation
- if ( create_mp4 ) {
- MP4hFile = MP4CreateCb ( 0, 0, 0, open_cb, close_cb, read_cb, write_cb, setpos_cb, getpos_cb, filesize_cb, (void *)m_reader );
- if ( MP4hFile == MP4_INVALID_FILE_HANDLE ) {
- console::error ( "MP4Create() failed" );
- return 0;
- }
-
- MP4SetTimeScale ( MP4hFile, 90000 );
-
- MP4track = MP4AddAudioTrack ( MP4hFile, srate, MP4_INVALID_DURATION, MP4_MPEG4_AUDIO_TYPE );
-
- MP4SetAudioProfileLevel ( MP4hFile, 0x0F );
-
- unsigned char *ASC = 0;
- unsigned long ASCLength = 0;
- faacEncGetDecoderSpecificInfo(hEncoder, &ASC, &ASCLength);
-
- MP4SetTrackESConfiguration ( MP4hFile, MP4track, (u_int8_t *)ASC, ASCLength );
- }
-
- cutOff = myFormat->bandWidth;
- quantqual = myFormat->quantqual;
- bitRate = myFormat->bitRate;
-
- if ( bitRate > 0 ) {
- console::info ( string_printf ("Using quantizer quality %i and average bitrate of %i kbps per channel", quantqual, bitRate/1000) );
- } else {
- console::info ( string_printf ("Using quantizer quality %i and no average bitrate control", quantqual, bitRate) );
- }
-
- encode_error = false;
- }
-
- if ( srate != src->get_srate() || nch != src->get_channels() ) return 0;
-
- {
- unsigned int samples = src->get_sample_count() * nch;
- const audio_sample *s = src->get_data();
-
- do {
- unsigned int num = (samples+bufferedSamples < samplesInput) ? samples+bufferedSamples : samplesInput;
- if ( num == 0 ) break;
-
- float *d = (float *)floatbuf.get_ptr() + bufferedSamples;
-
- for ( unsigned int i = bufferedSamples; i < num; i++ ) {
- *d++ = (float)((*s++) * 32768.);
-
- bufferedSamples++;
- samples--;
- }
-
- if ( bufferedSamples == samplesInput ) {
- if ( nch >= 3 && chanmap ) {
- chan_remap ( (int *)floatbuf.get_ptr(), nch, frameSize, chanmap );
- }
-
- // call the actual encoding routine
- int bytesWritten = faacEncEncode ( hEncoder, (int32_t *)floatbuf.get_ptr(), samplesInput, bitbuf.get_ptr(), maxBytesOutput );
-
- bufferedSamples = 0;
-
- if ( bytesWritten < 0 ) {
- console::error ( "faacEncEncode() failed" );
- return 0;
- }
-
- if ( bytesWritten > 0 ) {
- MP4Duration dur = frameSize;
- MP4Duration ofs = 0;
-
- if ( delay_samples > 0 ) {
- dur = 0;
- ofs = delay_samples;
- delay_samples -= frameSize;
- }
-
- if ( create_mp4 ) {
- MP4WriteSample ( MP4hFile, MP4track, (const unsigned __int8 *)bitbuf.get_ptr(), bytesWritten, frameSize, ofs );
- } else {
- m_reader->write ( bitbuf.get_ptr(), bytesWritten );
- }
-
- encoded_samples += dur;
- }
- }
- } while ( bufferedSamples == 0 );
- }
-
- total_samples += src->get_sample_count();
-
- return 1;
- }
-
- virtual void flush()
- {
- if ( hEncoder ) {
- if ( nch >= 3 && chanmap ) {
- chan_remap ( (int *)floatbuf.get_ptr(), nch, bufferedSamples/nch, chanmap );
- }
-
- __int64 samples_left = total_samples - encoded_samples;
-
- while ( samples_left > 0 ) {
- if ( !bufferedSamples ) {
- bufferedSamples = samplesInput;
- memset ( floatbuf.get_ptr(), 0, samplesInput * sizeof(float) );
- }
-
- int bytesWritten = faacEncEncode ( hEncoder, (int32_t *)floatbuf.get_ptr(), bufferedSamples, bitbuf.get_ptr(), maxBytesOutput );
- bufferedSamples = 0;
-
- if ( bytesWritten < 0 ) {
- console::error ( "faacEncEncode() failed" );
- break;
- }
- else if ( bytesWritten > 0 ) {
- MP4Duration dur = samples_left > frameSize ? frameSize : samples_left;
-
- if ( create_mp4 ) {
- MP4WriteSample ( MP4hFile, MP4track, (const unsigned __int8 *)bitbuf.get_ptr(), bytesWritten, dur );
- } else {
- m_reader->write ( bitbuf.get_ptr(), bytesWritten );
- }
-
- samples_left -= frameSize;
- }
- }
-
- faacEncClose ( hEncoder );
- hEncoder = 0;
- }
-
- if ( m_reader ) {
- bool success = !encode_error && (m_reader->get_length() > 0);
-
- if ( success ) {
- write_tag();
- console::info ( "Encoding finished successfully" );
- }
-
- if ( create_mp4 ) {
- MP4Close ( MP4hFile );
- MP4hFile = 0;
- }
-
- m_reader->reader_release();
- m_reader = 0;
-
- if ( !success ) {
- console::info ( "Encoding failed" );
- file::g_remove ( path );
- }
- }
- }
-
- virtual const char *get_config_page_name() { return "FAAC encoder"; }
-
-private:
- int write_tag()
- {
- info.info_remove_all();
-
- if ( !create_mp4 ) {
- return tag_writer::g_run ( m_reader, &info, "ape" );
- } else {
- MP4SetMetadataTool ( MP4hFile, "libfaac version " FAAC_VERSION );
-
- for ( int i = 0; i < info.meta_get_count(); i++ ) {
- char *pName = (char *)info.meta_enum_name ( i );
- const char *val = info.meta_enum_value ( i );
- if ( !val || (val && !(*val)) ) continue;
-
- if ( !stricmp (pName, "TITLE") ) {
- MP4SetMetadataName ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "ARTIST") ) {
- MP4SetMetadataArtist ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "WRITER") ) {
- MP4SetMetadataWriter ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "ALBUM") ) {
- MP4SetMetadataAlbum ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "YEAR") || !stricmp (pName, "DATE") ) {
- MP4SetMetadataYear ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "COMMENT") ) {
- MP4SetMetadataComment ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "GENRE") ) {
- MP4SetMetadataGenre ( MP4hFile, val );
- }
- else if ( !stricmp (pName, "TRACKNUMBER") ) {
- unsigned __int16 trkn = atoi ( val ), tot = 0;
- MP4SetMetadataTrack ( MP4hFile, trkn, tot );
- }
- else if ( !stricmp (pName, "DISKNUMBER") || !stricmp (pName, "DISC") ) {
- unsigned __int16 disk = atoi ( val ), tot = 0;
- MP4SetMetadataDisk ( MP4hFile, disk, tot );
- }
- else if ( !stricmp (pName, "COMPILATION") ) {
- unsigned __int8 cpil = atoi ( val );
- MP4SetMetadataCompilation ( MP4hFile, cpil );
- }
- else if ( !stricmp (pName, "TEMPO") ) {
- unsigned __int16 tempo = atoi ( val );
- MP4SetMetadataTempo ( MP4hFile, tempo );
- } else {
- MP4SetMetadataFreeForm ( MP4hFile, pName, (unsigned __int8*)val, strlen(val) );
- }
- }
-
- return 1;
- }
- }
-
- int *mkChanMap ( int channels, int center, int lf )
- {
- if ( !center && !lf ) return 0;
- if ( channels < 3 ) return 0;
-
- if ( lf > 0 ) {
- lf--;
- } else {
- lf = channels - 1; // default AAC position
- }
-
- if ( center > 0 ) {
- center--;
- } else {
- center = 0; // default AAC position
- }
-
- int *map = (int *)calloc ( channels, sizeof(map[0]) );
-
- int outpos = 0;
- if ( (center >= 0) && (center < channels) ) map[outpos++] = center;
-
- int inpos = 0;
- for ( ; outpos < (channels - 1); inpos++ ) {
- if ( inpos == center ) continue;
- if ( inpos == lf ) continue;
-
- map[outpos++] = inpos;
- }
-
- if ( outpos < channels ) {
- if ( (lf >= 0) && (lf < channels) ) {
- map[outpos] = lf;
- } else {
- map[outpos] = inpos;
- }
- }
-
- return map;
- }
-
- void chan_remap ( int *buf, unsigned int channels, unsigned int blocks, int *map )
- {
- int *tmp = (int *)alloca ( channels * sizeof(int) );
-
- for ( unsigned int i = 0; i < blocks; i++ ) {
- memcpy ( tmp, buf + i * channels, sizeof(int) * channels );
-
- for ( unsigned int chn = 0; chn < channels; chn++ ) {
- buf[i * channels + chn] = tmp[map[chn]];
- }
- }
- }
-
- // MP4 I/O callbacks
- static unsigned __int32 open_cb ( const char *pName, const char *mode, void *userData ) { return 1; }
-
- static void close_cb ( void *userData ) { return; }
-
- static unsigned __int32 read_cb ( void *pBuffer, unsigned int nBytesToRead, void *userData )
- {
- reader *r = (reader *)userData;
- return r->read ( pBuffer, nBytesToRead );
- }
-
- static unsigned __int32 write_cb ( void *pBuffer, unsigned int nBytesToWrite, void *userData )
- {
- reader *r = (reader *)userData;
- return r->write ( pBuffer, nBytesToWrite );
- }
-
- static __int64 getpos_cb ( void *userData )
- {
- reader *r = (reader *)userData;
- return r->get_position();
- }
-
- static __int32 setpos_cb ( unsigned __int32 pos, void *userData )
- {
- reader *r = (reader *)userData;
- return !r->seek ( pos );
- }
-
- static __int64 filesize_cb ( void *userData )
- {
- reader *r = (reader *)userData;
- return r->get_length();
- }
-};
-
-// -------------------------------------
-
-typedef struct {
- int mp4;
- char name[4];
-} format_list_t;
-
-static format_list_t format_list[] = {
- { FF_MP4, "MP4" },
- { FF_M4A, "M4A" },
- { FF_AAC, "AAC" },
-};
-
-typedef struct {
- int profile;
- char name[6];
-} profile_list_t;
-
-static profile_list_t profile_list[] = {
- { LOW, "LC" },
- { MAIN, "Main" },
- { LTP, "LTP" },
-};
-
-typedef struct {
- int cutoff;
- char name[10];
-} cutoff_list_t;
-
-static cutoff_list_t cutoff_list[] = {
- { -1, "Automatic" },
- { 0, "Full" },
- { 20000, "20000" },
- { 19000, "19000" },
- { 18000, "18000" },
- { 17000, "17000" },
- { 16000, "16000" },
- { 15000, "15000" },
- { 14000, "14000" },
- { 13000, "13000" },
- { 12000, "12000" },
- { 11000, "11000" },
- { 10000, "10000" },
-};
-
-#define QQ_MIN 10
-#define QQ_MAX 500
-#define AB_MIN 8
-#define AB_MAX 384
-
-class config_faac : public config {
- static void update ( HWND wnd )
- {
- int i;
- HWND wnd_format = GetDlgItem ( wnd, IDC_FORMAT );
- HWND wnd_profile = GetDlgItem ( wnd, IDC_PROFILE );
- HWND wnd_cutoff = GetDlgItem ( wnd, IDC_CUTOFF );
-
- for ( i = 0; i < sizeof(format_list)/sizeof(*format_list); i++ ) {
- if ( (cfg_mp4container == format_list[i].mp4) ) {
- uSendMessage ( wnd_format, CB_SETCURSEL, i, 0 );
- break;
- }
- }
-
- for ( i = 0; i < sizeof(profile_list)/sizeof(*profile_list); i++ ) {
- if ( cfg_objecttype == profile_list[i].profile ) {
- uSendMessage ( wnd_profile, CB_SETCURSEL, i, 0 );
- break;
- }
- }
-
- bool cutoff_found = false;
-
- for ( i = 0; i < sizeof(cutoff_list)/sizeof(*cutoff_list); i++ ) {
- if ( cfg_cutoff == cutoff_list[i].cutoff ) {
- uSendMessage ( wnd_cutoff, CB_SETCURSEL, i, 0 );
- cutoff_found = true;
- break;
- }
- }
-
- if ( !cutoff_found ) uSetDlgItemText ( wnd, IDC_CUTOFF, string_printf ("%i", (int)cfg_cutoff) );
-
- uSendDlgItemMessage ( wnd, IDC_QUANTQUAL_SLIDER, TBM_SETPOS, 1, cfg_quantqual );
- uSetDlgItemText ( wnd, IDC_QUANTQUAL_EDIT, string_printf ("%i", (int)cfg_quantqual) );
-
- uSendDlgItemMessage ( wnd, IDC_AVGBRATE_SLIDER, TBM_SETPOS, 1, cfg_avgbrate );
- uSetDlgItemText ( wnd, IDC_AVGBRATE_EDIT, string_printf ("%i", (int)cfg_avgbrate) );
-
- CheckDlgButton ( wnd, IDC_USE_QQ, cfg_use_qq );
- CheckDlgButton ( wnd, IDC_USE_AB, cfg_use_ab );
-
- CheckDlgButton ( wnd, IDC_MIDSIDE, cfg_midside );
- CheckDlgButton ( wnd, IDC_TNS, cfg_tns );
- }
-
- static BOOL CALLBACK ConfigProc ( HWND wnd, UINT msg, WPARAM wp, LPARAM lp )
- {
- HWND wnd_format = GetDlgItem ( wnd, IDC_FORMAT );
- HWND wnd_profile = GetDlgItem ( wnd, IDC_PROFILE );
- HWND wnd_cutoff = GetDlgItem ( wnd, IDC_CUTOFF );
-
- switch ( msg ) {
- case WM_INITDIALOG:
- {
- int i;
-
- for ( i = 0; i < sizeof(format_list)/sizeof(*format_list); i++ ) {
- uSendMessageText ( wnd_format, CB_ADDSTRING, 0, format_list[i].name );
- }
-
- for ( i = 0; i < sizeof(profile_list)/sizeof(*profile_list); i++ ) {
- uSendMessageText ( wnd_profile, CB_ADDSTRING, 0, profile_list[i].name );
- }
-
- for ( i = 0; i < sizeof(cutoff_list)/sizeof(*cutoff_list); i++ ) {
- uSendMessageText ( wnd_cutoff, CB_ADDSTRING, 0, cutoff_list[i].name );
- }
-
- uSendDlgItemMessage ( wnd, IDC_QUANTQUAL_SLIDER, TBM_SETRANGE, 0, MAKELONG(QQ_MIN, QQ_MAX) );
- uSendDlgItemMessage ( wnd, IDC_AVGBRATE_SLIDER, TBM_SETRANGE, 0, MAKELONG(AB_MIN, AB_MAX) );
-
- update ( wnd );
- }
- return TRUE;
-
- case WM_COMMAND:
- switch ( wp ) {
- case IDC_FORMAT | (CBN_SELCHANGE<<16):
- {
- int t = (int)uSendMessage ( wnd_format, CB_GETCURSEL, 0, 0 );
- if ( t >= 0 ) cfg_mp4container = format_list[t].mp4;
- }
- break;
-
- case IDC_PROFILE | (CBN_SELCHANGE<<16):
- {
- int t = (int)uSendMessage ( wnd_profile, CB_GETCURSEL, 0, 0 );
- if ( t >= 0 ) cfg_objecttype = profile_list[t].profile;
- }
- break;
-
- case IDC_QUANTQUAL_EDIT | (EN_KILLFOCUS<<16):
- {
- cfg_quantqual = GetDlgItemInt ( wnd, IDC_QUANTQUAL_EDIT, 0, 0 );
- if ( cfg_quantqual < QQ_MIN || cfg_quantqual > QQ_MAX ) {
- if ( cfg_quantqual < QQ_MIN ) {
- cfg_quantqual = QQ_MIN;
- } else {
- cfg_quantqual = QQ_MAX;
- }
- uSetDlgItemText ( wnd, IDC_QUANTQUAL_EDIT, string_printf ("%i", (int)cfg_quantqual) );
- }
- uSendDlgItemMessage ( wnd, IDC_QUANTQUAL_SLIDER, TBM_SETPOS, 1, cfg_quantqual );
- }
- break;
-
- case IDC_AVGBRATE_EDIT | (EN_KILLFOCUS<<16):
- {
- cfg_avgbrate = GetDlgItemInt ( wnd, IDC_AVGBRATE_EDIT, 0, 0 );
- if ( cfg_avgbrate < AB_MIN || cfg_quantqual > AB_MAX ) {
- if ( cfg_avgbrate< AB_MIN ) {
- cfg_avgbrate = AB_MIN;
- } else {
- cfg_avgbrate = AB_MAX;
- }
- uSetDlgItemText ( wnd, IDC_AVGBRATE_EDIT, string_printf ("%i", (int)cfg_avgbrate) );
- }
- uSendDlgItemMessage ( wnd, IDC_AVGBRATE_SLIDER, TBM_SETPOS, 1, cfg_avgbrate );
- }
- break;
-
- case IDC_CUTOFF | (CBN_SELCHANGE<<16):
- {
- int t = (int)uSendMessage ( wnd_cutoff, CB_GETCURSEL, 0, 0 );
- if ( t >= 0 ) cfg_cutoff = cutoff_list[t].cutoff;
- }
- break;
-
- case IDC_CUTOFF | (CBN_KILLFOCUS<<16):
- {
- int t = (int)uSendMessage ( wnd_cutoff, CB_GETCURSEL, 0, 0 );
- if ( t < 0 ) {
- cfg_cutoff = GetDlgItemInt ( wnd, IDC_CUTOFF, 0, 0 );
- if ( cfg_cutoff > 0 && cfg_cutoff < 100 ) {
- cfg_cutoff = 100;
- uSetDlgItemText ( wnd, IDC_CUTOFF, string_printf ("%i", (int)cfg_cutoff) );
- }
- else if ( cfg_cutoff <= 0 ) {
- uSendMessage ( wnd_cutoff, CB_SETCURSEL, 0, 0 );
- cfg_cutoff = cutoff_list[0].cutoff;
- }
- }
- }
- break;
-
- case IDC_MIDSIDE:
- {
- cfg_midside = !cfg_midside;
- }
- break;
-
- case IDC_TNS:
- {
- cfg_tns = !cfg_tns;
- }
- break;
-
- case IDC_USE_QQ:
- {
- cfg_use_qq = !cfg_use_qq;
- }
- break;
-
- case IDC_USE_AB:
- {
- cfg_use_ab = !cfg_use_ab;
- }
- break;
-
- case IDC_DEFAULTS:
- {
- cfg_objecttype = FF_DEFAULT_OBJECTTYPE;
- cfg_midside = FF_DEFAULT_MIDSIDE;
- cfg_tns = FF_DEFAULT_TNS;
- cfg_avgbrate = FF_DEFAULT_AVGBRATE;
- cfg_quantqual = FF_DEFAULT_QUANTQUAL;
- cfg_cutoff = FF_DEFAULT_CUTOFF;
- cfg_use_qq = FF_DEFAULT_USE_QQ;
- cfg_use_ab = FF_DEFAULT_USE_AB;
- update ( wnd );
- }
- break;
- }
- break;
-
- case WM_HSCROLL:
- switch ( uGetWindowLong((HWND)lp, GWL_ID) ) {
- case IDC_QUANTQUAL_SLIDER:
- cfg_quantqual = uSendMessage ( (HWND)lp, TBM_GETPOS, 0, 0 );
- uSetDlgItemText ( wnd, IDC_QUANTQUAL_EDIT, string_printf ("%i", (int)cfg_quantqual) );
- break;
-
- case IDC_AVGBRATE_SLIDER:
- cfg_avgbrate = uSendMessage ( (HWND)lp, TBM_GETPOS, 0, 0 );
- uSetDlgItemText ( wnd, IDC_AVGBRATE_EDIT, string_printf ("%i", (int)cfg_avgbrate) );
- break;
- }
- break;
- }
-
- return FALSE;
- }
-
- virtual HWND create ( HWND parent ) {
- return uCreateDialog ( IDD_CONFIG, parent, ConfigProc );
- }
-
- virtual const char *get_name() { return "FAAC encoder"; }
-
- virtual const char *get_parent_name() { return "Diskwriter"; }
-};
-
-static service_factory_t<diskwriter, diskwriter_faac> foo_faac;
-static service_factory_single_t<config, config_faac> foo_faac_cfg;
--- a/plugins/foo_faac/foo_faac.dsp
+++ /dev/null
@@ -1,116 +1,0 @@
-# Microsoft Developer Studio Project File - Name="foo_faac" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=foo_faac - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "foo_faac.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "foo_faac.mak" CFG="foo_faac - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "foo_faac - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "foo_faac - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "foo_faac - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "foo_faac_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /G6 /MD /W3 /O1 /I "../../../faac/include" /I "../../../faac/libfaac" /I "..\..\..\faad2\common\mp4v2" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /machine:I386
-
-!ELSEIF "$(CFG)" == "foo_faac - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "foo_faac_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../faac/include" /I "../../../faac/libfaac" /I "..\..\..\faad2\common\mp4v2" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "foo_faac - Win32 Release"
-# Name "foo_faac - Win32 Debug"
-# Begin Group "faac"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\..\..\faac\include\faac.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\faac\libfaac\version.h
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\foo_faac.cpp
-# ADD CPP /I "../SDK" /I "../../mpc/include" /I "../../ogg/include"
-# End Source File
-# Begin Source File
-
-SOURCE=.\foo_faac.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\resource.h
-# End Source File
-# End Target
-# End Project
--- a/plugins/foo_faac/foo_faac.dsw
+++ /dev/null
@@ -1,125 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "foo_faac"=.\foo_faac.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name foobar2000_SDK
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name pfc
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name foobar2000_component_client
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libfaac
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name utf8api
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libmp4v2_cb
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "foobar2000_SDK"=..\SDK\foobar2000_SDK.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name utf8api
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "foobar2000_component_client"=..\foobar2000_component_client\foobar2000_component_client.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libfaac"=..\..\..\faac\libfaac\libfaac.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libmp4v2_cb"=..\..\..\faad2\common\mp4v2\libmp4v2_cb.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "pfc"=..\..\pfc\pfc.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "utf8api"=..\utf8api\utf8api.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name pfc
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- a/plugins/foo_faac/foo_faac.rc
+++ /dev/null
@@ -1,121 +1,0 @@
-//Microsoft Developer Studio 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
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO DISCARDABLE
-BEGIN
- IDD_CONFIG, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 293
- TOPMARGIN, 7
- BOTTOMMARGIN, 183
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_CONFIG DIALOG DISCARDABLE 0, 0, 300, 190
-STYLE WS_CHILD
-FONT 8, "Tahoma"
-BEGIN
- LTEXT "Output format:",IDC_STATIC,13,16,54,8
- COMBOBOX IDC_FORMAT,68,14,53,50,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- LTEXT "AAC profile:",IDC_STATIC,21,76,42,8
- COMBOBOX IDC_PROFILE,81,74,60,64,CBS_DROPDOWNLIST | WS_VSCROLL |
- WS_TABSTOP
- EDITTEXT IDC_QUANTQUAL_EDIT,233,41,32,12,ES_CENTER |
- ES_AUTOHSCROLL | ES_NUMBER
- LTEXT "Bandwidth (Hz):",IDC_STATIC,21,92,56,8
- CONTROL "Use mid/side coding",IDC_MIDSIDE,"Button",
- BS_AUTOCHECKBOX | WS_TABSTOP,21,107,79,10
- CONTROL "Use TNS",IDC_TNS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
- 21,120,43,10
- COMBOBOX IDC_CUTOFF,81,90,60,160,CBS_DROPDOWN | WS_VSCROLL |
- WS_TABSTOP
- CONTROL "Slider2",IDC_QUANTQUAL_SLIDER,"msctls_trackbar32",
- WS_TABSTOP,97,41,132,11
- GROUPBOX "Encoder settings",IDC_STATIC,14,31,258,107
- PUSHBUTTON "Defaults",IDC_DEFAULTS,225,116,40,14
- CONTROL "Quantizer quality:",IDC_USE_QQ,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,21,43,73,10
- CONTROL "Bitrate/ch (kbps):",IDC_USE_AB,"Button",BS_AUTOCHECKBOX |
- WS_TABSTOP,21,58,72,10
- CONTROL "Slider2",IDC_AVGBRATE_SLIDER,"msctls_trackbar32",
- WS_TABSTOP,97,57,132,11
- EDITTEXT IDC_AVGBRATE_EDIT,233,57,32,12,ES_CENTER |
- ES_AUTOHSCROLL | ES_NUMBER
-END
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
--- a/plugins/foo_faac/resource.h
+++ /dev/null
@@ -1,28 +1,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by foo_faac.rc
-//
-#define IDD_CONFIG 116
-#define IDC_FORMAT 1000
-#define IDC_USE_QQ 1001
-#define IDC_USE_AB 1002
-#define IDC_QUANTQUAL_SLIDER 1003
-#define IDC_AVGBRATE_SLIDER 1004
-#define IDC_QUANTQUAL_EDIT 1005
-#define IDC_AVGBRATE_EDIT 1006
-#define IDC_PROFILE 1007
-#define IDC_CUTOFF 1008
-#define IDC_MIDSIDE 1009
-#define IDC_TNS 1010
-#define IDC_DEFAULTS 1011
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 105
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1012
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
--- a/plugins/winamp/.cvsignore
+++ /dev/null
@@ -1,14 +1,0 @@
-*.o
-*.so
-*.a
-*.ncb
-*.plg
-*.aps
-*.opt
-*.aac
-*.wav
-Release
-Debug
-ReleaseGUI
-DebugGUI
-out_FAAC.suo
\ No newline at end of file
--- a/plugins/winamp/Copying
+++ /dev/null
@@ -1,339 +1,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19yy name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License.
--- a/plugins/winamp/FILTERS.H
+++ /dev/null
@@ -1,121 +1,0 @@
-//////////////////////////////////////////////////////
-// GENERAL PURPOSE DEFS FOR CREATING CUSTOM FILTERS //
-//////////////////////////////////////////////////////
-
-
-typedef struct riffspecialdata_t
-{ HANDLE hSpecialData;
- HANDLE hData; // Actual data handle
- DWORD dwSize; // size of data in handle
- DWORD dwExtra; // optional extra data (usually a count)
- char szListType[8]; // Parent list type (usually "WAVE" or "INFO", or "adtl")
- char szType[8]; // Usually a four character code for data, but can be up to 7 chars
-} SPECIALDATA;
-
-// "CUE " dwExtra=number of cues, each cue is 8 bytes ([4] name [4] sample offset)
-// "LTXT" dwExtra=number of items, each one is 8 bytes ([4] ltxt len [4] name [4] cue length [4] purpose [n] data)
-// "NOTE" dwExtra=number of strings, each one is n bytes ([4] name [n-4] length zero term)
-// "LABL" dwExtra=number of strings, each one is n bytes ([4] name [n-4] length zero term)
-// "PLST" dwExtra=number if items, each one is 16 bytes ([4] name [4] dwLen [4] dwLoops [4] dwMode)
-
-
-// For special data, .FLT must implement FilterGetFirstSpecialData and FilterGetNextSpecialData
-
-
-typedef DWORD FOURCC; // a four character code
-
-struct cue_type { DWORD dwName;
- DWORD dwPosition;
- FOURCC fccChunk;
- DWORD dwChunkStart;
- DWORD dwBlockStart;
- DWORD dwSampleOffset;
- };
-
-struct play_type {DWORD dwName;
- DWORD dwLength;
- DWORD dwLoops;
- };
-
-
-typedef struct coolquery_tag
- {char szName[24];
- char szCopyright[80];
-
- // rate table, bits are set for modes that can be handled
- WORD Quad32; // Quads are 3-D encoded
- WORD Quad16;
- WORD Quad8;
- WORD Stereo8; // rates are from lowest bit:
- WORD Stereo12; // bit 0 set: 5500 (5512.5)
- WORD Stereo16; // bit 1 set: 11025 (11K)
- WORD Stereo24; // bit 2 set: 22050 (22K)
- WORD Stereo32; // bit 3 set: 32075 (32K, or 32000)
- WORD Mono8; // bit 4 set: 44100 (44K)
- WORD Mono12; // bit 5 set: 48000 (48K)
- WORD Mono16; // bit 6 set: 88200 (88K) (future ultra-sonic rates?)
- WORD Mono24; // bit 7 set: 96000 (96K)
- WORD Mono32; // bit 8 set: 132300 (132K)
- // bit 9 set: 176400 (176K)
- DWORD dwFlags;
- char szExt[4];
- long lChunkSize;
- char szExt2[4];
- char szExt3[4];
- char szExt4[4];
- } COOLQUERY;
-
-#define R_5500 1
-#define R_11025 2
-#define R_22050 4
-#define R_32075 8
-#define R_44100 16
-#define R_48000 32
-#define R_88200 64
-#define R_96000 128
-#define R_132300 256
-#define R_176400 512
-
-#define C_VALIDLIBRARY 1154
-
-#define QF_RATEADJUSTABLE 0x001 // if can handle non-standard sample rates
- // if not, only rates in bit rate table understood
-#define QF_CANSAVE 0x002
-#define QF_CANLOAD 0x004
-#define QF_UNDERSTANDSALL 0x008 // will read ANYTHING, so it is the last resort if no other
- // formats match
-#define QF_READSPECIALFIRST 0x010 // read special info before trying to read data
-#define QF_READSPECIALLAST 0x020 // read special info after reading data
-#define QF_WRITESPECIALFIRST 0x040 // when writing a file, special info is sent to DLL before data
-#define QF_WRITESPECIALLAST 0x080 // when writing, special info is sent to DLL after data
-#define QF_HASOPTIONSBOX 0x100 // set if options box implemented
-#define QF_NOASKFORCONVERT 0x200 // set to bypass asking for conversion if original in different rate, auto convert
-#define QF_NOHEADER 0x400 // set if this is a raw data format with no header
-#define QF_CANDO32BITFLOATS 0x800 // set if file format can handle 32-bit sample data for input
-#define QF_CANOPENVIRTUAL 0x1000 // Set if data is in Intel 8-bit or 16-bit sample format, or floats
- // and the GetDataOffset() function is implemented
-
-// special types are read from and written to DLL in the order below
-/*
-// special types (particular to Windows waveforms)
-#define SP_IART 20
-#define SP_ICMT 21
-#define SP_ICOP 22
-#define SP_ICRD 23
-#define SP_IENG 24
-#define SP_IGNR 25
-#define SP_IKEY 26
-#define SP_IMED 27
-#define SP_INAM 28
-#define SP_ISFT 29
-#define SP_ISRC 30
-#define SP_ITCH 31
-#define SP_ISBJ 32
-#define SP_ISRF 33
-#define SP_DISP 34
-#define SP_CUE 40 // returns number of cues of size cue_type
-#define SP_LTXT 41 // returns number of adtl texts of size 8 (4,id and 4,len)
-#define SP_NOTE 42 // returns LO=size, HI=number of strings (sz sz sz...)
-#define SP_LABL 43 // returns LO=size, HI=number of strings (sz sz sz...)
-#define SP_PLST 44 // returns number of playlist entries size play_type
-*/
\ No newline at end of file
--- a/plugins/winamp/OUT.H
+++ /dev/null
@@ -1,63 +1,0 @@
-#define OUT_VER 0x10
-/*
-#ifdef __cplusplus
-extern "C" {
-#endif
-*/
-
-
-typedef struct
-{
- int version; // module version (OUT_VER)
- char *description; // description of module, with version string
- int id; // module id. each input module gets its own. non-nullsoft modules should
- // be >= 65536.
-
- HWND hMainWindow; // winamp's main window (filled in by winamp)
- HINSTANCE hDllInstance; // DLL instance handle (filled in by winamp)
-
- void (*Config)(HWND hwndParent); // configuration dialog
- void (*About)(HWND hwndParent); // about dialog
-
- void (*Init)(); // called when loaded
- void (*Quit)(); // called when unloaded
-
- int (*Open)(int samplerate, int numchannels, int bitspersamp, int bufferlenms, int prebufferms);
- // returns >=0 on success, <0 on failure
- // NOTENOTENOTE: bufferlenms and prebufferms are ignored in most if not all output plug-ins.
- // ... so don't expect the max latency returned to be what you asked for.
- // returns max latency in ms (0 for diskwriters, etc)
- // bufferlenms and prebufferms must be in ms. 0 to use defaults.
- // prebufferms must be <= bufferlenms
-
- void (*Close)(); // close the ol' output device.
-
- int (*Write)(char *buf, int len);
- // 0 on success. Len == bytes to write (<= 8192 always). buf is straight audio data.
- // 1 returns not able to write (yet). Non-blocking, always.
-
- int (*CanWrite)(); // returns number of bytes possible to write at a given time.
- // Never will decrease unless you call Write (or Close, heh)
-
- int (*IsPlaying)(); // non0 if output is still going or if data in buffers waiting to be
- // written (i.e. closing while IsPlaying() returns 1 would truncate the song
-
- int (*Pause)(int pause); // returns previous pause state
-
- void (*SetVolume)(int volume); // volume is 0-255
- void (*SetPan)(int pan); // pan is -128 to 128
-
- void (*Flush)(int t); // flushes buffers and restarts output at time t (in ms)
- // (used for seeking)
-
- int (*GetOutputTime)(); // returns played time in MS
- int (*GetWrittenTime)(); // returns time written in MS (used for synching up vis stuff)
-
-} Out_Module;
-
-
-/*
-#ifdef __cplusplus
-}
-#endif
-*/
\ No newline at end of file
--- a/plugins/winamp/OUT_FAAC.DEF
+++ /dev/null
@@ -1,4 +1,0 @@
-LIBRARY
-
-EXPORTS
- winampGetOutModule
--- a/plugins/winamp/Out_FAAC.dsp
+++ /dev/null
@@ -1,179 +1,0 @@
-# Microsoft Developer Studio Project File - Name="Out_FAAC" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Out_FAAC - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Out_FAAC.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Out_FAAC.mak" CFG="Out_FAAC - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Out_FAAC - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "Out_FAAC - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=xicl6.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Out_FAAC - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OUT_FAAC_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I "../../common/Cfaac" /I "../../include" /I "../../../faad2/include" /I "../../../faad2/common/faad" /I "../../common/mp4v2" /I "../../../faad2/common/id3lib/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x410 /d "NDEBUG"
-# ADD RSC /l 0x410 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /machine:I386 /out:"Release/Out_AAC.dll"
-
-!ELSEIF "$(CFG)" == "Out_FAAC - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "OUT_FAAC_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /I "../../common/Cfaac" /I "../../include" /I "../../../faad2/include" /I "../../../faad2/common/faad" /I "../../common/mp4v2" /I "../../../faad2/common/id3lib/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /YX /FD /GZ /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x410 /d "_DEBUG"
-# ADD RSC /l 0x410 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=xilink6.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"C:\Program Files\Audio\Gen\Winamp\Plugins\Out_AAC.dll" /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "Out_FAAC - Win32 Release"
-# Name "Out_FAAC - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaac.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CRegistry.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CTag.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\EncDialog.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\FAAC.rc
-# End Source File
-# Begin Source File
-
-SOURCE=.\Out_faac.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Out_FAAC.def
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Cfaac.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\CRegistry.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\defines.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\faac.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILTERS.H
-# End Source File
-# Begin Source File
-
-SOURCE=.\OUT.H
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\resource.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\AudioCoding.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Email.bmp
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\common\Cfaac\mpeg4ip-v.bmp"
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Open.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\common\Cfaac\Open.ico
-# End Source File
-# End Group
-# End Target
-# End Project
--- a/plugins/winamp/Out_faac.cpp
+++ /dev/null
@@ -1,476 +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 <windows.h>
-#include "resource.h"
-#include "out.h"
-#include "wa_ipc.h"
-#include "defines.h"
-#include "EncDialog.h"
-#include "Cfaac.h"
-
-
-// *********************************************************************************************
-
-
-void Config(HWND);
-void About(HWND);
-void Init();
-void Quit();
-int Open(int, int, int, int, int);
-void Close();
-int Write(char*, int);
-int CanWrite();
-int IsPlaying();
-int Pause(int);
-void SetVolume(int);
-void SetPan(int);
-void Flush(int);
-int GetOutputTime();
-int GetWrittenTime();
-
-
-
-Cfaac *Cpcmaac;
-//char OutDir[MAX_PATH]="";
-
-HINSTANCE hInstance=NULL;
-HBITMAP hBmBrowse=NULL;
-char config_AACoutdir[MAX_PATH]="";
-
-static int srate, numchan, bps;
-volatile int writtentime, w_offset;
-static int last_pause=0;
-
-
-Out_Module out = {
- OUT_VER,
- APP_NAME " " APP_VER,
- NULL,
- NULL, // hmainwindow
- NULL, // hdllinstance
- Config,
- About,
- Init,
- Quit,
- Open,
- Close,
- Write,
- CanWrite,
- IsPlaying,
- Pause,
- SetVolume,
- SetPan,
- Flush,
- GetOutputTime,
- GetWrittenTime
-};
-
-
-
-// *********************************************************************************************
-
-
-
-Out_Module *winampGetOutModule()
-{
- return &out;
-}
-// *********************************************************************************************
-
-BOOL WINAPI DllMain (HINSTANCE hInst, DWORD ulReason, LPVOID lpReserved)
-{
- switch(ulReason)
- {
- case DLL_PROCESS_ATTACH:
- hInstance=hInst;
- DisableThreadLibraryCalls((struct HINSTANCE__ *)hInst);
- if(!hBmBrowse)
- hBmBrowse=(HBITMAP)LoadImage(hInst,MAKEINTRESOURCE(IDB_BROWSE),IMAGE_BITMAP,0,0,/*LR_CREATEDIBSECTION|*/LR_LOADTRANSPARENT|LR_LOADMAP3DCOLORS);
-
- /* Code from LibMain inserted here. Return TRUE to keep the
- DLL loaded or return FALSE to fail loading the DLL.
-
- You may have to modify the code in your original LibMain to
- account for the fact that it may be called more than once.
- You will get one DLL_PROCESS_ATTACH for each process that
- loads the DLL. This is different from LibMain which gets
- called only once when the DLL is loaded. The only time this
- is critical is when you are using shared data sections.
- If you are using shared data sections for statically
- allocated data, you will need to be careful to initialize it
- only once. Check your code carefully.
-
- Certain one-time initializations may now need to be done for
- each process that attaches. You may also not need code from
- your original LibMain because the operating system may now
- be doing it for you.
- */
- break;
-
- case DLL_THREAD_ATTACH:
- /* Called each time a thread is created in a process that has
- already loaded (attached to) this DLL. Does not get called
- for each thread that exists in the process before it loaded
- the DLL.
-
- Do thread-specific initialization here.
- */
- break;
-
- case DLL_THREAD_DETACH:
- /* Same as above, but called when a thread in the process
- exits.
-
- Do thread-specific cleanup here.
- */
- break;
-
- case DLL_PROCESS_DETACH:
- hInstance=NULL;
- if(hBmBrowse)
- {
- DeleteObject(hBmBrowse);
- hBmBrowse=NULL;
- }
- /* Code from _WEP inserted here. This code may (like the
- LibMain) not be necessary. Check to make certain that the
- operating system is not doing it for you.
- */
- break;
- }
-
- /* The return value is only used for DLL_PROCESS_ATTACH; all other
- conditions are ignored.
- */
- return TRUE; // successful DLL_PROCESS_ATTACH
-}
-
-// *********************************************************************************************
-
-void About(HWND hWndDlg)
-{
- DialogBox(out.hDllInstance, MAKEINTRESOURCE(IDD_ABOUT), hWndDlg, (DLGPROC)DialogMsgProcAbout);
-
-/*char buf[256];
- unsigned long samplesInput, maxBytesOutput;
- faacEncHandle hEncoder =
- faacEncOpen(44100, 2, &samplesInput, &maxBytesOutput);
- faacEncConfigurationPtr myFormat =
- faacEncGetCurrentConfiguration(hEncoder);
-
- sprintf(buf,
- APP_NAME " %s by Antonio Foranna\n\n"
- "This plugin uses FAAC encoder engine v%s\n\n"
- "Compiled on %s\n",
- APP_VER,
- myFormat->name,
- __DATE__
- );
- faacEncClose(hEncoder);
- MessageBox(hWndDlg, buf, "About", MB_OK);*/
-}
-// *********************************************************************************************
-
-void Config(HWND hWnd)
-{
- DialogBox(out.hDllInstance, MAKEINTRESOURCE(IDD_ENCODER), hWnd, DIALOGMsgProcEnc);
-// dwOptions=DialogBoxParam((HINSTANCE)out.hDllInstance,(LPCSTR)MAKEINTRESOURCE(IDD_ENCODER), (HWND)hWnd, (DLGPROC)DIALOGMsgProc, dwOptions);
-}
-
-// *********************************************************************************************
-// Utilities
-// *********************************************************************************************
-
-char *getSourceName(HWND hwnd)
-{
-HANDLE hProcess;
-DWORD processid;
-char filename[MAX_PATH], *pname;
-SIZE_T bread;
-//HWND hdlgPE;
-
- memset(filename, 0, MAX_PATH);
- GetWindowThreadProcessId(hwnd, &processid);
- hProcess = OpenProcess(PROCESS_VM_READ, FALSE, processid);
-// hdlgPE=SendMessage(hwnd,WM_WA_IPC,IPC_GETWND_PE,IPC_GETWND);
- pname=(char*)SendMessage(hwnd,WM_WA_IPC,SendMessage(hwnd,WM_WA_IPC,0,IPC_GETLISTPOS),IPC_GETPLAYLISTFILE);
- ReadProcessMemory(hProcess, pname, filename, MAX_PATH, &bread);
- CloseHandle(hProcess);
- return strdup(filename);
-}
-
-char *getWASourceName(char *src)
-{
-char *dst=NULL, *tmp=src;
-int l;
- if(!src)
- {
- if(dst=(char *)malloc(1))
- *dst='\0';
- return dst;
- }
-
- while(*src && *src>='0' && *src<='9')
- src++;
- if(src[0]=='.' && src[1]==' ')
- src+=2;
- else
- src=tmp;
- if(!(dst=(char *)malloc(strlen(src)+1)))
- return dst;
- strcpy(dst,src);
- l=strlen(src);
- if(l>9 && !strcmpi(src+l-9," - Winamp"))
- dst[l-9]='\0';
- // cut ext
- tmp=dst+strlen(dst);
- while(tmp!=dst && *tmp!='.')
- tmp--;
- if(*tmp=='.')
- *tmp='\0';
- return dst;
-}
-
-static char *scanstr_back(char *str, char *toscan, char *defval)
-{
-char *s=str+strlen(str)-1;
-
- if (strlen(str) < 1) return defval;
- if (strlen(toscan) < 1) return defval;
- while (1)
- {
- char *t=toscan;
- while (*t)
- if (*t++ == *s) return s;
- t=CharPrev(str,s);
- if (t==s) return defval;
- s=t;
- }
-}
-//------------------------------------------------------------------------------------------
-
-void GetNewFileName(char *lpstrFilename)
-{
-char temp2[MAX_PATH];
-char *t,*p;
-
- GetWindowText(out.hMainWindow,temp2,sizeof(temp2));
- t=temp2;
-
- t=scanstr_back(temp2,"-",NULL);
- if (t) t[-1]=0;
-
- if (temp2[0] && temp2[1] == '.')
- {
- char *p1,*p2;
- p1=lpstrFilename;
- p2=temp2;
- while (*p2) *p1++=*p2++;
- *p1=0;
- p1 = temp2+1;
- p2 = lpstrFilename;
- while (*p2)
- {
- *p1++ = *p2++;
- }
- *p1=0;
- temp2[0] = '0';
- }
- p=temp2;
- while (*p != '.' && *p) p++;
- if (*p == '.')
- {
- *p = '-';
- p=CharNext(p);
- }
- while (*p)
- {
- if (*p == '.' || *p == '/' || *p == '\\' || *p == '*' ||
- *p == '?' || *p == ':' || *p == '+' || *p == '\"' ||
- *p == '\'' || *p == '|' || *p == '<' || *p == '>') *p = '_';
- p=CharNext(p);
- }
-
- p=config_AACoutdir;
- if (p[0]) while (p[1]) p++;
-
- if (!config_AACoutdir[0] || config_AACoutdir[0] == ' ')
- Config(out.hMainWindow);
- if (!config_AACoutdir[0])
- wsprintf(lpstrFilename,"%s.aac",temp2);
- else if (p[0]=='\\')
- wsprintf(lpstrFilename,"%s%s.aac",config_AACoutdir,temp2);
- else
- wsprintf(lpstrFilename,"%s\\%s.aac",config_AACoutdir,temp2);
-}
-
-// *********************************************************************************************
-// Main functions
-// *********************************************************************************************
-
-void Init()
-{
-}
-// *********************************************************************************************
-
-void Quit()
-{
-}
-// *********************************************************************************************
-
-#define ERROR_O(msg) \
-{ \
- if(msg) \
- MessageBox(0, msg, "FAAC plugin", MB_OK); \
- Close(); \
- return -1; \
-}
-
-int Open(int lSamprate, int wChannels, int wBitsPerSample, int bufferlenms, int prebufferms)
-{
-CMyEncCfg cfg;
-char OutFilename[MAX_PATH],
- *srcFilename=NULL;
-// buf[MAX_PATH],
-// *tsrcFilename;
-
- w_offset = writtentime = 0;
- numchan = wChannels;
- srate = lSamprate;
- bps = wBitsPerSample;
-
- strcpy(config_AACoutdir,cfg.OutDir);
- GetNewFileName(OutFilename);
-
- Cpcmaac=new Cfaac();
-#ifdef USE_IMPORT_TAG
-/* GetWindowText(out.hMainWindow,buf,sizeof(buf));
- tsrcFilename=getWASourceName(buf);
- srcFilename=Cpcmaac->getSourceFilename(cfg.TagSrcPath,tsrcFilename,cfg.TagSrcExt);
- FREE_ARRAY(tsrcFilename);*/
- srcFilename=getSourceName(out.hMainWindow);
-#endif
- if(!Cpcmaac->Init(srcFilename,OutFilename,lSamprate,wBitsPerSample,wChannels,-1))
- ERROR_O(0);
-
- FREE_ARRAY(srcFilename);
- return 0;
-}
-// *********************************************************************************************
-
-void Close()
-{
- if(Cpcmaac)
- {
- delete Cpcmaac;
- Cpcmaac=NULL;
- }
-}
-// *********************************************************************************************
-
-int Write(char *wabuf, int len)
-{
- writtentime+=len;
-
- if(Cpcmaac->processDataBufferized(Cpcmaac->hOutput,(BYTE *)wabuf,len)<0)
- return -1;
-
-// Sleep(10);
- return 0;
-}
-// *********************************************************************************************
-
-int CanWrite()
-{
- return last_pause ? 0 : 16*1024*1024;
-// return last_pause ? 0 : mo->samplesInput*(mo->wBitsPerSample>>3);
-}
-// *********************************************************************************************
-
-int IsPlaying()
-{
- return 0;
-}
-// *********************************************************************************************
-
-int Pause(int pause)
-{
- int t=last_pause;
- last_pause=pause;
- return t;
-}
-// *********************************************************************************************
-
-void SetVolume(int volume)
-{
-}
-// *********************************************************************************************
-
-void SetPan(int pan)
-{
-}
-// *********************************************************************************************
-
-void Flush(int t)
-{
-int a;
-
- w_offset=0;
- a = t - GetWrittenTime();
- w_offset=a;
-}
-// *********************************************************************************************
-
-int GetOutputTime()
-{
-int t=srate*numchan,
- ms=writtentime,
- l;
-
- if(t)
- {
- l=ms%t;
- ms /= t;
- ms *= 1000;
- ms += (l*1000)/t;
- if (bps == 16) ms/=2;
- }
- return ms + w_offset;
-}
-// *********************************************************************************************
-
-int GetWrittenTime()
-{
-int t=srate*numchan,
- ms=writtentime,
- l;
-
- if(t)
- {
- l=ms%t;
- ms /= t;
- ms *= 1000;
- ms += (l*1000)/t;
- if (bps == 16) ms/=2;
- }
- return ms + w_offset;
-}
--- a/plugins/winamp/ReadMe.txt
+++ /dev/null
@@ -1,27 +1,0 @@
-+-----------------------------------------------------------------+
-| |
-| out_FAAC Readme |
-| --------------- |
-| |
-+-----------------------------------------------------------------+
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY.
-
-----------------------------------------------------------------------------
-
-out_AAC is an encoder plugin for Winamp 2 and 5 to export .aac/.mp4 files.
-
-To use it:
-----------
-
-1) put FAAC and FAAD2 packages into the same folder;
-2) open the project, set "Active Configuration = FAAC - win32 Release" and compile;
-3) copy out_AAC.dll into Winamp\plugins folder.
-
-----------------------------------------------------------------------------
-
-For suggestions, bugs report, etc., you can contact me at
-ntnfrn_email-temp@yahoo.it
--- a/plugins/winamp/defines.h
+++ /dev/null
@@ -1,48 +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
-*/
-
-#define APP_NAME "MPEG4-AAC encoder"
-#define APP_VER "v1.7"
-#define REGISTRY_PROGRAM_NAME "SOFTWARE\\4N\\Winamp\\Out_AAC"
-
-#define USE_OUTPUT_FOLDER
-#define USE_IMPORT_TAG
-//#define USE_PATHEXT
-
-// -----------------------------------------------------------------------------------------------
-
-#define FREE_ARRAY(ptr) \
-{ \
- if(ptr!=NULL) \
- free(ptr); \
- ptr=NULL; \
-}
-
-// -----------------------------------------------------------------------------------------------
-
-#define GLOBALLOCK(ptr,handle,type,ret) \
-{ \
- if(!(ptr=(type *)GlobalLock(handle))) \
- { \
- MessageBox(0, "GlobalLock", APP_NAME " plugin", MB_OK|MB_ICONSTOP); \
- ret; \
- } \
-}
--- a/plugins/winamp/out_FAAC.dsw
+++ /dev/null
@@ -1,89 +1,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Out_FAAC"=.\Out_FAAC.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name libfaac
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name libmp4v2_st
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name id3lib
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name zlib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "id3lib"=..\..\..\faad2\common\id3lib\libprj\id3lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libfaac"=..\..\libfaac\libfaac.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libmp4v2_st"=..\..\..\faad2\common\mp4v2\libmp4v2_st60.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "zlib"=..\..\..\faad2\common\id3lib\zlib\prj\zlib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
--- a/plugins/winamp/wa_ipc.h
+++ /dev/null
@@ -1,1022 +1,0 @@
-/*
-** Copyright (C) 2003 Nullsoft, Inc.
-**
-** This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held
-** liable for any damages arising from the use of this software.
-**
-** Permission is granted to anyone to use this software for any purpose, including commercial applications, and to
-** alter it and redistribute it freely, subject to the following restrictions:
-**
-** 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
-** If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
-**
-** 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
-**
-** 3. This notice may not be removed or altered from any source distribution.
-**
-*/
-
-#ifndef _WA_IPC_H_
-#define _WA_IPC_H_
-
-/*
-** This is the modern replacement for the classic 'frontend.h'. Most of these
-** updates are designed for in-process use, i.e. from a plugin.
-**
-*/
-
-/* message used to sent many messages to winamp's main window.
-** most all of the IPC_* messages involve sending the message in the form of:
-** result = SendMessage(hwnd_winamp,WM_WA_IPC,(parameter),IPC_*);
-*/
-#define WM_WA_IPC WM_USER
-/* but some of them use WM_COPYDATA. be afraid.
-*/
-
-#define IPC_GETVERSION 0
-/* int version = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETVERSION);
-**
-** Version will be 0x20yx for winamp 2.yx. versions previous to Winamp 2.0
-** typically (but not always) use 0x1zyx for 1.zx versions. Weird, I know.
-*/
-
-#define IPC_GETREGISTEREDVERSION 770
-
-
-typedef struct {
- char *filename;
- char *title;
- int length;
-} enqueueFileWithMetaStruct; // send this to a IPC_PLAYFILE in a non WM_COPYDATA,
-// and you get the nice desired result. if title is NULL, it is treated as a "thing",
-// otherwise it's assumed to be a file (for speed)
-
-#define IPC_PLAYFILE 100 // dont be fooled, this is really the same as enqueufile
-#define IPC_ENQUEUEFILE 100
-/* sent as a WM_COPYDATA, with IPC_PLAYFILE as the dwData, and the string to play
-** as the lpData. Just enqueues, does not clear the playlist or change the playback
-** state.
-*/
-
-
-#define IPC_DELETE 101
-#define IPC_DELETE_INT 1101 // don't use this, it's used internally by winamp when
- // dealing with some lame explorer issues.
-/* SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_DELETE);
-** Use IPC_DELETE to clear Winamp's internal playlist.
-*/
-
-
-#define IPC_STARTPLAY 102 // starts playback. almost like hitting play in Winamp.
-#define IPC_STARTPLAY_INT 1102 // used internally, don't bother using it (won't be any fun)
-
-
-#define IPC_CHDIR 103
-/* sent as a WM_COPYDATA, with IPC_CHDIR as the dwData, and the directory to change to
-** as the lpData.
-*/
-
-
-#define IPC_ISPLAYING 104
-/* int res = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISPLAYING);
-** If it returns 1, it is playing. if it returns 3, it is paused,
-** if it returns 0, it is not playing.
-*/
-
-
-#define IPC_GETOUTPUTTIME 105
-/* int res = SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETOUTPUTTIME);
-** returns the position in milliseconds of the current track (mode = 0),
-** or the track length, in seconds (mode = 1). Returns -1 if not playing or error.
-*/
-
-
-#define IPC_JUMPTOTIME 106
-/* (requires Winamp 1.60+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,ms,IPC_JUMPTOTIME);
-** IPC_JUMPTOTIME sets the position in milliseconds of the
-** current song (approximately).
-** Returns -1 if not playing, 1 on eof, or 0 if successful
-*/
-
-#define IPC_GETMODULENAME 109
-#define IPC_EX_ISRIGHTEXE 666
-/* usually shouldnt bother using these, but here goes:
-** send a WM_COPYDATA with IPC_GETMODULENAME, and an internal
-** flag gets set, which if you send a normal WM_WA_IPC message with
-** IPC_EX_ISRIGHTEXE, it returns whether or not that filename
-** matches. lame, I know.
-*/
-
-#define IPC_WRITEPLAYLIST 120
-/* (requires Winamp 1.666+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_WRITEPLAYLIST);
-**
-** IPC_WRITEPLAYLIST writes the current playlist to <winampdir>\\Winamp.m3u,
-** and returns the current playlist position.
-** Kinda obsoleted by some of the 2.x new stuff, but still good for when
-** using a front-end (instead of a plug-in)
-*/
-
-
-#define IPC_SETPLAYLISTPOS 121
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,position,IPC_SETPLAYLISTPOS)
-** IPC_SETPLAYLISTPOS sets the playlist position to 'position'. It
-** does not change playback or anything, it just sets position, and
-** updates the view if necessary
-*/
-
-
-#define IPC_SETVOLUME 122
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,volume,IPC_SETVOLUME);
-** IPC_SETVOLUME sets the volume of Winamp (from 0-255).
-*/
-
-
-#define IPC_SETPANNING 123
-/* (requires Winamp 2.0+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,panning,IPC_SETPANNING);
-** IPC_SETPANNING sets the panning of Winamp (from 0 (left) to 255 (right)).
-*/
-
-
-#define IPC_GETLISTLENGTH 124
-/* (requires Winamp 2.0+)
-** int length = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTLENGTH);
-** IPC_GETLISTLENGTH returns the length of the current playlist, in
-** tracks.
-*/
-
-
-#define IPC_GETLISTPOS 125
-/* (requires Winamp 2.05+)
-** int pos=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETLISTPOS);
-** IPC_GETLISTPOS returns the playlist position. A lot like IPC_WRITEPLAYLIST
-** only faster since it doesn't have to write out the list. Heh, silly me.
-*/
-
-
-#define IPC_GETINFO 126
-/* (requires Winamp 2.05+)
-** int inf=SendMessage(hwnd_winamp,WM_WA_IPC,mode,IPC_GETINFO);
-** IPC_GETINFO returns info about the current playing song. The value
-** it returns depends on the value of 'mode'.
-** Mode Meaning
-** ------------------
-** 0 Samplerate (i.e. 44100)
-** 1 Bitrate (i.e. 128)
-** 2 Channels (i.e. 2)
-** 3 (5+) Video LOWORD=w HIWORD=h
-** 4 (5+) > 65536, string (video description)
-*/
-
-
-#define IPC_GETEQDATA 127
-/* (requires Winamp 2.05+)
-** int data=SendMessage(hwnd_winamp,WM_WA_IPC,pos,IPC_GETEQDATA);
-** IPC_GETEQDATA queries the status of the EQ.
-** The value returned depends on what 'pos' is set to:
-** Value Meaning
-** ------------------
-** 0-9 The 10 bands of EQ data. 0-63 (+20db - -20db)
-** 10 The preamp value. 0-63 (+20db - -20db)
-** 11 Enabled. zero if disabled, nonzero if enabled.
-** 12 Autoload. zero if disabled, nonzero if enabled.
-*/
-
-
-#define IPC_SETEQDATA 128
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,pos,IPC_GETEQDATA);
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SETEQDATA);
-** IPC_SETEQDATA sets the value of the last position retrieved
-** by IPC_GETEQDATA. This is pretty lame, and we should provide
-** an extended version that lets you do a MAKELPARAM(pos,value).
-** someday...
-
- new (2.92+):
- if the high byte is set to 0xDB, then the third byte specifies
- which band, and the bottom word specifies the value.
-*/
-
-#define IPC_ADDBOOKMARK 129
-/* (requires Winamp 2.4+)
-** Sent as a WM_COPYDATA, using IPC_ADDBOOKMARK, adds the specified
-** file/url to the Winamp bookmark list.
-*/
-/*
-In winamp 5+, we use this as a normal WM_WA_IPC and the string:
-
- "filename\0title\0"
-
- to notify the library/bookmark editor that a bookmark
-was added. Note that using this message in this context does not
-actually add the bookmark.
-do not use :)
-*/
-
-
-#define IPC_INSTALLPLUGIN 130
-/* not implemented, but if it was you could do a WM_COPYDATA with
-** a path to a .wpz, and it would install it.
-*/
-
-
-#define IPC_RESTARTWINAMP 135
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_RESTARTWINAMP);
-** IPC_RESTARTWINAMP will restart Winamp (isn't that obvious ? :)
-*/
-
-
-#define IPC_ISFULLSTOP 400
-/* (requires winamp 2.7+ I think)
-** ret=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISFULLSTOP);
-** useful for when you're an output plugin, and you want to see
-** if the stop/close is a full stop, or just between tracks.
-** returns nonzero if it's full, zero if it's just a new track.
-*/
-
-
-#define IPC_INETAVAILABLE 242
-/* (requires Winamp 2.05+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_INETAVAILABLE);
-** IPC_INETAVAILABLE will return 1 if the Internet connection is available for Winamp.
-*/
-
-
-#define IPC_UPDTITLE 243
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_UPDTITLE);
-** IPC_UPDTITLE will ask Winamp to update the informations about the current title.
-*/
-
-
-#define IPC_REFRESHPLCACHE 247
-/* (requires Winamp 2.2+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_REFRESHPLCACHE);
-** IPC_REFRESHPLCACHE will flush the playlist cache buffer.
-** (send this if you want it to go refetch titles for tracks)
-*/
-
-
-#define IPC_GET_SHUFFLE 250
-/* (requires Winamp 2.4+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GET_SHUFFLE);
-**
-** IPC_GET_SHUFFLE returns the status of the Shuffle option (1 if set)
-*/
-
-
-#define IPC_GET_REPEAT 251
-/* (requires Winamp 2.4+)
-** val=SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GET_REPEAT);
-**
-** IPC_GET_REPEAT returns the status of the Repeat option (1 if set)
-*/
-
-
-#define IPC_SET_SHUFFLE 252
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SET_SHUFFLE);
-**
-** IPC_SET_SHUFFLE sets the status of the Shuffle option (1 to turn it on)
-*/
-
-
-#define IPC_SET_REPEAT 253
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_SET_REPEAT);
-**
-** IPC_SET_REPEAT sets the status of the Repeat option (1 to turn it on)
-*/
-
-
-#define IPC_ENABLEDISABLE_ALL_WINDOWS 259 // 0xdeadbeef to disable
-/* (requires Winamp 2.9+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,enable?0:0xdeadbeef,IPC_MBOPENREAL);
-** sending with 0xdeadbeef as the param disables all winamp windows,
-** any other values will enable all winamp windows.
-*/
-
-
-#define IPC_GETWND 260
-/* (requires Winamp 2.9+)
-** HWND h=SendMessage(hwnd_winamp,WM_WA_IPC,IPC_GETWND_xxx,IPC_GETWND);
-** returns the HWND of the window specified.
-*/
- #define IPC_GETWND_EQ 0 // use one of these for the param
- #define IPC_GETWND_PE 1
- #define IPC_GETWND_MB 2
- #define IPC_GETWND_VIDEO 3
-#define IPC_ISWNDVISIBLE 261 // same param as IPC_GETWND
-
-
-
-
-/************************************************************************
-***************** in-process only (WE LOVE PLUGINS)
-************************************************************************/
-
-
-#define IPC_SETSKIN 200
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)"skinname",IPC_SETSKIN);
-** IPC_SETSKIN sets the current skin to "skinname". Note that skinname
-** can be the name of a skin, a skin .zip file, with or without path.
-** If path isn't specified, the default search path is the winamp skins
-** directory.
-*/
-
-
-#define IPC_GETSKIN 201
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)skinname_buffer,IPC_GETSKIN);
-** IPC_GETSKIN puts the directory where skin bitmaps can be found
-** into skinname_buffer.
-** skinname_buffer must be MAX_PATH characters in length.
-** When using a .zip'd skin file, it'll return a temporary directory
-** where the ZIP was decompressed.
-*/
-
-
-#define IPC_EXECPLUG 202
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)"vis_file.dll",IPC_EXECPLUG);
-** IPC_EXECPLUG executes a visualization plug-in pointed to by WPARAM.
-** the format of this string can be:
-** "vis_whatever.dll"
-** "vis_whatever.dll,0" // (first mod, file in winamp plug-in dir)
-** "C:\\dir\\vis_whatever.dll,1"
-*/
-
-
-#define IPC_GETPLAYLISTFILE 211
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTFILE);
-** IPC_GETPLAYLISTFILE gets the filename of the playlist entry [index].
-** returns a pointer to it. returns NULL on error.
-*/
-
-
-#define IPC_GETPLAYLISTTITLE 212
-/* (requires Winamp 2.04+, only usable from plug-ins (not external apps))
-** char *name=SendMessage(hwnd_winamp,WM_WA_IPC,index,IPC_GETPLAYLISTTITLE);
-**
-** IPC_GETPLAYLISTTITLE gets the title of the playlist entry [index].
-** returns a pointer to it. returns NULL on error.
-*/
-
-
-#define IPC_GETHTTPGETTER 240
-/* retrieves a function pointer to a HTTP retrieval function.
-** if this is unsupported, returns 1 or 0.
-** the function should be:
-** int (*httpRetrieveFile)(HWND hwnd, char *url, char *file, char *dlgtitle);
-** if you call this function, with a parent window, a URL, an output file, and a dialog title,
-** it will return 0 on successful download, 1 on error.
-*/
-
-
-#define IPC_MBOPEN 241
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_MBOPEN);
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPEN);
-** IPC_MBOPEN will open a new URL in the minibrowser. if url is NULL, it will open the Minibrowser window.
-*/
-
-
-
-#define IPC_CHANGECURRENTFILE 245
-/* (requires Winamp 2.05+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)file,IPC_CHANGECURRENTFILE);
-** IPC_CHANGECURRENTFILE will set the current playlist item.
-*/
-
-
-#define IPC_GETMBURL 246
-/* (requires Winamp 2.2+)
-** char buffer[4096]; // Urls can be VERY long
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)buffer,IPC_GETMBURL);
-** IPC_GETMBURL will retrieve the current Minibrowser URL into buffer.
-** buffer must be at least 4096 bytes long.
-*/
-
-
-#define IPC_MBBLOCK 248
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,value,IPC_MBBLOCK);
-**
-** IPC_MBBLOCK will block the Minibrowser from updates if value is set to 1
-*/
-
-#define IPC_MBOPENREAL 249
-/* (requires Winamp 2.4+)
-** SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)url,IPC_MBOPENREAL);
-**
-** IPC_MBOPENREAL works the same as IPC_MBOPEN except that it will works even if
-** IPC_MBBLOCK has been set to 1
-*/
-
-#define IPC_ADJUST_OPTIONSMENUPOS 280
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_OPTIONSMENUPOS);
-** moves where winamp expects the Options menu in the main menu. Useful if you wish to insert a
-** menu item above the options/skins/vis menus.
-*/
-
-#define IPC_GET_HMENU 281
-/* (requires Winamp 2.9+)
-** HMENU hMenu=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)0,IPC_GET_HMENU);
-** values for data:
-** 0 : main popup menu
-** 1 : main menubar file menu
-** 2 : main menubar options menu
-** 3 : main menubar windows menu
-** 4 : main menubar help menu
-** other values will return NULL.
-*/
-
-#define IPC_GET_EXTENDED_FILE_INFO 290 //pass a pointer to the following struct in wParam
-#define IPC_GET_EXTENDED_FILE_INFO_HOOKABLE 296
-/* (requires Winamp 2.9+)
-** to use, create an extendedFileInfoStruct, point the values filename and metadata to the
-** filename and metadata field you wish to query, and ret to a buffer, with retlen to the
-** length of that buffer, and then SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_GET_EXTENDED_FILE_INFO);
-** the results should be in the buffer pointed to by ret.
-** returns 1 if the decoder supports a getExtendedFileInfo method
-*/
-typedef struct {
- char *filename;
- char *metadata;
- char *ret;
- int retlen;
-} extendedFileInfoStruct;
-
-#define IPC_GET_BASIC_FILE_INFO 291 //pass a pointer to the following struct in wParam
-typedef struct {
- char *filename;
-
- int quickCheck; // set to 0 to always get, 1 for quick, 2 for default (if 2, quickCheck will be set to 0 if quick wasnot used)
-
- // filled in by winamp
- int length;
- char *title;
- int titlelen;
-} basicFileInfoStruct;
-
-#define IPC_GET_EXTLIST 292 //returns doublenull delimited. GlobalFree() it when done. if data is 0, returns raw extlist, if 1, returns something suitable for getopenfilename
-
-#define IPC_INFOBOX 293
-typedef struct {
- HWND parent;
- char *filename;
-} infoBoxParam;
-
-#define IPC_SET_EXTENDED_FILE_INFO 294 //pass a pointer to the a extendedFileInfoStruct in wParam
-/* (requires Winamp 2.9+)
-** to use, create an extendedFileInfoStruct, point the values filename and metadata to the
-** filename and metadata field you wish to write in ret. (retlen is not used). and then
-** SendMessage(hwnd_winamp,WM_WA_IPC,&struct,IPC_SET_EXTENDED_FILE_INFO);
-** returns 1 if the metadata is supported
-** Call IPC_WRITE_EXTENDED_FILE_INFO once you're done setting all the metadata you want to update
-*/
-
-#define IPC_WRITE_EXTENDED_FILE_INFO 295
-/* (requires Winamp 2.9+)
-** writes all the metadata set thru IPC_SET_EXTENDED_FILE_INFO to the file
-** returns 1 if the file has been successfully updated, 0 if error
-*/
-
-#define IPC_FORMAT_TITLE 297
-typedef struct
-{
- char *spec; // NULL=default winamp spec
- void *p;
-
- char *out;
- int out_len;
-
- char * (*TAGFUNC)(char * tag, void * p); //return 0 if not found
- void (*TAGFREEFUNC)(char * tag,void * p);
-} waFormatTitle;
-
-#define IPC_GETUNCOMPRESSINTERFACE 331
-/* returns a function pointer to uncompress().
-** int (*uncompress)(unsigned char *dest, unsigned long *destLen, const unsigned char *source, unsigned long sourceLen);
-** right out of zlib, useful for decompressing zlibbed data.
-** if you pass the parm of 0x10100000, it will return a wa_inflate_struct * to an inflate API.
-*/
-
-typedef struct {
- int (*inflateReset)(void *strm);
- int (*inflateInit_)(void *strm,const char *version, int stream_size);
- int (*inflate)(void *strm, int flush);
- int (*inflateEnd)(void *strm);
- unsigned long (*crc32)(unsigned long crc, const unsigned char *buf, unsigned int len);
-} wa_inflate_struct;
-
-
-#define IPC_ADD_PREFS_DLG 332
-#define IPC_REMOVE_PREFS_DLG 333
-/* (requires Winamp 2.9+)
-** to use, allocate a prefsDlgRec structure (either on the heap or some global
-** data, but NOT on the stack), initialze the members:
-** hInst to the DLL instance where the resource is located
-** dlgID to the ID of the dialog,
-** proc to the window procedure for the dialog
-** name to the name of the prefs page in the prefs.
-** where to 0 (eventually we may add more options)
-** then, SendMessage(hwnd_winamp,WM_WA_IPC,&prefsRec,IPC_ADD_PREFS_DLG);
-**
-** you can also IPC_REMOVE_PREFS_DLG with the address of the same prefsRec,
-** but you shouldn't really ever have to.
-**
-*/
-#define IPC_OPENPREFSTOPAGE 380 // pass an id of a builtin page, or a &prefsDlgRec of prefs page to open
-
-typedef struct _prefsDlgRec {
- HINSTANCE hInst;
- int dlgID;
- void *proc;
-
- char *name;
- int where; // 0 for options, 1 for plugins, 2 for skins, 3 for bookmarks, 4 for prefs
-
-
- int _id;
- struct _prefsDlgRec *next;
-} prefsDlgRec;
-
-
-#define IPC_GETINIFILE 334 // returns a pointer to winamp.ini
-#define IPC_GETINIDIRECTORY 335 // returns a pointer to the directory to put config files in (if you dont want to use winamp.ini)
-
-#define IPC_SPAWNBUTTONPOPUP 361 // param =
-// 0 = eject
-// 1 = previous
-// 2 = next
-// 3 = pause
-// 4 = play
-// 5 = stop
-
-#define IPC_OPENURLBOX 360 // pass a HWND to a parent, returns a HGLOBAL that needs to be freed with GlobalFree(), if successful
-#define IPC_OPENFILEBOX 362 // pass a HWND to a parent
-#define IPC_OPENDIRBOX 363 // pass a HWND to a parent
-
-// pass an HWND to a parent. call this if you take over the whole UI so that the dialogs are not appearing on the
-// bottom right of the screen since the main winamp window is at 3000x3000, call again with NULL to reset
-#define IPC_SETDIALOGBOXPARENT 364
-
-
-
-// pass 0 for a copy of the skin HBITMAP
-// pass 1 for name of font to use for playlist editor likeness
-// pass 2 for font charset
-// pass 3 for font size
-#define IPC_GET_GENSKINBITMAP 503
-
-
-#define IPC_GET_EMBEDIF 505 // pass an embedWindowState
-// returns an HWND embedWindow(embedWindowState *); if the data is NULL, otherwise returns the HWND directly
-typedef struct
-{
- HWND me; //hwnd of the window
-
- int flags;
-
- RECT r;
-
- void *user_ptr; // for application use
-
- int extra_data[64]; // for internal winamp use
-} embedWindowState;
-
-#define EMBED_FLAGS_NORESIZE 1 // set this bit in embedWindowState.flags to keep window from being resizable
-#define EMBED_FLAGS_NOTRANSPARENCY 2 // set this bit in embedWindowState.flags to make gen_ff turn transparency off for this wnd
-
-
-#define IPC_EMBED_ENUM 532
-typedef struct embedEnumStruct
-{
- int (*enumProc)(embedWindowState *ws, struct embedEnumStruct *param); // return 1 to abort
- int user_data; // or more :)
-} embedEnumStruct;
- // pass
-
-#define IPC_EMBED_ISVALID 533
-
-#define IPC_CONVERTFILE 506
-/* (requires Winamp 2.92+)
-** Converts a given file to a different format (PCM, MP3, etc...)
-** To use, pass a pointer to a waFileConvertStruct struct
-** This struct can be either on the heap or some global
-** data, but NOT on the stack. At least, until the conversion is done.
-**
-** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE);
-**
-** Return value:
-** 0: Can't start the conversion. Look at myConvertStruct->error for details.
-** 1: Conversion started. Status messages will be sent to the specified callbackhwnd.
-** Be sure to call IPC_CONVERTFILE_END when your callback window receives the
-** IPC_CB_CONVERT_DONE message.
-*/
-typedef struct
-{
- char *sourcefile; // "c:\\source.mp3"
- char *destfile; // "c:\\dest.pcm"
- int destformat[8]; // like 'PCM ',srate,nch,bps
- HWND callbackhwnd; // window that will receive the IPC_CB_CONVERT notification messages
-
- //filled in by winamp.exe
- char *error; //if IPC_CONVERTFILE returns 0, the reason will be here
-
- int bytes_done; //you can look at both of these values for speed statistics
- int bytes_total;
- int bytes_out;
-
- int killswitch; // don't set it manually, use IPC_CONVERTFILE_END
- int extra_data[64]; // for internal winamp use
-} convertFileStruct;
-
-#define IPC_CONVERTFILE_END 507
-/* (requires Winamp 2.92+)
-** Stop/ends a convert process started from IPC_CONVERTFILE
-** You need to call this when you receive the IPC_CB_CONVERTDONE message or when you
-** want to abort a conversion process
-**
-** eg: SendMessage(hwnd_winamp,WM_WA_IPC,&myConvertStruct,IPC_CONVERTFILE_END);
-**
-** No return value
-*/
-
-typedef struct {
- HWND hwndParent;
- int format;
-
- //filled in by winamp.exe
- HWND hwndConfig;
- int extra_data[8];
-} convertConfigStruct;
-#define IPC_CONVERT_CONFIG 508
-#define IPC_CONVERT_CONFIG_END 509
-
-typedef struct
-{
- void (*enumProc)(int user_data, const char *desc, int fourcc);
- int user_data;
-} converterEnumFmtStruct;
-#define IPC_CONVERT_CONFIG_ENUMFMTS 510
-/* (requires Winamp 2.92+)
-*/
-
-
-typedef struct
-{
- char cdletter;
- char *playlist_file;
- HWND callback_hwnd;
-
- //filled in by winamp.exe
- char *error;
-} burnCDStruct;
-#define IPC_BURN_CD 511
-/* (requires Winamp 5.0+)
-*/
-
-typedef struct
-{
- convertFileStruct *cfs;
- int priority;
-} convertSetPriority;
-#define IPC_CONVERT_SET_PRIORITY 512
-
-typedef struct
-{
- char *filename;
- char *title; // 2048 bytes
- int length;
- int force_useformatting; // can set this to 1 if you want to force a url to use title formatting shit
-} waHookTitleStruct;
-// return TRUE if you hook this
-#define IPC_HOOK_TITLES 850
-
-#define IPC_GETSADATAFUNC 800
-// 0: returns a char *export_sa_get() that returns 150 bytes of data
-// 1: returns a export_sa_setreq(int want);
-
-#define IPC_ISMAINWNDVISIBLE 900
-
-
-#define IPC_SETPLEDITCOLORS 920
-typedef struct
-{
- int numElems;
- int *elems;
- HBITMAP bm; // set if you want to override
-} waSetPlColorsStruct;
-
-
-// the following IPC use waSpawnMenuParms as parameter
-#define IPC_SPAWNEQPRESETMENU 933
-#define IPC_SPAWNFILEMENU 934 //menubar
-#define IPC_SPAWNOPTIONSMENU 935 //menubar
-#define IPC_SPAWNWINDOWSMENU 936 //menubar
-#define IPC_SPAWNHELPMENU 937 //menubar
-#define IPC_SPAWNPLAYMENU 938 //menubar
-#define IPC_SPAWNPEFILEMENU 939 //menubar
-#define IPC_SPAWNPEPLAYLISTMENU 940 //menubar
-#define IPC_SPAWNPESORTMENU 941 //menubar
-#define IPC_SPAWNPEHELPMENU 942 //menubar
-#define IPC_SPAWNMLFILEMENU 943 //menubar
-#define IPC_SPAWNMLVIEWMENU 944 //menubar
-#define IPC_SPAWNMLHELPMENU 945 //menubar
-#define IPC_SPAWNPELISTOFPLAYLISTS 946
-
-typedef struct
-{
- HWND wnd;
- int xpos; // in screen coordinates
- int ypos;
-} waSpawnMenuParms;
-
-// waSpawnMenuParms2 is used by the menubar submenus
-typedef struct
-{
- HWND wnd;
- int xpos; // in screen coordinates
- int ypos;
- int width;
- int height;
-} waSpawnMenuParms2;
-
-
-// system tray sends this (you might want to simulate it)
-#define WM_WA_SYSTRAY WM_USER+1
-
-// input plugins send this when they are done playing back
-#define WM_WA_MPEG_EOF WM_USER+2
-
-
-
-//// video stuff
-
-#define IPC_IS_PLAYING_VIDEO 501 // returns >1 if playing, 0 if not, 1 if old version (so who knows):)
-#define IPC_GET_IVIDEOOUTPUT 500 // see below for IVideoOutput interface
-#define VIDEO_MAKETYPE(A,B,C,D) ((A) | ((B)<<8) | ((C)<<16) | ((D)<<24))
-#define VIDUSER_SET_INFOSTRING 0x1000
-#define VIDUSER_GET_VIDEOHWND 0x1001
-#define VIDUSER_SET_VFLIP 0x1002
-
-#ifndef NO_IVIDEO_DECLARE
-#ifdef __cplusplus
-
-class VideoOutput;
-class SubsItem;
-
-typedef struct {
- unsigned char* baseAddr;
- long rowBytes;
-} YV12_PLANE;
-
-typedef struct {
- YV12_PLANE y;
- YV12_PLANE u;
- YV12_PLANE v;
-} YV12_PLANES;
-
-class IVideoOutput
-{
- public:
- virtual ~IVideoOutput() { }
- virtual int open(int w, int h, int vflip, double aspectratio, unsigned int fmt)=0;
- virtual void setcallback(LRESULT (*msgcallback)(void *token, HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam), void *token) { }
- virtual void close()=0;
- virtual void draw(void *frame)=0;
- virtual void drawSubtitle(SubsItem *item) { }
- virtual void showStatusMsg(const char *text) { }
- virtual int get_latency() { return 0; }
- virtual void notifyBufferState(int bufferstate) { } /* 0-255*/
-
- virtual int extended(int param1, int param2, int param3) { return 0; } // Dispatchable, eat this!
-};
-#endif //cplusplus
-#endif//NO_IVIDEO_DECLARE
-
-// these messages are callbacks that you can grab by subclassing the winamp window
-
-// wParam =
-#define IPC_CB_WND_EQ 0 // use one of these for the param
-#define IPC_CB_WND_PE 1
-#define IPC_CB_WND_MB 2
-#define IPC_CB_WND_VIDEO 3
-#define IPC_CB_WND_MAIN 4
-
-#define IPC_CB_ONSHOWWND 600
-#define IPC_CB_ONHIDEWND 601
-
-#define IPC_CB_GETTOOLTIP 602
-
-#define IPC_CB_MISC 603
- #define IPC_CB_MISC_TITLE 0
- #define IPC_CB_MISC_VOLUME 1 // volume/pan
- #define IPC_CB_MISC_STATUS 2
- #define IPC_CB_MISC_EQ 3
- #define IPC_CB_MISC_INFO 4
- #define IPC_CB_MISC_VIDEOINFO 5
-
-#define IPC_CB_CONVERT_STATUS 604 // param value goes from 0 to 100 (percent)
-#define IPC_CB_CONVERT_DONE 605
-
-#define IPC_ADJUST_FFWINDOWSMENUPOS 606
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_FFWINDOWSMENUPOS);
-** moves where winamp expects the freeform windows in the menubar windows main menu. Useful if you wish to insert a
-** menu item above extra freeform windows.
-*/
-
-#define IPC_ISDOUBLESIZE 608
-
-#define IPC_ADJUST_FFOPTIONSMENUPOS 609
-/* (requires Winamp 2.9+)
-** int newpos=SendMessage(hwnd_winamp,WM_WA_IPC,(WPARAM)adjust_offset,IPC_ADJUST_FFOPTIONSMENUPOS);
-** moves where winamp expects the freeform preferences item in the menubar windows main menu. Useful if you wish to insert a
-** menu item above preferences item.
-*/
-
-#define IPC_GETTIMEDISPLAYMODE 610 // returns 0 if displaying elapsed time or 1 if displaying remaining time
-
-#define IPC_SETVISWND 611 // param is hwnd, setting this allows you to receive ID_VIS_NEXT/PREVOUS/RANDOM/FS wm_commands
-#define ID_VIS_NEXT 40382
-#define ID_VIS_PREV 40383
-#define ID_VIS_RANDOM 40384
-#define ID_VIS_FS 40389
-#define ID_VIS_CFG 40390
-#define ID_VIS_MENU 40391
-
-#define IPC_GETVISWND 612 // returns the vis cmd handler hwnd
-#define IPC_ISVISRUNNING 613
-#define IPC_CB_VISRANDOM 628 // param is status of random
-
-#define IPC_SETIDEALVIDEOSIZE 614 // sent by winamp to winamp, trap it if you need it. width=HIWORD(param), height=LOWORD(param)
-
-#define IPC_GETSTOPONVIDEOCLOSE 615
-#define IPC_SETSTOPONVIDEOCLOSE 616
-
-typedef struct {
- HWND hwnd;
- int uMsg;
- int wParam;
- int lParam;
-} transAccelStruct;
-
-#define IPC_TRANSLATEACCELERATOR 617
-
-typedef struct {
- int cmd;
- int x;
- int y;
- int align;
-} windowCommand; // send this as param to an IPC_PLCMD, IPC_MBCMD, IPC_VIDCMD
-
-#define IPC_CB_ONTOGGLEAOT 618
-
-#define IPC_GETPREFSWND 619
-
-#define IPC_SET_PE_WIDTHHEIGHT 620 // data is a pointer to a POINT structure that holds width & height
-
-#define IPC_GETLANGUAGEPACKINSTANCE 621
-
-#define IPC_CB_PEINFOTEXT 622 // data is a string, ie: "04:21/45:02"
-
-#define IPC_CB_OUTPUTCHANGED 623 // output plugin was changed in config
-
-#define IPC_GETOUTPUTPLUGIN 625
-
-#define IPC_SETDRAWBORDERS 626
-#define IPC_DISABLESKINCURSORS 627
-#define IPC_CB_RESETFONT 629
-
-#define IPC_IS_FULLSCREEN 630 // returns 1 if video or vis is in fullscreen mode
-#define IPC_SET_VIS_FS_FLAG 631 // a vis should send this message with 1/as param to notify winamp that it has gone to or has come back from fullscreen mode
-
-#define IPC_SHOW_NOTIFICATION 632
-
-#define IPC_GETSKININFO 633
-
-// >>>>>>>>>>> Next is 634
-
-#define IPC_PLCMD 1000
-
-#define PLCMD_ADD 0
-#define PLCMD_REM 1
-#define PLCMD_SEL 2
-#define PLCMD_MISC 3
-#define PLCMD_LIST 4
-
-#define IPC_MBCMD 1001
-
-#define MBCMD_BACK 0
-#define MBCMD_FORWARD 1
-#define MBCMD_STOP 2
-#define MBCMD_RELOAD 3
-#define MBCMD_MISC 4
-
-#define IPC_VIDCMD 1002
-
-#define VIDCMD_FULLSCREEN 0
-#define VIDCMD_1X 1
-#define VIDCMD_2X 2
-#define VIDCMD_LIB 3
-#define VIDPOPUP_MISC 4
-
-#define IPC_MBURL 1003 //sets the URL
-#define IPC_MBGETCURURL 1004 //copies the current URL into wParam (have a 4096 buffer ready)
-#define IPC_MBGETDESC 1005 //copies the current URL description into wParam (have a 4096 buffer ready)
-#define IPC_MBCHECKLOCFILE 1006 //checks that the link file is up to date (otherwise updates it). wParam=parent HWND
-#define IPC_MBREFRESH 1007 //refreshes the "now playing" view in the library
-#define IPC_MBGETDEFURL 1008 //copies the default URL into wParam (have a 4096 buffer ready)
-
-#define IPC_STATS_LIBRARY_ITEMCNT 1300 // updates library count status
-
-// IPC 2000-3000 reserved for freeform messages, see gen_ff/ff_ipc.h
-#define IPC_FF_FIRST 2000
-#define IPC_FF_LAST 3000
-
-#define IPC_GETDROPTARGET 3001
-
-#define IPC_PLAYLIST_MODIFIED 3002 // sent to main wnd whenever the playlist is modified
-
-#define IPC_PLAYING_FILE 3003 // sent to main wnd with the file as parm whenever a file is played
-#define IPC_FILE_TAG_MAY_HAVE_UPDATED 3004 // sent to main wnd with the file as parm whenever a file tag might be updated
-
-
-#define IPC_ALLOW_PLAYTRACKING 3007
-// send nonzero to allow, zero to disallow
-
-#define IPC_HOOK_OKTOQUIT 3010 // return 0 to abort a quit, nonzero if quit is OK
-
-#define IPC_WRITECONFIG 3011 // pass 2 to write all, 1 to write playlist + common, 0 to write common+less common
-
-// pass a string to be the name to register, and returns a value > 65536, which is a unique value you can use
-// for custom WM_WA_IPC messages.
-#define IPC_REGISTER_WINAMP_IPCMESSAGE 65536
-
-/**************************************************************************/
-
-/*
-** Finally there are some WM_COMMAND messages that you can use to send
-** Winamp misc commands.
-**
-** To send these, use:
-**
-** SendMessage(hwnd_winamp, WM_COMMAND,command_name,0);
-*/
-
-#define WINAMP_OPTIONS_EQ 40036 // toggles the EQ window
-#define WINAMP_OPTIONS_PLEDIT 40040 // toggles the playlist window
-#define WINAMP_VOLUMEUP 40058 // turns the volume up a little
-#define WINAMP_VOLUMEDOWN 40059 // turns the volume down a little
-#define WINAMP_FFWD5S 40060 // fast forwards 5 seconds
-#define WINAMP_REW5S 40061 // rewinds 5 seconds
-
-// the following are the five main control buttons, with optionally shift
-// or control pressed
-// (for the exact functions of each, just try it out)
-#define WINAMP_BUTTON1 40044
-#define WINAMP_BUTTON2 40045
-#define WINAMP_BUTTON3 40046
-#define WINAMP_BUTTON4 40047
-#define WINAMP_BUTTON5 40048
-#define WINAMP_BUTTON1_SHIFT 40144
-#define WINAMP_BUTTON2_SHIFT 40145
-#define WINAMP_BUTTON3_SHIFT 40146
-#define WINAMP_BUTTON4_SHIFT 40147
-#define WINAMP_BUTTON5_SHIFT 40148
-#define WINAMP_BUTTON1_CTRL 40154
-#define WINAMP_BUTTON2_CTRL 40155
-#define WINAMP_BUTTON3_CTRL 40156
-#define WINAMP_BUTTON4_CTRL 40157
-#define WINAMP_BUTTON5_CTRL 40158
-
-#define WINAMP_FILE_PLAY 40029 // pops up the load file(s) box
-#define WINAMP_FILE_DIR 40187 // pops up the load directory box
-#define WINAMP_OPTIONS_PREFS 40012 // pops up the preferences
-#define WINAMP_OPTIONS_AOT 40019 // toggles always on top
-#define WINAMP_HELP_ABOUT 40041 // pops up the about box :)
-
-#define ID_MAIN_PLAY_AUDIOCD1 40323 // starts playing the audio CD in the first CD reader
-#define ID_MAIN_PLAY_AUDIOCD2 40323 // plays the 2nd
-#define ID_MAIN_PLAY_AUDIOCD3 40323 // plays the 3nd
-#define ID_MAIN_PLAY_AUDIOCD4 40323 // plays the 4nd
-
-// IDs 42000 to 45000 are reserved for gen_ff
-// IDs from 45000 to 57000 are reserved for library
-
-#endif//_WA_IPC_H_
-
-/*
-** EOF.. Enjoy.
-*/
\ No newline at end of file