diff options
Diffstat (limited to 'tools/builds.pm')
-rw-r--r-- | tools/builds.pm | 125 |
1 files changed, 124 insertions, 1 deletions
diff --git a/tools/builds.pm b/tools/builds.pm index fe400b6777..a69300cd3f 100644 --- a/tools/builds.pm +++ b/tools/builds.pm | |||
@@ -2,12 +2,15 @@ $publicrelease="3.15"; | |||
2 | $releasedate="15 Nov 2019"; | 2 | $releasedate="15 Nov 2019"; |
3 | $releasenotes="/wiki/ReleaseNotes315"; | 3 | $releasenotes="/wiki/ReleaseNotes315"; |
4 | 4 | ||
5 | # { 'modelname' => { | 5 | ################################################################ |
6 | |||
7 | # 'modelname' => { | ||
6 | # name => 'Full Name', | 8 | # name => 'Full Name', |
7 | # status => 1, # 0=retired, 1=unusable, 2=unstable, 3=stable | 9 | # status => 1, # 0=retired, 1=unusable, 2=unstable, 3=stable |
8 | # ram => 2, # optional (used?) | 10 | # ram => 2, # optional (used?) |
9 | # manual => 'modelname2', # optional (uses modelname2's manual) | 11 | # manual => 'modelname2', # optional (uses modelname2's manual) |
10 | # icon => 'modelname3', # optional (uses modelname3's icon) | 12 | # icon => 'modelname3', # optional (uses modelname3's icon) |
13 | # voice => 'modelname4' # optional (uses modelname4's voice) | ||
11 | # release => '3.14', # optional (final release version, if different from above) | 14 | # release => '3.14', # optional (final release version, if different from above) |
12 | # } | 15 | # } |
13 | 16 | ||
@@ -493,4 +496,124 @@ sub allbuilds { | |||
493 | return @list; | 496 | return @list; |
494 | } | 497 | } |
495 | 498 | ||
499 | ################################################################ | ||
500 | |||
501 | # 'voicename' => { | ||
502 | # lang => 'langname', # source rockbox .lang file | ||
503 | # name => 'Native Name ( English Name )', # descriptive text | ||
504 | # short => 'sss', # short iso-ish text | ||
505 | # defengine => 'enginename', # which engine to prefer | ||
506 | # engines => { # supported engines | ||
507 | # enginea = '-opt1=x -opt2=y', # options for enginea | ||
508 | # engineb = '-lang=xx', # options for engineb | ||
509 | # }, | ||
510 | # } | ||
511 | |||
512 | # A single source language file can have many voice variants. | ||
513 | # For example, Mandarin and Cantonese use the same "Chinese" script. | ||
514 | # Also, different genders or regional accents for the same language | ||
515 | |||
516 | %voices = ( | ||
517 | # UK English always comes first | ||
518 | 'english' => { | ||
519 | 'lang' => 'english', | ||
520 | 'name' => 'UK English', | ||
521 | 'short' => 'en-uk', | ||
522 | 'defengine' => 'espeak', | ||
523 | 'engines' => { | ||
524 | 'festival' => '--language english', | ||
525 | 'espeak' => '-ven-gb', | ||
526 | 'gtts' => '-l en-gb', | ||
527 | }, | ||
528 | }, | ||
529 | # Everything else in alphabetical order | ||
530 | 'english-us' => { | ||
531 | 'lang' => 'english-us', | ||
532 | 'name' => 'American English', | ||
533 | 'short' => 'en-us', | ||
534 | 'defengine' => 'espeak', | ||
535 | 'engines' => { | ||
536 | 'festival' => '--language english', | ||
537 | 'espeak' => '-ven-us', | ||
538 | 'gtts' => '-l en-us', | ||
539 | }, | ||
540 | }, | ||
541 | 'greek' => { | ||
542 | 'lang' => 'greek', | ||
543 | 'name' => 'Ελληνικά (Greek)', | ||
544 | 'short' => 'el', | ||
545 | 'defengine' => 'espeak', | ||
546 | 'engines' => { | ||
547 | 'espeak' => '-vel', | ||
548 | 'gtts' => '-l el', | ||
549 | }, | ||
550 | }, | ||
551 | 'polski' => { | ||
552 | 'lang' => 'polski', | ||
553 | 'name' => 'Polski (Polish)', | ||
554 | 'short' => 'pl', | ||
555 | 'defengine' => 'espeak', | ||
556 | 'engines' => { | ||
557 | 'espeak' => '-vpl', | ||
558 | 'gtts' => '-l pl', | ||
559 | }, | ||
560 | }, | ||
561 | 'russian' => { | ||
562 | 'lang' => 'russian', | ||
563 | 'name' => 'Русский (Russian)', | ||
564 | 'short' => 'ru', | ||
565 | 'defengine' => 'espeak', | ||
566 | 'engines' => { | ||
567 | 'espeak' => '-vru', | ||
568 | 'gtts' => '-l ru', | ||
569 | }, | ||
570 | }, | ||
571 | 'slovak' => { | ||
572 | 'lang' => 'slovak', | ||
573 | 'name' => 'Slovenský (Slovak)', | ||
574 | 'short' => 'sk', | ||
575 | 'defengine' => 'espeak', | ||
576 | 'engines' => { | ||
577 | 'espeak' => '-vsk', | ||
578 | 'gtts' => '-l sk', | ||
579 | }, | ||
580 | }, | ||
581 | 'srpski' => { | ||
582 | 'lang' => 'srpski', | ||
583 | 'name' => 'српски (Serbian)', | ||
584 | 'short' => 'sr', | ||
585 | 'defengine' => 'espeak', | ||
586 | 'engines' => { | ||
587 | 'espeak' => '-vsr', | ||
588 | 'gtts' => '-l sr', | ||
589 | }, | ||
590 | }, | ||
591 | ); | ||
592 | |||
593 | sub bylang { | ||
594 | return uc $voices{$a}{lang} cmp uc $voices{$b}{lang}; | ||
595 | } | ||
596 | |||
597 | sub allvoices { | ||
598 | my @list; | ||
599 | |||
600 | for my $b (sort bylang keys %voices) { | ||
601 | push @list, $b; | ||
602 | } | ||
603 | |||
604 | return @list; | ||
605 | } | ||
606 | |||
607 | sub voicesforlang($) { | ||
608 | my $l = shift @_; | ||
609 | my @list; | ||
610 | |||
611 | for my $b (sort bylang keys %voices) { | ||
612 | push @list, $b if ($voices{$b}{lang} eq $b); | ||
613 | } | ||
614 | |||
615 | return @list; | ||
616 | } | ||
617 | |||
618 | |||
496 | 1; | 619 | 1; |