Assumption about there being MPEG1-only samplerates available and therefore MPEG1-only bitrates for recording is no longer valid. Fix that.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13579 a1c6a512-1295-4272-9138-f99709370657
diff --git a/apps/enc_config.c b/apps/enc_config.c
index 3323c8d..c916b29 100644
--- a/apps/enc_config.c
+++ b/apps/enc_config.c
@@ -134,7 +134,7 @@
         /* mono only */
         { "16 kBit/s",  TALK_ID(16,  UNIT_KBIT) }, /*   2 */
         { "24 kBit/s",  TALK_ID(24,  UNIT_KBIT) }, /*   2 */
-#endif
+#endif /* HAVE_MPEG2_SAMPR */
         /* stereo/mono */
         { "32 kBit/s",  TALK_ID(32,  UNIT_KBIT) }, /* 1,2 */
         { "40 kBit/s",  TALK_ID(40,  UNIT_KBIT) }, /* 1,2 */
@@ -145,16 +145,19 @@
         { "96 kBit/s",  TALK_ID(96,  UNIT_KBIT) }, /* 1,2 */
         { "112 kBit/s", TALK_ID(112, UNIT_KBIT) }, /* 1,2 */
         { "128 kBit/s", TALK_ID(128, UNIT_KBIT) }, /* 1,2 */
-#if 0
+        /* Leave out 144 when there is both MPEG 1 and 2  */
+#if defined(HAVE_MPEG2_SAMPR) && !defined (HAVE_MPEG1_SAMPR)
         /* oddball MPEG2-only rate stuck in the middle */
         { "144 kBit/s", TALK_ID(144, UNIT_KBIT) }, /*   2 */
 #endif
         { "160 kBit/s", TALK_ID(160, UNIT_KBIT) }, /* 1,2 */
+#ifdef HAVE_MPEG1_SAMPR
         /* stereo only */
         { "192 kBit/s", TALK_ID(192, UNIT_KBIT) }, /* 1   */
         { "224 kBit/s", TALK_ID(224, UNIT_KBIT) }, /* 1   */
         { "256 kBit/s", TALK_ID(256, UNIT_KBIT) }, /* 1   */
         { "320 kBit/s", TALK_ID(320, UNIT_KBIT) }, /* 1   */
+#endif
     };
 
     unsigned long rate_list[ARRAYLEN(items)];
@@ -163,10 +166,17 @@
        storing and maintaining yet another list of numbers */
     int n_rates = make_list_from_caps32(
             MPEG1_BITR_CAPS | MPEG2_BITR_CAPS, mp3_enc_bitr,
-            MPEG1_BITR_CAPS
-#ifdef HAVE_MPEG2_SAMPR
-            | (MPEG2_BITR_CAPS & ~(MP3_BITR_CAP_144 | MP3_BITR_CAP_8))
+            0
+#ifdef HAVE_MPEG1_SAMPR
+            | MPEG1_BITR_CAPS
 #endif
+#ifdef HAVE_MPEG2_SAMPR
+#ifdef HAVE_MPEG1_SAMPR
+            | (MPEG2_BITR_CAPS & ~(MP3_BITR_CAP_144 | MP3_BITR_CAP_8))
+#else
+            | (MPEG2_BITR_CAPS & ~(MP3_BITR_CAP_8))
+#endif
+#endif /* HAVE_MPEG2_SAMPR */
             , rate_list);
 
     int index = round_value_to_list32(cfg->mp3_enc.bitrate, rate_list,
diff --git a/firmware/export/enc_base.h b/firmware/export/enc_base.h
index e1baa25..a9eff52 100644
--- a/firmware/export/enc_base.h
+++ b/firmware/export/enc_base.h
@@ -75,15 +75,17 @@
 #define MPEG2_5_BITR_CAPS   MPEG2_BITR_CAPS
 #endif
 
-/* Assume 44100 is always available and therefore MPEG1 */
-
 /* HAVE_MPEG* defines mainly apply to the bitrate menu */
-#if (REC_SAMPR_CAPS & MPEG2_SAMPR_CAPS) || defined (HAVE_SPDIF_IN)
+#if (REC_SAMPR_CAPS & MPEG1_SAMPR_CAPS) || defined (HAVE_SPDIF_REC)
+#define HAVE_MPEG1_SAMPR
+#endif
+
+#if (REC_SAMPR_CAPS & MPEG2_SAMPR_CAPS) || defined (HAVE_SPDIF_REC)
 #define HAVE_MPEG2_SAMPR
 #endif
 
 #if 0
-#if (REC_SAMPR_CAPS & MPEG2_5_SAMPR_CAPS) || defined (HAVE_SPDIF_IN)
+#if (REC_SAMPR_CAPS & MPEG2_5_SAMPR_CAPS) || defined (HAVE_SPDIF_REC)
 #define HAVE_MPEG2_5_SAMPR
 #endif
 #endif /* 0 */