A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd

tiny tool to help with dumping a binary lng file to the screen to make it easier to compare with the generated lang.[ch]


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14272 a1c6a512-1295-4272-9138-f99709370657

+50
+50
tools/lngdump.c
··· 1 + #include <stdio.h> 2 + #include <sys/stat.h> 3 + #include <fcntl.h> 4 + 5 + #define MAX_LANGUAGE_SIZE 20000 6 + 7 + static char language_buffer[MAX_LANGUAGE_SIZE]; 8 + 9 + int lang_load(const char *filename) 10 + { 11 + int fsize; 12 + int fd = open(filename, O_RDONLY); 13 + int retcode=0; 14 + unsigned char lang_header[3]; 15 + if(fd == -1) 16 + return 1; 17 + if(3 == read(fd, lang_header, 3)) { 18 + unsigned char *ptr = language_buffer; 19 + int id; 20 + printf("%02x %02x %02x\n", 21 + lang_header[0], lang_header[1], lang_header[2]); 22 + 23 + fsize = read(fd, language_buffer, MAX_LANGUAGE_SIZE); 24 + 25 + while(fsize>3) { 26 + id = (ptr[0]<<8) | ptr[1]; /* get two-byte id */ 27 + ptr+=2; /* pass the id */ 28 + if(id < 2000) { 29 + printf("%03d %s\n", id, ptr); 30 + } 31 + while(*ptr) { /* pass the string */ 32 + fsize--; 33 + ptr++; 34 + } 35 + fsize-=3; /* the id and the terminating zero */ 36 + ptr++; /* pass the terminating zero-byte */ 37 + } 38 + } 39 + close(fd); 40 + return retcode; 41 + } 42 + 43 + int main(int argc, char **argv) 44 + { 45 + if(argc < 2) { 46 + printf("Usage: lngdump <lng file>\n"); 47 + return 2; 48 + } 49 + lang_load(argv[1]); 50 + }