summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Wilgus <wilgus.william@gmail.com>2021-08-10 07:56:33 -0400
committerWilliam Wilgus <wilgus.william@gmail.com>2021-08-10 07:56:33 -0400
commitee6b737b651e45b1926e7d343d977480014fdc07 (patch)
tree601a7e7984e7391d406c536f7e6ac9d1f2b68ab8
parent4fb5aeb096ec911c54662caa8606c413b91deb00 (diff)
downloadrockbox-ee6b737b651e45b1926e7d343d977480014fdc07.tar.gz
rockbox-ee6b737b651e45b1926e7d343d977480014fdc07.zip
pcm_record.c iAudioM5 FixRed
Share a bit of code in order to free up iRam for the iAudio M5 Change-Id: Ief05d2614a203df17821ed32b04f5c75a53ca08b
-rw-r--r--apps/recorder/pcm_record.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/apps/recorder/pcm_record.c b/apps/recorder/pcm_record.c
index 0a6e1b5a51..9b0e779485 100644
--- a/apps/recorder/pcm_record.c
+++ b/apps/recorder/pcm_record.c
@@ -890,12 +890,12 @@ copy_buffer_mono_lr(void *dst, const void *src, size_t src_size)
890 890
891/* Copy with mono conversion - output 1/2 size of input */ 891/* Copy with mono conversion - output 1/2 size of input */
892static void * ICODE_ATTR 892static void * ICODE_ATTR
893copy_buffer_mono_l(void *dst, const void *src, size_t src_size) 893copy_buffer_mono_r(void *dst, const void *src, size_t src_size)
894{ 894{
895 int16_t *d = (int16_t*)dst; 895 int16_t *d = (int16_t*)dst;
896 int16_t const *s = (int16_t const*)src - 2; 896 int16_t const *s = (int16_t const*)src - 1;
897 ssize_t copy_size = src_size; 897 ssize_t copy_size = src_size;
898 /* mono = L */ 898 /* mono = R */
899 do 899 do
900 *d++ = *(s += 2); 900 *d++ = *(s += 2);
901 while ((copy_size -= PCM_SAMP_SIZE) > 0); 901 while ((copy_size -= PCM_SAMP_SIZE) > 0);
@@ -903,20 +903,28 @@ copy_buffer_mono_l(void *dst, const void *src, size_t src_size)
903 return dst; 903 return dst;
904} 904}
905 905
906#if 1
907static void * ICODE_ATTR
908copy_buffer_mono_l(void *dst, const void *src, size_t src_size)
909{
910 return copy_buffer_mono_r(dst, src -1, src_size);
911}
912#else
906/* Copy with mono conversion - output 1/2 size of input */ 913/* Copy with mono conversion - output 1/2 size of input */
907static void * ICODE_ATTR 914static void * ICODE_ATTR
908copy_buffer_mono_r(void *dst, const void *src, size_t src_size) 915copy_buffer_mono_l(void *dst, const void *src, size_t src_size)
909{ 916{
910 int16_t *d = (int16_t*)dst; 917 int16_t *d = (int16_t*)dst;
911 int16_t const *s = (int16_t const*)src - 1; 918 int16_t const *s = (int16_t const*)src - 2;
912 ssize_t copy_size = src_size; 919 ssize_t copy_size = src_size;
913 /* mono = R */ 920 /* mono = L */
914 do 921 do
915 *d++ = *(s += 2); 922 *d++ = *(s += 2);
916 while ((copy_size -= PCM_SAMP_SIZE) > 0); 923 while ((copy_size -= PCM_SAMP_SIZE) > 0);
917 924
918 return dst; 925 return dst;
919} 926}
927#endif
920 928
921 929
922/** pcm_rec_* group **/ 930/** pcm_rec_* group **/