@@ -48,6 +48,11 @@ char str_frequency[32];
4848
4949unsigned nseconds ;
5050unsigned long nsize ;
51+ int ndisc ;
52+ int ntrack ;
53+ int nyear ;
54+ unsigned int nbitrate ;
55+ unsigned long nfreq ;
5156int32_t size_unit ;
5257struct tm tm ;
5358
@@ -143,6 +148,11 @@ static bool file_properties(const char* selected_file)
143148 rb -> get_metadata (& id3 , fd , selected_file ))
144149 {
145150 long dur = id3 .length / 1000 ; /* seconds */
151+ nyear = id3 .year ;
152+ ndisc = id3 .discnum ;
153+ ntrack = id3 .tracknum ;
154+ nbitrate = id3 .bitrate ;
155+ nfreq = id3 .frequency ;
146156 rb -> snprintf (str_composer , sizeof str_composer ,
147157 "%s" , id3 .composer ? id3 .composer : "" );
148158 rb -> snprintf (str_artist , sizeof str_artist ,
@@ -189,9 +199,9 @@ static bool file_properties(const char* selected_file)
189199 "%s" , "" );
190200
191201 rb -> snprintf (str_bitrate , sizeof str_bitrate ,
192- "%d kbps" , id3 . bitrate ? : 0 );
202+ "%d kbps" , nbitrate ? : 0 );
193203 rb -> snprintf (str_frequency , sizeof str_frequency ,
194- "%ld Hz" , id3 . frequency ? : 0 );
204+ "%ld Hz" , nfreq ? : 0 );
195205 num_properties += 12 ;
196206
197207 if (dur > 0 )
@@ -411,6 +421,24 @@ static int speak_property_selection(int selected_item, void *data)
411421 case LANG_PROPERTIES_FILES :
412422 rb -> talk_number (dps -> fc , true);
413423 break ;
424+ case LANG_PROPERTIES_YEAR :
425+ if (nyear )
426+ rb -> talk_number (nyear , true);
427+ break ;
428+ case LANG_PROPERTIES_DISCNUM :
429+ if (ndisc )
430+ rb -> talk_number (ndisc , true);
431+ break ;
432+ case LANG_PROPERTIES_TRACKNUM :
433+ if (ntrack )
434+ rb -> talk_number (ntrack , true);
435+ break ;
436+ case LANG_PROPERTIES_BITRATE :
437+ rb -> talk_value_decimal (nbitrate , UNIT_KBIT , 0 , true);
438+ break ;
439+ case LANG_PROPERTIES_FREQUENCY :
440+ rb -> talk_value_decimal (nfreq , UNIT_HERTZ , 0 , true);
441+ break ;
414442 default :
415443 rb -> talk_spell (props_file [selected_item + 1 ], true);
416444 break ;
0 commit comments