summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/features.txt4
-rw-r--r--apps/lang/catala.lang8
-rw-r--r--apps/lang/czech.lang8
-rw-r--r--apps/lang/dansk.lang8
-rw-r--r--apps/lang/deutsch.lang8
-rw-r--r--apps/lang/english.lang8
-rw-r--r--apps/lang/espanol.lang8
-rw-r--r--apps/lang/francais.lang8
-rw-r--r--apps/lang/hebrew.lang8
-rw-r--r--apps/lang/hrvatski.lang8
-rw-r--r--apps/lang/italiano.lang8
-rw-r--r--apps/lang/japanese.lang8
-rw-r--r--apps/lang/nederlands.lang8
-rw-r--r--apps/lang/polski.lang8
-rw-r--r--apps/lang/portugues-brasileiro.lang8
-rw-r--r--apps/lang/portugues.lang8
-rw-r--r--apps/lang/russian.lang8
-rw-r--r--apps/lang/slovak.lang8
-rw-r--r--apps/lang/slovenscina.lang8
-rw-r--r--apps/lang/srpski.lang8
-rw-r--r--apps/lang/svenska.lang8
-rw-r--r--apps/lang/tagalog.lang8
-rw-r--r--apps/lang/thai.lang8
-rw-r--r--apps/menus/display_menu.c27
-rw-r--r--apps/menus/recording_menu.c23
-rw-r--r--apps/recorder/peakmeter.c121
-rw-r--r--apps/recorder/peakmeter.h6
-rw-r--r--apps/recorder/recording.c132
-rw-r--r--apps/settings.h4
-rw-r--r--apps/settings_list.c10
-rw-r--r--firmware/export/config/iriverh100.h2
-rw-r--r--firmware/export/config/iriverh120.h2
-rw-r--r--firmware/export/config/iriverh300.h2
33 files changed, 266 insertions, 243 deletions
diff --git a/apps/features.txt b/apps/features.txt
index 54e6afddf3..93b81ff4a5 100644
--- a/apps/features.txt
+++ b/apps/features.txt
@@ -129,8 +129,8 @@ recording_mic
129#endif 129#endif
130#endif 130#endif
131 131
132#if defined(HAVE_RECORDING_HISTOGRAM) 132#if defined(HAVE_HISTOGRAM)
133recording_histogram 133histogram
134#endif 134#endif
135 135
136#if defined(HAVE_REMOTE_LCD) 136#if defined(HAVE_REMOTE_LCD)
diff --git a/apps/lang/catala.lang b/apps/lang/catala.lang
index f133e3dd9e..ec79dd7d89 100644
--- a/apps/lang/catala.lang
+++ b/apps/lang/catala.lang
@@ -12078,20 +12078,20 @@
12078 </voice> 12078 </voice>
12079</phrase> 12079</phrase>
12080<phrase> 12080<phrase>
12081 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12081 id: LANG_HISTOGRAM_INTERVAL
12082 desc: in record settings menu 12082 desc: in record settings menu
12083 user: core 12083 user: core
12084 <source> 12084 <source>
12085 *: none 12085 *: none
12086 recording_histogram: "Histogram interval" 12086 histogram: "Histogram interval"
12087 </source> 12087 </source>
12088 <dest> 12088 <dest>
12089 *: none 12089 *: none
12090 recording_histogram: "Intèrval d'histograma" 12090 histogram: "Intèrval d'histograma"
12091 </dest> 12091 </dest>
12092 <voice> 12092 <voice>
12093 *: none 12093 *: none
12094 recording_histogram: "Intèrval d'histograma" 12094 histogram: "Intèrval d'histograma"
12095 </voice> 12095 </voice>
12096</phrase> 12096</phrase>
12097<phrase> 12097<phrase>
diff --git a/apps/lang/czech.lang b/apps/lang/czech.lang
index 5d99107296..43bf034071 100644
--- a/apps/lang/czech.lang
+++ b/apps/lang/czech.lang
@@ -12086,20 +12086,20 @@
12086 </voice> 12086 </voice>
12087</phrase> 12087</phrase>
12088<phrase> 12088<phrase>
12089 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12089 id: LANG_HISTOGRAM_INTERVAL
12090 desc: in record settings menu 12090 desc: in record settings menu
12091 user: core 12091 user: core
12092 <source> 12092 <source>
12093 *: none 12093 *: none
12094 recording_histogram: "Histogram interval" 12094 histogram: "Histogram interval"
12095 </source> 12095 </source>
12096 <dest> 12096 <dest>
12097 *: none 12097 *: none
12098 recording_histogram: "Rozsah histogramu" 12098 histogram: "Rozsah histogramu"
12099 </dest> 12099 </dest>
12100 <voice> 12100 <voice>
12101 *: none 12101 *: none
12102 recording_histogram: "Rozsah histogramu" 12102 histogram: "Rozsah histogramu"
12103 </voice> 12103 </voice>
12104</phrase> 12104</phrase>
12105<phrase> 12105<phrase>
diff --git a/apps/lang/dansk.lang b/apps/lang/dansk.lang
index 3d4557ac4f..20ebb5e58b 100644
--- a/apps/lang/dansk.lang
+++ b/apps/lang/dansk.lang
@@ -12566,20 +12566,20 @@
12566 </voice> 12566 </voice>
12567</phrase> 12567</phrase>
12568<phrase> 12568<phrase>
12569 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12569 id: LANG_HISTOGRAM_INTERVAL
12570 desc: in record settings menu 12570 desc: in record settings menu
12571 user: core 12571 user: core
12572 <source> 12572 <source>
12573 *: none 12573 *: none
12574 recording_histogram: "Histogram interval" 12574 histogram: "Histogram interval"
12575 </source> 12575 </source>
12576 <dest> 12576 <dest>
12577 *: none 12577 *: none
12578 recording_histogram: "Histogram interval" 12578 histogram: "Histogram interval"
12579 </dest> 12579 </dest>
12580 <voice> 12580 <voice>
12581 *: none 12581 *: none
12582 recording_histogram: "Histogram interval" 12582 histogram: "Histogram interval"
12583 </voice> 12583 </voice>
12584</phrase> 12584</phrase>
12585<phrase> 12585<phrase>
diff --git a/apps/lang/deutsch.lang b/apps/lang/deutsch.lang
index ccaa140b37..75004b44db 100644
--- a/apps/lang/deutsch.lang
+++ b/apps/lang/deutsch.lang
@@ -12440,20 +12440,20 @@
12440 </voice> 12440 </voice>
12441</phrase> 12441</phrase>
12442<phrase> 12442<phrase>
12443 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12443 id: LANG_HISTOGRAM_INTERVAL
12444 desc: in record settings menu 12444 desc: in record settings menu
12445 user: core 12445 user: core
12446 <source> 12446 <source>
12447 *: none 12447 *: none
12448 recording_histogram: "Histogram interval" 12448 histogram: "Histogram interval"
12449 </source> 12449 </source>
12450 <dest> 12450 <dest>
12451 *: none 12451 *: none
12452 recording_histogram: "Histogrammintervall" 12452 histogram: "Histogrammintervall"
12453 </dest> 12453 </dest>
12454 <voice> 12454 <voice>
12455 *: none 12455 *: none
12456 recording_histogram: "Histogrammintervall" 12456 histogram: "Histogrammintervall"
12457 </voice> 12457 </voice>
12458</phrase> 12458</phrase>
12459<phrase> 12459<phrase>
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 128d5c5fad..de2384214d 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12169,20 +12169,20 @@
12169 </voice> 12169 </voice>
12170</phrase> 12170</phrase>
12171<phrase> 12171<phrase>
12172 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12172 id: LANG_HISTOGRAM_INTERVAL
12173 desc: in record settings menu 12173 desc: in record settings menu
12174 user: core 12174 user: core
12175 <source> 12175 <source>
12176 *: none 12176 *: none
12177 recording_histogram: "Histogram interval" 12177 histogram: "Histogram interval"
12178 </source> 12178 </source>
12179 <dest> 12179 <dest>
12180 *: none 12180 *: none
12181 recording_histogram: "Histogram interval" 12181 histogram: "Histogram interval"
12182 </dest> 12182 </dest>
12183 <voice> 12183 <voice>
12184 *: none 12184 *: none
12185 recording_histogram: "Histogram interval" 12185 histogram: "Histogram interval"
12186 </voice> 12186 </voice>
12187</phrase> 12187</phrase>
12188<phrase> 12188<phrase>
diff --git a/apps/lang/espanol.lang b/apps/lang/espanol.lang
index cf4266c062..f689bd6999 100644
--- a/apps/lang/espanol.lang
+++ b/apps/lang/espanol.lang
@@ -12372,20 +12372,20 @@
12372 </voice> 12372 </voice>
12373</phrase> 12373</phrase>
12374<phrase> 12374<phrase>
12375 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12375 id: LANG_HISTOGRAM_INTERVAL
12376 desc: in record settings menu 12376 desc: in record settings menu
12377 user: core 12377 user: core
12378 <source> 12378 <source>
12379 *: none 12379 *: none
12380 recording_histogram: "Histogram interval" 12380 histogram: "Histogram interval"
12381 </source> 12381 </source>
12382 <dest> 12382 <dest>
12383 *: none 12383 *: none
12384 recording_histogram: "Intervalo del histograma" 12384 histogram: "Intervalo del histograma"
12385 </dest> 12385 </dest>
12386 <voice> 12386 <voice>
12387 *: none 12387 *: none
12388 recording_histogram: "Intervalo del histograma" 12388 histogram: "Intervalo del histograma"
12389 </voice> 12389 </voice>
12390</phrase> 12390</phrase>
12391<phrase> 12391<phrase>
diff --git a/apps/lang/francais.lang b/apps/lang/francais.lang
index a1a7566647..2adf811d54 100644
--- a/apps/lang/francais.lang
+++ b/apps/lang/francais.lang
@@ -12110,20 +12110,20 @@
12110 </voice> 12110 </voice>
12111</phrase> 12111</phrase>
12112<phrase> 12112<phrase>
12113 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12113 id: LANG_HISTOGRAM_INTERVAL
12114 desc: in record settings menu 12114 desc: in record settings menu
12115 user: core 12115 user: core
12116 <source> 12116 <source>
12117 *: none 12117 *: none
12118 recording_histogram: "Histogram interval" 12118 histogram: "Histogram interval"
12119 </source> 12119 </source>
12120 <dest> 12120 <dest>
12121 *: none 12121 *: none
12122 recording_histogram: "Intervalle de l'histogramme" 12122 histogram: "Intervalle de l'histogramme"
12123 </dest> 12123 </dest>
12124 <voice> 12124 <voice>
12125 *: none 12125 *: none
12126 recording_histogram: "Intervalle de l'histogramme" 12126 histogram: "Intervalle de l'histogramme"
12127 </voice> 12127 </voice>
12128</phrase> 12128</phrase>
12129<phrase> 12129<phrase>
diff --git a/apps/lang/hebrew.lang b/apps/lang/hebrew.lang
index 2400b0bb53..b6937db808 100644
--- a/apps/lang/hebrew.lang
+++ b/apps/lang/hebrew.lang
@@ -12548,20 +12548,20 @@
12548 </voice> 12548 </voice>
12549</phrase> 12549</phrase>
12550<phrase> 12550<phrase>
12551 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12551 id: LANG_HISTOGRAM_INTERVAL
12552 desc: in record settings menu 12552 desc: in record settings menu
12553 user: core 12553 user: core
12554 <source> 12554 <source>
12555 *: none 12555 *: none
12556 recording_histogram: "Histogram interval" 12556 histogram: "Histogram interval"
12557 </source> 12557 </source>
12558 <dest> 12558 <dest>
12559 *: none 12559 *: none
12560 recording_histogram: "Histogram interval" 12560 histogram: "Histogram interval"
12561 </dest> 12561 </dest>
12562 <voice> 12562 <voice>
12563 *: none 12563 *: none
12564 recording_histogram: "Histogram interval" 12564 histogram: "Histogram interval"
12565 </voice> 12565 </voice>
12566</phrase> 12566</phrase>
12567<phrase> 12567<phrase>
diff --git a/apps/lang/hrvatski.lang b/apps/lang/hrvatski.lang
index d681a0ed6c..1def22085f 100644
--- a/apps/lang/hrvatski.lang
+++ b/apps/lang/hrvatski.lang
@@ -12087,20 +12087,20 @@
12087 </voice> 12087 </voice>
12088</phrase> 12088</phrase>
12089<phrase> 12089<phrase>
12090 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12090 id: LANG_HISTOGRAM_INTERVAL
12091 desc: in record settings menu 12091 desc: in record settings menu
12092 user: core 12092 user: core
12093 <source> 12093 <source>
12094 *: none 12094 *: none
12095 recording_histogram: "Histogram interval" 12095 histogram: "Histogram interval"
12096 </source> 12096 </source>
12097 <dest> 12097 <dest>
12098 *: none 12098 *: none
12099 recording_histogram: "Interval histograma" 12099 histogram: "Interval histograma"
12100 </dest> 12100 </dest>
12101 <voice> 12101 <voice>
12102 *: none 12102 *: none
12103 recording_histogram: "Interval histograma" 12103 histogram: "Interval histograma"
12104 </voice> 12104 </voice>
12105</phrase> 12105</phrase>
12106<phrase> 12106<phrase>
diff --git a/apps/lang/italiano.lang b/apps/lang/italiano.lang
index 677b242e3d..fa95de5086 100644
--- a/apps/lang/italiano.lang
+++ b/apps/lang/italiano.lang
@@ -12089,20 +12089,20 @@
12089 </voice> 12089 </voice>
12090</phrase> 12090</phrase>
12091<phrase> 12091<phrase>
12092 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12092 id: LANG_HISTOGRAM_INTERVAL
12093 desc: in record settings menu 12093 desc: in record settings menu
12094 user: core 12094 user: core
12095 <source> 12095 <source>
12096 *: none 12096 *: none
12097 recording_histogram: "Histogram interval" 12097 histogram: "Histogram interval"
12098 </source> 12098 </source>
12099 <dest> 12099 <dest>
12100 *: none 12100 *: none
12101 recording_histogram: "Intervallo Istogramma" 12101 histogram: "Intervallo Istogramma"
12102 </dest> 12102 </dest>
12103 <voice> 12103 <voice>
12104 *: none 12104 *: none
12105 recording_histogram: "Intervallo Istogramma" 12105 histogram: "Intervallo Istogramma"
12106 </voice> 12106 </voice>
12107</phrase> 12107</phrase>
12108<phrase> 12108<phrase>
diff --git a/apps/lang/japanese.lang b/apps/lang/japanese.lang
index f1c45c9187..d0b0ae8434 100644
--- a/apps/lang/japanese.lang
+++ b/apps/lang/japanese.lang
@@ -12093,20 +12093,20 @@
12093 </voice> 12093 </voice>
12094</phrase> 12094</phrase>
12095<phrase> 12095<phrase>
12096 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12096 id: LANG_HISTOGRAM_INTERVAL
12097 desc: in record settings menu 12097 desc: in record settings menu
12098 user: core 12098 user: core
12099 <source> 12099 <source>
12100 *: none 12100 *: none
12101 recording_histogram: "Histogram interval" 12101 histogram: "Histogram interval"
12102 </source> 12102 </source>
12103 <dest> 12103 <dest>
12104 *: none 12104 *: none
12105 recording_histogram: "ヒストグラムの間隔" 12105 histogram: "ヒストグラムの間隔"
12106 </dest> 12106 </dest>
12107 <voice> 12107 <voice>
12108 *: none 12108 *: none
12109 recording_histogram: "ヒストグラムの間隔" 12109 histogram: "ヒストグラムの間隔"
12110 </voice> 12110 </voice>
12111</phrase> 12111</phrase>
12112<phrase> 12112<phrase>
diff --git a/apps/lang/nederlands.lang b/apps/lang/nederlands.lang
index db552d52c6..08bf3dfa81 100644
--- a/apps/lang/nederlands.lang
+++ b/apps/lang/nederlands.lang
@@ -12092,20 +12092,20 @@
12092 </voice> 12092 </voice>
12093</phrase> 12093</phrase>
12094<phrase> 12094<phrase>
12095 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12095 id: LANG_HISTOGRAM_INTERVAL
12096 desc: in record settings menu 12096 desc: in record settings menu
12097 user: core 12097 user: core
12098 <source> 12098 <source>
12099 *: none 12099 *: none
12100 recording_histogram: "Histogram interval" 12100 histogram: "Histogram interval"
12101 </source> 12101 </source>
12102 <dest> 12102 <dest>
12103 *: none 12103 *: none
12104 recording_histogram: "Histogram interval" 12104 histogram: "Histogram interval"
12105 </dest> 12105 </dest>
12106 <voice> 12106 <voice>
12107 *: none 12107 *: none
12108 recording_histogram: "Histogram interval" 12108 histogram: "Histogram interval"
12109 </voice> 12109 </voice>
12110</phrase> 12110</phrase>
12111<phrase> 12111<phrase>
diff --git a/apps/lang/polski.lang b/apps/lang/polski.lang
index d54afde4e9..00e1ddeaf8 100644
--- a/apps/lang/polski.lang
+++ b/apps/lang/polski.lang
@@ -12382,20 +12382,20 @@
12382 </voice> 12382 </voice>
12383</phrase> 12383</phrase>
12384<phrase> 12384<phrase>
12385 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12385 id: LANG_HISTOGRAM_INTERVAL
12386 desc: in record settings menu 12386 desc: in record settings menu
12387 user: core 12387 user: core
12388 <source> 12388 <source>
12389 *: none 12389 *: none
12390 recording_histogram: "Histogram interval" 12390 histogram: "Histogram interval"
12391 </source> 12391 </source>
12392 <dest> 12392 <dest>
12393 *: none 12393 *: none
12394 recording_histogram: "Przedziały histogramu" 12394 histogram: "Przedziały histogramu"
12395 </dest> 12395 </dest>
12396 <voice> 12396 <voice>
12397 *: none 12397 *: none
12398 recording_histogram: "Przedziały histogramu" 12398 histogram: "Przedziały histogramu"
12399 </voice> 12399 </voice>
12400</phrase> 12400</phrase>
12401<phrase> 12401<phrase>
diff --git a/apps/lang/portugues-brasileiro.lang b/apps/lang/portugues-brasileiro.lang
index 0bc6618887..3036a79151 100644
--- a/apps/lang/portugues-brasileiro.lang
+++ b/apps/lang/portugues-brasileiro.lang
@@ -12085,20 +12085,20 @@
12085 </voice> 12085 </voice>
12086</phrase> 12086</phrase>
12087<phrase> 12087<phrase>
12088 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12088 id: LANG_HISTOGRAM_INTERVAL
12089 desc: in record settings menu 12089 desc: in record settings menu
12090 user: core 12090 user: core
12091 <source> 12091 <source>
12092 *: none 12092 *: none
12093 recording_histogram: "Histogram interval" 12093 histogram: "Histogram interval"
12094 </source> 12094 </source>
12095 <dest> 12095 <dest>
12096 *: none 12096 *: none
12097 recording_histogram: "Intervalo do Histograma" 12097 histogram: "Intervalo do Histograma"
12098 </dest> 12098 </dest>
12099 <voice> 12099 <voice>
12100 *: none 12100 *: none
12101 recording_histogram: "Intervalo do Histograma" 12101 histogram: "Intervalo do Histograma"
12102 </voice> 12102 </voice>
12103</phrase> 12103</phrase>
12104<phrase> 12104<phrase>
diff --git a/apps/lang/portugues.lang b/apps/lang/portugues.lang
index 3917140b35..f2ce99bb73 100644
--- a/apps/lang/portugues.lang
+++ b/apps/lang/portugues.lang
@@ -12537,20 +12537,20 @@
12537 </voice> 12537 </voice>
12538</phrase> 12538</phrase>
12539<phrase> 12539<phrase>
12540 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12540 id: LANG_HISTOGRAM_INTERVAL
12541 desc: in record settings menu 12541 desc: in record settings menu
12542 user: core 12542 user: core
12543 <source> 12543 <source>
12544 *: none 12544 *: none
12545 recording_histogram: "Histogram interval" 12545 histogram: "Histogram interval"
12546 </source> 12546 </source>
12547 <dest> 12547 <dest>
12548 *: none 12548 *: none
12549 recording_histogram: "Intervalo do Histograma" 12549 histogram: "Intervalo do Histograma"
12550 </dest> 12550 </dest>
12551 <voice> 12551 <voice>
12552 *: none 12552 *: none
12553 recording_histogram: "Intervalo do Histograma" 12553 histogram: "Intervalo do Histograma"
12554 </voice> 12554 </voice>
12555</phrase> 12555</phrase>
12556<phrase> 12556<phrase>
diff --git a/apps/lang/russian.lang b/apps/lang/russian.lang
index dd43c4e735..cbe432d873 100644
--- a/apps/lang/russian.lang
+++ b/apps/lang/russian.lang
@@ -12520,20 +12520,20 @@
12520 </voice> 12520 </voice>
12521</phrase> 12521</phrase>
12522<phrase> 12522<phrase>
12523 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12523 id: LANG_HISTOGRAM_INTERVAL
12524 desc: in record settings menu 12524 desc: in record settings menu
12525 user: core 12525 user: core
12526 <source> 12526 <source>
12527 *: none 12527 *: none
12528 recording_histogram: "Histogram interval" 12528 histogram: "Histogram interval"
12529 </source> 12529 </source>
12530 <dest> 12530 <dest>
12531 *: none 12531 *: none
12532 recording_histogram: "Интервал гистограммы" 12532 histogram: "Интервал гистограммы"
12533 </dest> 12533 </dest>
12534 <voice> 12534 <voice>
12535 *: none 12535 *: none
12536 recording_histogram: "Интервал гистограммы" 12536 histogram: "Интервал гистограммы"
12537 </voice> 12537 </voice>
12538</phrase> 12538</phrase>
12539<phrase> 12539<phrase>
diff --git a/apps/lang/slovak.lang b/apps/lang/slovak.lang
index d4fc98567c..94a175eb15 100644
--- a/apps/lang/slovak.lang
+++ b/apps/lang/slovak.lang
@@ -12085,20 +12085,20 @@
12085 </voice> 12085 </voice>
12086</phrase> 12086</phrase>
12087<phrase> 12087<phrase>
12088 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12088 id: LANG_HISTOGRAM_INTERVAL
12089 desc: in record settings menu 12089 desc: in record settings menu
12090 user: core 12090 user: core
12091 <source> 12091 <source>
12092 *: none 12092 *: none
12093 recording_histogram: "Histogram interval" 12093 histogram: "Histogram interval"
12094 </source> 12094 </source>
12095 <dest> 12095 <dest>
12096 *: none 12096 *: none
12097 recording_histogram: "Interval Histogramu" 12097 histogram: "Interval Histogramu"
12098 </dest> 12098 </dest>
12099 <voice> 12099 <voice>
12100 *: none 12100 *: none
12101 recording_histogram: "Interval histogramu" 12101 histogram: "Interval histogramu"
12102 </voice> 12102 </voice>
12103</phrase> 12103</phrase>
12104<phrase> 12104<phrase>
diff --git a/apps/lang/slovenscina.lang b/apps/lang/slovenscina.lang
index 9f1bda76c7..14ef2c98eb 100644
--- a/apps/lang/slovenscina.lang
+++ b/apps/lang/slovenscina.lang
@@ -12011,20 +12011,20 @@
12011 </voice> 12011 </voice>
12012</phrase> 12012</phrase>
12013<phrase> 12013<phrase>
12014 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12014 id: LANG_HISTOGRAM_INTERVAL
12015 desc: in record settings menu 12015 desc: in record settings menu
12016 user: core 12016 user: core
12017 <source> 12017 <source>
12018 *: none 12018 *: none
12019 recording_histogram: "Histogram interval" 12019 histogram: "Histogram interval"
12020 </source> 12020 </source>
12021 <dest> 12021 <dest>
12022 *: none 12022 *: none
12023 recording_histogram: "Histogram interval" 12023 histogram: "Histogram interval"
12024 </dest> 12024 </dest>
12025 <voice> 12025 <voice>
12026 *: none 12026 *: none
12027 recording_histogram: "Histogram interval" 12027 histogram: "Histogram interval"
12028 </voice> 12028 </voice>
12029</phrase> 12029</phrase>
12030<phrase> 12030<phrase>
diff --git a/apps/lang/srpski.lang b/apps/lang/srpski.lang
index 7cd4d94263..179e696363 100644
--- a/apps/lang/srpski.lang
+++ b/apps/lang/srpski.lang
@@ -12499,20 +12499,20 @@
12499 </voice> 12499 </voice>
12500</phrase> 12500</phrase>
12501<phrase> 12501<phrase>
12502 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12502 id: LANG_HISTOGRAM_INTERVAL
12503 desc: in record settings menu 12503 desc: in record settings menu
12504 user: core 12504 user: core
12505 <source> 12505 <source>
12506 *: none 12506 *: none
12507 recording_histogram: "Histogram interval" 12507 histogram: "Histogram interval"
12508 </source> 12508 </source>
12509 <dest> 12509 <dest>
12510 *: none 12510 *: none
12511 recording_histogram: "Интервал хистограма" 12511 histogram: "Интервал хистограма"
12512 </dest> 12512 </dest>
12513 <voice> 12513 <voice>
12514 *: none 12514 *: none
12515 recording_histogram: "Интервал хистограма" 12515 histogram: "Интервал хистограма"
12516 </voice> 12516 </voice>
12517</phrase> 12517</phrase>
12518<phrase> 12518<phrase>
diff --git a/apps/lang/svenska.lang b/apps/lang/svenska.lang
index 6d94e52dfb..ec25e0071d 100644
--- a/apps/lang/svenska.lang
+++ b/apps/lang/svenska.lang
@@ -12091,20 +12091,20 @@
12091 </voice> 12091 </voice>
12092</phrase> 12092</phrase>
12093<phrase> 12093<phrase>
12094 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12094 id: LANG_HISTOGRAM_INTERVAL
12095 desc: in record settings menu 12095 desc: in record settings menu
12096 user: core 12096 user: core
12097 <source> 12097 <source>
12098 *: none 12098 *: none
12099 recording_histogram: "Histogram interval" 12099 histogram: "Histogram interval"
12100 </source> 12100 </source>
12101 <dest> 12101 <dest>
12102 *: none 12102 *: none
12103 recording_histogram: "Histogramintervall" 12103 histogram: "Histogramintervall"
12104 </dest> 12104 </dest>
12105 <voice> 12105 <voice>
12106 *: none 12106 *: none
12107 recording_histogram: "Histogramintervall" 12107 histogram: "Histogramintervall"
12108 </voice> 12108 </voice>
12109</phrase> 12109</phrase>
12110<phrase> 12110<phrase>
diff --git a/apps/lang/tagalog.lang b/apps/lang/tagalog.lang
index f4bbc32bc7..816c039222 100644
--- a/apps/lang/tagalog.lang
+++ b/apps/lang/tagalog.lang
@@ -12559,20 +12559,20 @@
12559 </voice> 12559 </voice>
12560</phrase> 12560</phrase>
12561<phrase> 12561<phrase>
12562 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12562 id: LANG_HISTOGRAM_INTERVAL
12563 desc: in record settings menu 12563 desc: in record settings menu
12564 user: core 12564 user: core
12565 <source> 12565 <source>
12566 *: none 12566 *: none
12567 recording_histogram: "Histogram interval" 12567 histogram: "Histogram interval"
12568 </source> 12568 </source>
12569 <dest> 12569 <dest>
12570 *: none 12570 *: none
12571 recording_histogram: "Histogram interval" 12571 histogram: "Histogram interval"
12572 </dest> 12572 </dest>
12573 <voice> 12573 <voice>
12574 *: none 12574 *: none
12575 recording_histogram: "Histogram interval" 12575 histogram: "Histogram interval"
12576 </voice> 12576 </voice>
12577</phrase> 12577</phrase>
12578<phrase> 12578<phrase>
diff --git a/apps/lang/thai.lang b/apps/lang/thai.lang
index d01fde0689..0fceae4ca4 100644
--- a/apps/lang/thai.lang
+++ b/apps/lang/thai.lang
@@ -12511,20 +12511,20 @@
12511 </voice> 12511 </voice>
12512</phrase> 12512</phrase>
12513<phrase> 12513<phrase>
12514 id: LANG_RECORDING_HISTOGRAM_INTERVAL 12514 id: LANG_HISTOGRAM_INTERVAL
12515 desc: in record settings menu 12515 desc: in record settings menu
12516 user: core 12516 user: core
12517 <source> 12517 <source>
12518 *: none 12518 *: none
12519 recording_histogram: "Histogram interval" 12519 histogram: "Histogram interval"
12520 </source> 12520 </source>
12521 <dest> 12521 <dest>
12522 *: none 12522 *: none
12523 recording_histogram: "ช่วงเวลาฮิสโตแกรม" 12523 histogram: "ช่วงเวลาฮิสโตแกรม"
12524 </dest> 12524 </dest>
12525 <voice> 12525 <voice>
12526 *: none 12526 *: none
12527 recording_histogram: "Histogram interval" 12527 histogram: "Histogram interval"
12528 </voice> 12528 </voice>
12529</phrase> 12529</phrase>
12530<phrase> 12530<phrase>
diff --git a/apps/menus/display_menu.c b/apps/menus/display_menu.c
index 4badf960ba..7e7b5a6903 100644
--- a/apps/menus/display_menu.c
+++ b/apps/menus/display_menu.c
@@ -443,6 +443,30 @@ static int peak_meter_max(void) {
443 settings_apply_pm_range(); 443 settings_apply_pm_range();
444 return retval; 444 return retval;
445} 445}
446
447#if defined(HAVE_HISTOGRAM)
448static bool history_interval(void)
449{
450 static const struct opt_items names[] = {
451 { "0s", TALK_ID(0, UNIT_SEC) },
452 { "1s", TALK_ID(1, UNIT_SEC) },
453 { "2s", TALK_ID(2, UNIT_SEC) },
454 { "4s", TALK_ID(4, UNIT_SEC) }
455 };
456
457 /* reconfigure histogram settings here */
458
459 return set_option(str(LANG_HISTOGRAM_INTERVAL),
460 &global_settings.histogram_interval,
461 INT, names, 4, NULL );
462}
463
464MENUITEM_FUNCTION(histogram, 0,
465 ID2P(LANG_HISTOGRAM_INTERVAL),
466 history_interval, NULL, NULL, Icon_Menu_setting);
467
468#endif
469
446MENUITEM_FUNCTION(peak_meter_scale_item, 0, ID2P(LANG_PM_SCALE), 470MENUITEM_FUNCTION(peak_meter_scale_item, 0, ID2P(LANG_PM_SCALE),
447 peak_meter_scale, NULL, NULL, Icon_NOICON); 471 peak_meter_scale, NULL, NULL, Icon_NOICON);
448MENUITEM_FUNCTION(peak_meter_min_item, 0, ID2P(LANG_PM_MIN), 472MENUITEM_FUNCTION(peak_meter_min_item, 0, ID2P(LANG_PM_MIN),
@@ -455,6 +479,9 @@ MAKE_MENU(peak_meter_menu, ID2P(LANG_PM_MENU), NULL, Icon_NOICON,
455#ifdef HAVE_RECORDING 479#ifdef HAVE_RECORDING
456 &peak_meter_clipcounter, 480 &peak_meter_clipcounter,
457#endif 481#endif
482#ifdef HAVE_HISTOGRAM
483 &histogram,
484#endif
458 &peak_meter_scale_item, &peak_meter_min_item, &peak_meter_max_item); 485 &peak_meter_scale_item, &peak_meter_min_item, &peak_meter_max_item);
459#endif /* HAVE_LCD_BITMAP */ 486#endif /* HAVE_LCD_BITMAP */
460/* PEAK METER MENU */ 487/* PEAK METER MENU */
diff --git a/apps/menus/recording_menu.c b/apps/menus/recording_menu.c
index 8eaeab699c..ae237b1b4a 100644
--- a/apps/menus/recording_menu.c
+++ b/apps/menus/recording_menu.c
@@ -392,26 +392,6 @@ MENUITEM_FUNCTION(agc_cliptime, 0, ID2P(LANG_RECORDING_AGC_CLIPTIME),
392 agc_cliptime_func, NULL, NULL, Icon_Menu_setting); 392 agc_cliptime_func, NULL, NULL, Icon_Menu_setting);
393#endif /* HAVE_AGC */ 393#endif /* HAVE_AGC */
394 394
395#if defined(HAVE_RECORDING_HISTOGRAM)
396static bool history_interval(void)
397{
398 static const struct opt_items names[] = {
399 { "0s", TALK_ID(0, UNIT_SEC) },
400 { "1s", TALK_ID(1, UNIT_SEC) },
401 { "2s", TALK_ID(2, UNIT_SEC) },
402 { "4s", TALK_ID(4, UNIT_SEC) }
403 };
404 return set_option(str(LANG_RECORDING_HISTOGRAM_INTERVAL),
405 &global_settings.rec_histogram_interval,
406 INT, names, 4, NULL );
407}
408
409MENUITEM_FUNCTION(recording_histogram, 0,
410 ID2P(LANG_RECORDING_HISTOGRAM_INTERVAL),
411 history_interval, NULL, NULL, Icon_Menu_setting);
412
413#endif
414
415/** Rec trigger **/ 395/** Rec trigger **/
416enum trigger_menu_option 396enum trigger_menu_option
417{ 397{
@@ -666,9 +646,6 @@ MAKE_MENU(recording_settings_menu, ID2P(LANG_RECORDING_SETTINGS),
666#ifdef HAVE_AGC 646#ifdef HAVE_AGC
667 &agc_preset, &agc_cliptime, 647 &agc_preset, &agc_cliptime,
668#endif 648#endif
669#if defined(HAVE_RECORDING_HISTOGRAM)
670 &recording_histogram,
671#endif
672#ifdef HAVE_LCD_BITMAP 649#ifdef HAVE_LCD_BITMAP
673 &peak_meter_menu, 650 &peak_meter_menu,
674#endif 651#endif
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c
index ca1b8c8750..c13c4c9539 100644
--- a/apps/recorder/peakmeter.c
+++ b/apps/recorder/peakmeter.c
@@ -28,6 +28,7 @@
28#include "storage.h" 28#include "storage.h"
29#include "lcd.h" 29#include "lcd.h"
30#include "scrollbar.h" 30#include "scrollbar.h"
31#include "string.h"
31#include "button.h" 32#include "button.h"
32#include "system.h" 33#include "system.h"
33#include "font.h" 34#include "font.h"
@@ -64,9 +65,10 @@ static int pm_cur_left; /* current values (last peak_meter_peek) */
64static int pm_cur_right; 65static int pm_cur_right;
65static int pm_max_left; /* maximum values between peak meter draws */ 66static int pm_max_left; /* maximum values between peak meter draws */
66static int pm_max_right; 67static int pm_max_right;
67#if defined(HAVE_AGC) || defined(HAVE_RECORDING_HISTOGRAM) 68#if defined(HAVE_AGC) || defined(HAVE_HISTOGRAM)
68static int pm_peakhold_left; /* max. peak values between peakhold calls */ 69static int pm_peakhold_left; /* max. peak values between peakhold calls */
69static int pm_peakhold_right; /* used for AGC and histogram display */ 70static int pm_peakhold_right; /* used for AGC and histogram display */
71static long next_histogram_update;
70#endif 72#endif
71 73
72/* Clip hold */ 74/* Clip hold */
@@ -134,6 +136,38 @@ static unsigned int peeks_per_redraw[PEEKS_PER_DRAW_SIZE];
134static unsigned int ticks_per_redraw[TICKS_PER_DRAW_SIZE]; 136static unsigned int ticks_per_redraw[TICKS_PER_DRAW_SIZE];
135#endif 137#endif
136 138
139#if defined(HAVE_HISTOGRAM)
140#define HIST_BUF_SIZE (LCD_WIDTH / 2)
141static int hist_l = 0;
142static int hist_r = 0;
143static unsigned char history_l[HIST_BUF_SIZE];
144static unsigned char history_r[HIST_BUF_SIZE];
145static const char hist_level_marks[6] = { 29, 26, 23, 17, 9, 2};
146static int history_pos = 0;
147#define HIST_W (LCD_WIDTH / 2)
148#if LCD_DEPTH > 1
149#ifdef HAVE_LCD_COLOR
150#define LCD_BAL_L LCD_RGBPACK(0, 0, 255)
151#define LCD_BAL_R LCD_RGBPACK(204, 0, 0)
152#define LCD_HIST_OVER LCD_RGBPACK(204, 0, 0)
153#define LCD_HIST_HI LCD_RGBPACK(255, 204, 0)
154#define LCD_HIST_OK LCD_RGBPACK(51, 153, 0)
155#else /* HAVE_LCD_COLOR */
156#define LCD_BATT_OK LCD_BLACK
157#define LCD_BATT_LO LCD_DARKGRAY
158#define LCD_DISK_OK LCD_BLACK
159#define LCD_DISK_LO LCD_DARKGRAY
160#define LCD_HIST_OVER LCD_BLACK
161#define LCD_HIST_OK LCD_DARKGRAY
162#define LCD_BAL LCD_DARKGRAY
163#endif /* HAVE_LCD_COLOR */
164#else /* LCD_DEPTH > 1 */
165#define LCD_HIST_OVER LCD_DEFAULT_FG
166#define LCD_HIST_OK LCD_DEFAULT_FG
167#define LCD_BAL LCD_DEFAULT_FG
168#endif /* LCD_DEPTH > 1 */
169#endif /* HAVE_HISTOGRAM */
170
137static void peak_meter_draw(struct screen *display, struct meter_scales *meter_scales, 171static void peak_meter_draw(struct screen *display, struct meter_scales *meter_scales,
138 int x, int y, int width, int height); 172 int x, int y, int width, int height);
139 173
@@ -810,7 +844,7 @@ static int peak_meter_read_l(void)
810 844
811 retval = pm_max_left; 845 retval = pm_max_left;
812 846
813#if defined(HAVE_RECORDING_HISTOGRAM) || defined(HAVE_AGC) 847#if defined(HAVE_HISTOGRAM) || defined(HAVE_AGC)
814 /* store max peak value for peak_meter_get_peakhold_x readout */ 848 /* store max peak value for peak_meter_get_peakhold_x readout */
815 pm_peakhold_left = MAX(pm_max_left, pm_peakhold_left); 849 pm_peakhold_left = MAX(pm_max_left, pm_peakhold_left);
816#endif 850#endif
@@ -843,7 +877,7 @@ static int peak_meter_read_r(void)
843 877
844 retval = pm_max_right; 878 retval = pm_max_right;
845 879
846#if defined(HAVE_RECORDING_HISTOGRAM) || defined(HAVE_AGC) 880#if defined(HAVE_HISTOGRAM) || defined(HAVE_AGC)
847 /* store max peak value for peak_meter_get_peakhold_x readout */ 881 /* store max peak value for peak_meter_get_peakhold_x readout */
848 pm_peakhold_right = MAX(pm_max_right, pm_peakhold_right); 882 pm_peakhold_right = MAX(pm_max_right, pm_peakhold_right);
849#endif 883#endif
@@ -857,7 +891,7 @@ static int peak_meter_read_r(void)
857 return retval; 891 return retval;
858} 892}
859 893
860#if defined(HAVE_AGC) || defined(HAVE_RECORDING_HISTOGRAM) 894#if defined(HAVE_AGC) || defined(HAVE_HISTOGRAM)
861/** 895/**
862 * Reads out the current peak-hold values since the last call. 896 * Reads out the current peak-hold values since the last call.
863 * This is used by the histogram feature in the recording screen. 897 * This is used by the histogram feature in the recording screen.
@@ -869,6 +903,14 @@ void peak_meter_get_peakhold(int *peak_left, int *peak_right)
869 *peak_left = pm_peakhold_left; 903 *peak_left = pm_peakhold_left;
870 if (peak_right) 904 if (peak_right)
871 *peak_right = pm_peakhold_right; 905 *peak_right = pm_peakhold_right;
906
907#ifdef HAVE_HISTOGRAM
908 if (*peak_left > hist_l)
909 hist_l = *peak_left;
910 if (*peak_right > hist_r)
911 hist_r = *peak_right;
912#endif
913
872 pm_peakhold_left = 0; 914 pm_peakhold_left = 0;
873 pm_peakhold_right = 0; 915 pm_peakhold_right = 0;
874} 916}
@@ -1447,4 +1489,75 @@ bool peak_meter_histogram(void)
1447} 1489}
1448#endif 1490#endif
1449 1491
1492#ifdef HAVE_HISTOGRAM
1493void histogram_init()
1494{
1495 /* get update interval, clear buffer, reset drawing position */
1496 memset(history_l, 0, sizeof(unsigned char)*HIST_BUF_SIZE);
1497 memset(history_r, 0, sizeof(unsigned char)*HIST_BUF_SIZE);
1498 next_histogram_update = current_tick +
1499 (global_settings.histogram_interval * HZ);
1500}
1501
1502void histogram_draw(int x1, int x2, int y1, int y2, int width, int height)
1503{
1504 int i, j;
1505 if (current_tick >= next_histogram_update)
1506 {
1507 /* fill history buffer */
1508 history_l[history_pos] = hist_l * height / 32767;
1509 history_r[history_pos] = hist_r * height / 32767;
1510 history_pos = (history_pos + 1) % HIST_BUF_SIZE;
1511 history_l[history_pos] = history_r[history_pos] = 0;
1512 history_l[(history_pos + 1) % HIST_BUF_SIZE] = 0;
1513 history_r[(history_pos + 1) % HIST_BUF_SIZE] = 0;
1514 hist_l = 0;
1515 hist_r = 0;
1516 next_histogram_update = current_tick +
1517 (global_settings.histogram_interval * HZ);
1518 }
1519 lcd_set_drawmode(DRMODE_SOLID);
1520 lcd_drawrect(x1, y1, width, height);
1521 lcd_drawrect(x2, y2, width, height);
1522 lcd_set_drawmode(DRMODE_FG);
1523
1524 j = history_pos;
1525 for (i = width-2; i >= 0; i--)
1526 {
1527 j--;
1528 if(j<0)
1529 j = HIST_BUF_SIZE-1;
1530 if (history_l[j])
1531 {
1532 if (history_l[j] == height)
1533 lcd_set_foreground(LCD_HIST_OVER);
1534#ifdef HAVE_LCD_COLOR
1535 else if (history_l[j] > hist_level_marks[1])
1536 lcd_set_foreground(LCD_HIST_HI);
1537#endif
1538 else
1539 lcd_set_foreground(LCD_HIST_OK);
1540 lcd_vline(x1 + i, y1 + height - 2, y1 + height - history_l[j]);
1541 }
1542 if (history_r[j])
1543 {
1544 if (history_r[j] == height)
1545 lcd_set_foreground(LCD_HIST_OVER);
1546#ifdef HAVE_LCD_COLOR
1547 else if (history_r[j] > hist_level_marks[1])
1548 lcd_set_foreground(LCD_HIST_HI);
1549#endif
1550 else
1551 lcd_set_foreground(LCD_HIST_OK);
1552 lcd_vline(x2 + i, y2 + height - 2, y2 + height - history_r[j]);
1553 }
1554 }
1555 lcd_set_foreground(
1556#ifdef HAVE_LCD_COLOR
1557 global_settings.fg_color);
1558#else
1559 LCD_DEFAULT_FG);
1560#endif
1561}
1562#endif /* HAVE_HISTOGRAM */
1450 1563
diff --git a/apps/recorder/peakmeter.h b/apps/recorder/peakmeter.h
index fee4882679..6be43a5f3a 100644
--- a/apps/recorder/peakmeter.h
+++ b/apps/recorder/peakmeter.h
@@ -56,6 +56,11 @@ extern int calc_db (int isample);
56extern int peak_meter_db2sample(int db); 56extern int peak_meter_db2sample(int db);
57extern unsigned short peak_meter_scale_value(unsigned short val, int meterwidth); 57extern unsigned short peak_meter_scale_value(unsigned short val, int meterwidth);
58 58
59#ifdef HAVE_HISTOGRAM
60extern void histogram_init(void);
61extern void histogram_draw(int x1, int x2, int y1, int y2, int width, int height);
62#endif
63
59/* valid values for trigger_status */ 64/* valid values for trigger_status */
60#define TRIG_OFF 0x00 65#define TRIG_OFF 0x00
61#define TRIG_READY 0x01 66#define TRIG_READY 0x01
@@ -103,3 +108,4 @@ struct meter_scales{
103 108
104extern void peak_meter_screen(struct screen *display, int x, int y, int height); 109extern void peak_meter_screen(struct screen *display, int x, int y, int height);
105#endif /* __PEAKMETER_H__ */ 110#endif /* __PEAKMETER_H__ */
111
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 34283b6cb5..6faaa6c48c 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -269,39 +269,9 @@ static short agc_baltime = 0;
269/* AGC maximum gain */ 269/* AGC maximum gain */
270static short agc_maxgain; 270static short agc_maxgain;
271#endif /* HAVE_AGC */ 271#endif /* HAVE_AGC */
272#if defined(HAVE_AGC) || defined(HAVE_RECORDING_HISTOGRAM) 272#if defined(HAVE_AGC)
273static long hist_time = 0; 273static long hist_time = 0;
274#endif /* HAVE_AGC or HAVE_RECORDING_HISTOGRAM */ 274#endif /* HAVE_AGC */
275/* Histogram data */
276/* TO DO: move some of this stuff inside the recording function? */
277#ifdef HAVE_RECORDING_HISTOGRAM
278static int hist_l = 0;
279static int hist_r = 0;
280#define HIST_BUF_SIZE (LCD_WIDTH)
281#define HIST_Y (hist_pos_y+hist_size_h-1)
282#define HIST_W (LCD_WIDTH / 2 - 4)
283#if LCD_DEPTH > 1
284#ifdef HAVE_LCD_COLOR
285#define LCD_BAL_L LCD_RGBPACK(0, 0, 255)
286#define LCD_BAL_R LCD_RGBPACK(204, 0, 0)
287#define LCD_HIST_OVER LCD_RGBPACK(204, 0, 0)
288#define LCD_HIST_HI LCD_RGBPACK(255, 204, 0)
289#define LCD_HIST_OK LCD_RGBPACK(51, 153, 0)
290#else /* HAVE_LCD_COLOR */
291#define LCD_BATT_OK LCD_BLACK
292#define LCD_BATT_LO LCD_DARKGRAY
293#define LCD_DISK_OK LCD_BLACK
294#define LCD_DISK_LO LCD_DARKGRAY
295#define LCD_HIST_OVER LCD_BLACK
296#define LCD_HIST_OK LCD_DARKGRAY
297#define LCD_BAL LCD_DARKGRAY
298#endif /* HAVE_LCD_COLOR */
299#else /* LCD_DEPTH > 1 */
300#define LCD_HIST_OVER LCD_DEFAULT_FG
301#define LCD_HIST_OK LCD_DEFAULT_FG
302#define LCD_BAL LCD_DEFAULT_FG
303#endif /* LCD_DEPTH > 1 */
304#endif /* HAVE_RECORDING_HISTOGRAM */
305 275
306static void set_gain(void) 276static void set_gain(void)
307{ 277{
@@ -368,13 +338,6 @@ static bool read_peak_levels(int *peak_l, int *peak_r, int *balance)
368 *balance += balance_mem[i]; 338 *balance += balance_mem[i];
369 *balance = *balance / BAL_MEM_SIZE; 339 *balance = *balance / BAL_MEM_SIZE;
370 340
371#ifdef HAVE_RECORDING_HISTOGRAM
372 if (*peak_l > hist_l)
373 hist_l = *peak_l;
374 if (*peak_r > hist_r)
375 hist_r = *peak_r;
376#endif
377
378 return true; 341 return true;
379} 342}
380 343
@@ -1089,18 +1052,12 @@ bool recording_screen(bool no_source)
1089 /* tweak layout tiny screens / big fonts */ 1052 /* tweak layout tiny screens / big fonts */
1090 bool compact_view[NB_SCREENS] = { false }; 1053 bool compact_view[NB_SCREENS] = { false };
1091 struct gui_synclist lists; /* the list in the bottom vp */ 1054 struct gui_synclist lists; /* the list in the bottom vp */
1092#if defined(HAVE_AGC) || defined(HAVE_RECORDING_HISTOGRAM) 1055#if defined(HAVE_AGC)
1093 bool peak_valid = false; 1056 bool peak_valid = false;
1094#endif 1057#endif
1095#if defined(HAVE_RECORDING_HISTOGRAM) 1058#if defined(HAVE_HISTOGRAM)
1096 int j;
1097 unsigned short hist_pos_y = 0; 1059 unsigned short hist_pos_y = 0;
1098 unsigned short hist_size_h = 0; 1060 unsigned short hist_size_h = 0;
1099 int history_pos = 0;
1100 short hist_time_interval = 1; /* 1, 2, 4, 8 */
1101 unsigned char history_l[HIST_BUF_SIZE];
1102 unsigned char history_r[HIST_BUF_SIZE];
1103 const char hist_level_marks[6] = { 29, 26, 23, 17, 9, 2};
1104#endif 1061#endif
1105#ifdef HAVE_FMRADIO_REC 1062#ifdef HAVE_FMRADIO_REC
1106 int prev_rec_source = global_settings.rec_source; /* detect source change */ 1063 int prev_rec_source = global_settings.rec_source; /* detect source change */
@@ -1186,10 +1143,9 @@ bool recording_screen(bool no_source)
1186 /* top vp, 4 lines, force sys font if total screen < 6 lines 1143 /* top vp, 4 lines, force sys font if total screen < 6 lines
1187 NOTE: one could limit the list to 1 line and get away with 5 lines */ 1144 NOTE: one could limit the list to 1 line and get away with 5 lines */
1188 top_height_req[i] = 4; 1145 top_height_req[i] = 4;
1189#if defined(HAVE_RECORDING_HISTOGRAM) 1146#if defined(HAVE_HISTOGRAM)
1190 if((global_settings.rec_histogram_interval) && (!i)) 1147 if((global_settings.histogram_interval) && (!i))
1191 top_height_req[i] += 1; /* use one line for histogram */ 1148 top_height_req[i] += 1; /* use one line for histogram */
1192 hist_time_interval = 1 << global_settings.rec_histogram_interval;
1193#endif 1149#endif
1194 v = &vp_top[i]; 1150 v = &vp_top[i];
1195 viewport_set_defaults(v, i); 1151 viewport_set_defaults(v, i);
@@ -1229,13 +1185,11 @@ bool recording_screen(bool no_source)
1229 1185
1230 send_event(GUI_EVENT_ACTIONUPDATE, (void*)1); /* force a redraw */ 1186 send_event(GUI_EVENT_ACTIONUPDATE, (void*)1); /* force a redraw */
1231 1187
1232#if defined(HAVE_RECORDING_HISTOGRAM) 1188#if defined(HAVE_HISTOGRAM)
1233 history_pos = 0;
1234 hist_pos_y = (compact_view[0] ? 3 : 4) * (font_get(vp_top[0].font)->height) 1189 hist_pos_y = (compact_view[0] ? 3 : 4) * (font_get(vp_top[0].font)->height)
1235 + 1; 1190 + 1;
1236 hist_size_h = font_get(vp_top[0].font)->height - 2; 1191 hist_size_h = font_get(vp_top[0].font)->height - 2;
1237 memset(history_l, 0, sizeof(unsigned char)*HIST_BUF_SIZE); 1192 histogram_init();
1238 memset(history_r, 0, sizeof(unsigned char)*HIST_BUF_SIZE);
1239#endif 1193#endif
1240 1194
1241 FOR_NB_SCREENS(i) 1195 FOR_NB_SCREENS(i)
@@ -1887,75 +1841,21 @@ bool recording_screen(bool no_source)
1887 } 1841 }
1888 } 1842 }
1889 1843
1890#ifdef HAVE_RECORDING_HISTOGRAM 1844#ifdef HAVE_HISTOGRAM
1891 if(global_settings.rec_histogram_interval) 1845 if(global_settings.histogram_interval)
1892 {
1893 if (peak_valid && !(hist_time % hist_time_interval) && hist_l)
1894 { 1846 {
1895 /* fill history buffer */ 1847 histogram_draw(0,
1896 history_l[history_pos] = hist_l * hist_size_h / 32767; 1848 screens[0].getwidth()/2,
1897 history_r[history_pos] = hist_r * hist_size_h / 32767; 1849 hist_pos_y,
1898 history_pos = (history_pos + 1) % HIST_BUF_SIZE; 1850 hist_pos_y,
1899 history_l[history_pos] = history_r[history_pos] = 0; 1851 screens[0].getwidth()/2,
1900 history_l[(history_pos + 1) % HIST_BUF_SIZE] = 0; 1852 hist_size_h);
1901 history_r[(history_pos + 1) % HIST_BUF_SIZE] = 0;
1902 hist_l = 0;
1903 hist_r = 0;
1904 } 1853 }
1905 lcd_set_drawmode(DRMODE_SOLID);
1906 lcd_drawrect(0, hist_pos_y - 1,
1907 HIST_W + 2, hist_size_h + 1);
1908 lcd_drawrect(HIST_W + 6, hist_pos_y - 1,
1909 HIST_W + 2, hist_size_h + 1);
1910 lcd_set_drawmode(DRMODE_FG);
1911
1912 j = history_pos;
1913 for (i = HIST_W-1; i >= 0; i--)
1914 {
1915 j--;
1916 if(j<0)
1917 j = HIST_BUF_SIZE-1;
1918 if (history_l[j])
1919 {
1920 if (history_l[j] == hist_size_h)
1921 lcd_set_foreground(LCD_HIST_OVER);
1922#ifdef HAVE_LCD_COLOR
1923 else if (history_l[j] > hist_level_marks[1])
1924 lcd_set_foreground(LCD_HIST_HI);
1925#endif 1854#endif
1926 else
1927 lcd_set_foreground(LCD_HIST_OK);
1928 lcd_vline(1 + i, HIST_Y-1, HIST_Y - history_l[j]);
1929 }
1930 if (history_r[j])
1931 {
1932 if (history_r[j] == hist_size_h)
1933 lcd_set_foreground(LCD_HIST_OVER);
1934#ifdef HAVE_LCD_COLOR
1935 else if (history_r[j] > hist_level_marks[1])
1936 lcd_set_foreground(LCD_HIST_HI);
1937#endif
1938 else
1939 lcd_set_foreground(LCD_HIST_OK);
1940 lcd_vline(HIST_W+7 + i, HIST_Y-1, HIST_Y - history_r[j]);
1941 }
1942 }
1943 lcd_set_foreground(
1944#ifdef HAVE_LCD_COLOR
1945 global_settings.fg_color);
1946#else
1947 LCD_DEFAULT_FG);
1948#endif
1949 for (i = 0; i < 6; i++)
1950 lcd_hline(HIST_W + 3, HIST_W + 4,
1951 HIST_Y - hist_level_marks[i]);
1952 }
1953#endif /* HAVE_RECORDING_HISTOGRAM */
1954 1855
1955#ifdef HAVE_AGC 1856#ifdef HAVE_AGC
1956 hist_time++; 1857 hist_time++;
1957#endif 1858#endif
1958
1959 /* draw the trigger status */ 1859 /* draw the trigger status */
1960 if (peak_meter_trigger_status() != TRIG_OFF) 1860 if (peak_meter_trigger_status() != TRIG_OFF)
1961 { 1861 {
diff --git a/apps/settings.h b/apps/settings.h
index bed88c82ea..05965b3119 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -438,8 +438,8 @@ struct user_settings
438 int rec_stop_gap; /* index of trig_durations */ 438 int rec_stop_gap; /* index of trig_durations */
439 int rec_trigger_mode; /* see TRIG_MODE_XXX constants */ 439 int rec_trigger_mode; /* see TRIG_MODE_XXX constants */
440 int rec_trigger_type; /* what to do when trigger released */ 440 int rec_trigger_type; /* what to do when trigger released */
441#ifdef HAVE_RECORDING_HISTOGRAM 441#ifdef HAVE_HISTOGRAM
442 int rec_histogram_interval; /* recording peakmeter histogram */ 442 int histogram_interval; /* recording peakmeter histogram */
443#endif 443#endif
444 444
445#ifdef HAVE_AGC 445#ifdef HAVE_AGC
diff --git a/apps/settings_list.c b/apps/settings_list.c
index f282b8afc0..019a14437e 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1238,14 +1238,14 @@ const struct settings_list settings[] = {
1238 CHOICE_SETTING(F_RECSETTING, rec_trigger_type, LANG_RECORD_TRIGGER_TYPE, TRIG_TYPE_STOP, 1238 CHOICE_SETTING(F_RECSETTING, rec_trigger_type, LANG_RECORD_TRIGGER_TYPE, TRIG_TYPE_STOP,
1239 "trigger type","stop,pause,nf stp", NULL ,3, 1239 "trigger type","stop,pause,nf stp", NULL ,3,
1240 ID2P(LANG_RECORD_TRIGGER_STOP), ID2P(LANG_PAUSE), ID2P(LANG_RECORD_TRIGGER_NEWFILESTP)), 1240 ID2P(LANG_RECORD_TRIGGER_STOP), ID2P(LANG_PAUSE), ID2P(LANG_RECORD_TRIGGER_NEWFILESTP)),
1241#ifdef HAVE_RECORDING_HISTOGRAM 1241#endif /* HAVE_RECORDING */
1242
1243#ifdef HAVE_HISTOGRAM
1242 /* TO DO: additional restictions of following REP items? */ 1244 /* TO DO: additional restictions of following REP items? */
1243 TABLE_SETTING(F_RECSETTING, rec_histogram_interval, LANG_RECORDING_HISTOGRAM_INTERVAL, 0, 1245 TABLE_SETTING(F_RECSETTING, histogram_interval, LANG_HISTOGRAM_INTERVAL, 0,
1244 "histogram interval","0s,1s,2s,4s", 1246 "histogram interval","0s,1s,2s,4s",
1245 UNIT_SEC, NULL, NULL, NULL, 4, 0,1,2,4), 1247 UNIT_SEC, NULL, NULL, NULL, 4, 0,1,2,4),
1246#endif /* HAVE_RECORDING_HISTOGRAM */ 1248#endif /* HAVE_HISTOGRAM */
1247
1248#endif /* HAVE_RECORDING */
1249 1249
1250#ifdef HAVE_SPDIF_POWER 1250#ifdef HAVE_SPDIF_POWER
1251 OFFON_SETTING(F_SOUNDSETTING, spdif_enable, LANG_SPDIF_ENABLE, false, 1251 OFFON_SETTING(F_SOUNDSETTING, spdif_enable, LANG_SPDIF_ENABLE, false,
diff --git a/firmware/export/config/iriverh100.h b/firmware/export/config/iriverh100.h
index 4ebbde8ab1..1a89c7ca2d 100644
--- a/firmware/export/config/iriverh100.h
+++ b/firmware/export/config/iriverh100.h
@@ -123,7 +123,7 @@
123 123
124#define HAVE_AGC 124#define HAVE_AGC
125 125
126#define HAVE_RECORDING_HISTOGRAM 126#define HAVE_HISTOGRAM
127 127
128#define BATTERY_CAPACITY_DEFAULT 1300 /* default battery capacity */ 128#define BATTERY_CAPACITY_DEFAULT 1300 /* default battery capacity */
129#define BATTERY_CAPACITY_MIN 1300 /* min. capacity selectable */ 129#define BATTERY_CAPACITY_MIN 1300 /* min. capacity selectable */
diff --git a/firmware/export/config/iriverh120.h b/firmware/export/config/iriverh120.h
index 44b8988a1b..199b948245 100644
--- a/firmware/export/config/iriverh120.h
+++ b/firmware/export/config/iriverh120.h
@@ -114,7 +114,7 @@
114/* define this if you have recording possibility */ 114/* define this if you have recording possibility */
115#define HAVE_RECORDING 115#define HAVE_RECORDING
116 116
117#define HAVE_RECORDING_HISTOGRAM 117#define HAVE_HISTOGRAM
118 118
119/* Define bitmask of input sources - recordable bitmask can be defined 119/* Define bitmask of input sources - recordable bitmask can be defined
120 explicitly if different */ 120 explicitly if different */
diff --git a/firmware/export/config/iriverh300.h b/firmware/export/config/iriverh300.h
index c4224d03c6..dbe701362a 100644
--- a/firmware/export/config/iriverh300.h
+++ b/firmware/export/config/iriverh300.h
@@ -110,7 +110,7 @@
110/* define this if you have recording possibility */ 110/* define this if you have recording possibility */
111#define HAVE_RECORDING 111#define HAVE_RECORDING
112 112
113#define HAVE_RECORDING_HISTOGRAM 113#define HAVE_HISTOGRAM
114 114
115/* Define bitmask of input sources - recordable bitmask can be defined 115/* Define bitmask of input sources - recordable bitmask can be defined
116 explicitly if different */ 116 explicitly if different */