This project aims to help anybody to create an OpenSource environment to develop or port applications on TomTom(tm) devices.
Features
- A customised linux for your TomTom
Categories
SystemLicense
GNU General Public License version 3.0 (GPLv3)Follow OpenTom
Other Useful Business Software
Auth0 for AI Agents now in GA
Connect your AI agents to apps and data more securely, give users control over the actions AI agents can perform and the data they can access, and enable human confirmation for critical agent actions.
Rate This Project
Login To Rate This Project
User Reviews
-
Nice project. Some patches dont match. Some games dont compile glib need manual modification and a local libtool. Navit work, but need modifications on 32Mbyte devices like tt one XL I activated swap in Kernel, Busybox and on sdcard. Also i use verry "small" settings: cache_size="6000000" route_depth="4:15%,6:1%,8:10000,18:4000" To enable navit ti speak this simple espeak wrapper help: ----espeakdsp.c------ #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/soundcard.h> #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #define IBUFFERLEN 1024 #define MAXARGC 30 int main(int argc, char *argv[],char *envp[]) { int pipefd[2]; pid_t cpid; char buf; int co,wp,l,fh; short bufi[IBUFFERLEN],bufo[IBUFFERLEN*2]; int rate=22050; char *newargv[MAXARGC+2]; for(co=0;co<argc;co++) { if(co>=MAXARGC)break; newargv[co]=argv[co]; } newargv[co++]="--stdout"; newargv[co++]=NULL; if (pipe(pipefd) == -1) { perror("pipe"); exit(EXIT_FAILURE); } if(setpriority(PRIO_PROCESS,0,-10)) perror ("setpriority"); cpid = fork(); if (cpid == -1) { perror("fork"); exit(EXIT_FAILURE); } if (cpid == 0) { /* Child writes to pipe */ close(pipefd[0]); /* Close unused read end */ dup2(pipefd[1],1); execve("/mnt/sdcard/opentom/bin/espeak",newargv,envp); perror("exec /mnt/sdcard/opentom/bin/espeak"); close(pipefd[1]); /* Reader will see EOF */ wait(NULL); /* Wait for child */ exit(EXIT_SUCCESS); } else { /* Parent read from pipe */ close(pipefd[1]); /* Close unused write end */ l=read(pipefd[0],bufi,64); if(memcmp(bufi,"RIFF",4)) { while(l>0) { write(1,bufi,l); l=read(pipefd[0],bufi,IBUFFERLEN); } exit(EXIT_SUCCESS); } l=read(pipefd[0],bufi,IBUFFERLEN); if(l<500) { printf("espeakdsp: avoid noise speaking a empty string\n"); exit(EXIT_SUCCESS); } usleep (50000); fh=open("/dev/dsp",O_WRONLY); if(fh<0) { perror("open /dev/dsp"); exit(EXIT_FAILURE); } ioctl(fh, SNDCTL_DSP_SPEED , &rate); ioctl(fh, SNDCTL_DSP_SYNC, 0); while(l) { for(co=0,wp=0;co<IBUFFERLEN;co++) { bufo[wp++]=bufi[co]; /* mono->stereo */ bufo[wp++]=bufi[co]; } write (fh,bufo,wp); l=read(pipefd[0],bufi,IBUFFERLEN); } ioctl(fh, SNDCTL_DSP_SYNC, 0); close(pipefd[0]); exit(EXIT_SUCCESS); } }