A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 58 lines 1.5 kB view raw
1#!/usr/bin/perl 2 3$codecs="lib/rbcodec/codecs"; 4 5opendir(DIR, $codecs) || die "can't opendir $some_dir: $!"; 6my @maps = sort grep { /\.map/ && -f "$codecs/$_" } readdir(DIR); 7closedir DIR; 8 9print "Codec IRAM IBSS BSS Text \n"; 10 11 12for my $m (@maps) { 13 my ($iram, $ibss, $bss, $text)=scanmap($m); 14 printf("%-15s: %5d %5d %6d %6d\n", 15 $m, $iram, $ibss, $bss, $text); 16} 17 18sub scanmap { 19 my ($file)=@_; 20 21 open(F, "<$codecs/$file"); 22 23 while(<F>) { 24 if(/[ \t]*0x([0-9a-f]+) *_plugin_start_addr/) { 25 #print "CODEC START: $1\n"; 26 $codec = hex($1); 27 } 28 elsif(/[ \t]*0x([0-9a-f]+) *plugin_bss_start/) { 29 #print "CODEC BSS START: $1\n"; 30 $codecbss = hex($1); 31 } 32 elsif(/[ \t]*0x([0-9a-f]+) *_plugin_end_addr/) { 33 #print "CODEC END: $1\n"; 34 $bss = (hex($1) - $codecbss); 35 $codec = (hex($1) - $codec - $bss); 36 } 37 elsif(/[ \t]*0x([0-9a-f]+) *iramstart/) { 38 #print "IRAM START: $1\n"; 39 $iram = hex($1); 40 } 41 elsif(/[ \t]*0x([0-9a-f]+) *iramend/) { 42 #print "IRAM END: $1\n"; 43 $iram = (hex($1) - $iram); 44 } 45 elsif(/[ \t]*0x([0-9a-f]+) *iedata/) { 46 #print "IBSS START: $1\n"; 47 $ibss = hex($1); 48 } 49 elsif(/[ \t]*0x([0-9a-f]+) *iend/) { 50 #print "IBSS END: $1\n"; 51 $ibss = (hex($1) - $ibss); 52 } 53 } 54 55 close(F); 56 57 return ($iram, $ibss, $bss, $codec); 58}