Commit ed652245 authored by Ryan C. Gordon's avatar Ryan C. Gordon

Allow builds that reduce or eliminate the converters/resamplers.

We should probably give options to drop resamplers by channels, too, for
 developers that know they'll never need more than stereo, etc.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403481
parent 0e098f09
...@@ -62,6 +62,29 @@ sub outputHeader { ...@@ -62,6 +62,29 @@ sub outputHeader {
#include "SDL_audio.h" #include "SDL_audio.h"
#include "SDL_audio_c.h" #include "SDL_audio_c.h"
#ifndef DEBUG_CONVERT
#define DEBUG_CONVERT 0
#endif
/* If you can guarantee your data and need space, you can eliminate code... */
/* Just build the arbitrary resamplers if you're saving code space. */
#ifndef LESS_RESAMPLERS
#define LESS_RESAMPLERS 0
#endif
/* Don't build any resamplers if you're REALLY saving code space. */
#ifndef NO_RESAMPLERS
#define NO_RESAMPLERS 0
#endif
/* Don't build any type converters if you're saving code space. */
#ifndef NO_CONVERTERS
#define NO_CONVERTERS 0
#endif
/* *INDENT-OFF* */ /* *INDENT-OFF* */
EOF EOF
...@@ -290,6 +313,7 @@ EOF ...@@ -290,6 +313,7 @@ EOF
sub buildTypeConverters { sub buildTypeConverters {
print "#if !NO_CONVERTERS\n\n";
foreach (@audiotypes) { foreach (@audiotypes) {
my $from = $_; my $from = $_;
foreach (@audiotypes) { foreach (@audiotypes) {
...@@ -297,8 +321,10 @@ sub buildTypeConverters { ...@@ -297,8 +321,10 @@ sub buildTypeConverters {
buildCvtFunc($from, $to); buildCvtFunc($from, $to);
} }
} }
print "#endif /* !NO_CONVERTERS */\n\n\n";
print "const SDL_AudioTypeFilters sdl_audio_type_filters[] =\n{\n"; print "const SDL_AudioTypeFilters sdl_audio_type_filters[] =\n{\n";
print "#if !NO_CONVERTERS\n";
foreach (@audiotypes) { foreach (@audiotypes) {
my $from = $_; my $from = $_;
foreach (@audiotypes) { foreach (@audiotypes) {
...@@ -310,6 +336,7 @@ sub buildTypeConverters { ...@@ -310,6 +336,7 @@ sub buildTypeConverters {
} }
} }
} }
print "#endif /* !NO_CONVERTERS */\n";
print "};\n\n\n"; print "};\n\n\n";
} }
...@@ -652,6 +679,17 @@ EOF ...@@ -652,6 +679,17 @@ EOF
} }
sub buildResamplers { sub buildResamplers {
print "#if !NO_RESAMPLERS\n\n";
foreach (@audiotypes) {
my $from = $_;
foreach (@channels) {
my $channel = $_;
buildArbitraryResampleFunc($from, $channel, 1);
buildArbitraryResampleFunc($from, $channel, 0);
}
}
print "\n#if !LESS_RESAMPLERS\n\n";
foreach (@audiotypes) { foreach (@audiotypes) {
my $from = $_; my $from = $_;
foreach (@channels) { foreach (@channels) {
...@@ -660,17 +698,32 @@ sub buildResamplers { ...@@ -660,17 +698,32 @@ sub buildResamplers {
buildMultipleResampleFunc($from, $channel, 1, $multiple); buildMultipleResampleFunc($from, $channel, 1, $multiple);
buildMultipleResampleFunc($from, $channel, 0, $multiple); buildMultipleResampleFunc($from, $channel, 0, $multiple);
} }
buildArbitraryResampleFunc($from, $channel, 1);
buildArbitraryResampleFunc($from, $channel, 0);
} }
} }
print "#endif /* !LESS_RESAMPLERS */\n";
print "#endif /* !NO_RESAMPLERS */\n\n\n";
print "const SDL_AudioRateFilters sdl_audio_rate_filters[] =\n{\n"; print "const SDL_AudioRateFilters sdl_audio_rate_filters[] =\n{\n";
print "#if !NO_RESAMPLERS\n";
foreach (@audiotypes) { foreach (@audiotypes) {
my $from = $_; my $from = $_;
foreach (@channels) { foreach (@channels) {
my $channel = $_; my $channel = $_;
for (my $multiple = 0; $multiple <= 4; $multiple += 2) { for (my $upsample = 0; $upsample <= 1; $upsample++) {
my $hashid = getResamplerHashId($from, $channel, $upsample, 0);
my $sym = $funcs{$hashid};
print(" { AUDIO_$from, $channel, $upsample, 0, $sym },\n");
}
}
}
print "#if !LESS_RESAMPLERS\n";
foreach (@audiotypes) {
my $from = $_;
foreach (@channels) {
my $channel = $_;
for (my $multiple = 2; $multiple <= 4; $multiple += 2) {
for (my $upsample = 0; $upsample <= 1; $upsample++) { for (my $upsample = 0; $upsample <= 1; $upsample++) {
my $hashid = getResamplerHashId($from, $channel, $upsample, $multiple); my $hashid = getResamplerHashId($from, $channel, $upsample, $multiple);
my $sym = $funcs{$hashid}; my $sym = $funcs{$hashid};
...@@ -680,6 +733,8 @@ sub buildResamplers { ...@@ -680,6 +733,8 @@ sub buildResamplers {
} }
} }
print "#endif /* !LESS_RESAMPLERS */\n";
print "#endif /* !NO_RESAMPLERS */\n";
print "};\n\n"; print "};\n\n";
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment