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
Our Free Plans just got better! | Auth0
You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
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); } }