I downloaded the daily build of Rockbox yesterday for my video ipod. Today
I decided to recompile without the audio recording features (I don't have a
mic on this ipod). When I commented out the line defining HAVE_RECORDING,
it wouldn't compile without the below patch because SOUND_LEFT_GAIN,
SOUND_RIGHT_GAIN and SOUND_MIC_GAIN only get defined in
firmware/export/audiohw.h if HAVE_RECORDING is defined. In order for
HAVE_RECORDING to work properly, that value needs to be tested in wm8758.c
as it is in, say, wm8731.c.
I haven't gotten very deep in the code, but casual inspection suggests
as3514.c and other some others might suffer from the same defect. The one
file patched below was the only one I needed to change for this target.
Index: firmware/drivers/audio/wm8758.c
===================================================================
--- firmware/drivers/audio/wm8758.c (revision 17585)
+++ firmware/drivers/audio/wm8758.c (working copy)
@@ -38,9 +38,11 @@
[SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0},
[SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0},
[SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100},
+#if defined(HAVE_RECORDING)
[SOUND_LEFT_GAIN] = {"dB", 1, 1,-128, 96, 0},
[SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0},
[SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16},
+#endif
[SOUND_BASS_CUTOFF] = {"", 0, 1, 1, 4, 1},
[SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1},
};