Prehravanie zvukov

Klucove slova: hlasic, player, playerdriver, prehravanie, zvuk

Popis ovladaca pre prehravanie zvukov

Formát mp3: 32kbit, 22050Hz, mono

Generovanie zvukovej stopy z binarneho suboru

Generovanie binarneho suboru sa vykonava na zaklade vstupu z back-office aplikacie s nazvom 'sound.bin'.
Algoritmus generovania ma stanovenu priporitu, podla coho sa ma zastavkovy zvuk generovat, tzv. priority generovania zvukoveho suboru.

Ako prve algoritmus nacita kolekciu zastavkovych zvukov z binarneho suboru (dalej uz len kolekcia).

Priority generovania zvukoveho suboru:

  1. Z kolekcie ziskam len tie zaznamy, ktore platia pre aktualnu linku a cislo spoja. Ak taketo zaznamy existuju, prejdem na GENERUJ_MP3.
  2. Z kolekcie ziskam len tie zaznamy, ktore platia pre aktualnu linku a smer. Ak taketo zaznamy existuju, prejdem na GENERUJ_MP3.
  3. Z kolekcie ziskam len tie zaznamy, ktore platia pre aktualnu linku (spolocne zaznamy pre vsetky spoje na linke). Ak taketo zaznamy existuju, prejdem na GENERUJ_MP3.
  4. Z kolekcie ziskam len tie zaznamy, ktore platia pre aktualnu zastavku. Vykona sa krok GENERUJ_MP3.

Spolocny krok pre vsetky priority:
GENERUJ_MP3 - Z vysledneho intervalu zastavkovych zvukov podla kriterii sa pokusi algoritmus vygenerovat zvuk pre pozadovane ID zastavky. Ak zvuky pre zastavkove ID neexistuju, pokracuje sa na nizsiu prioritu.

Struktura kolekcie zastavkovych zvukov je popisana v strukture suboru v casti “Zvuky priradene zastavkam a linkam,zotriedene postupne podla linky, smeru, spoja, zastavky”.

Funkcionalita generovania zvukovych zaznamov je implementovana v aplikacii palubneho pocitaca na platforme emtes_xscale_26 v triede 'ehlasicparser .cpp .h'

Struktura binarneho suboru

Subor bude ulozeny od adresy 0000, sklada sa zo 7 casti:

  1. Hlavicka
  2. Konfiguracny subor
  3. Offsety
  4. Udalosti
  5. Zvuky priradene zastavkam a linkam
  6. Data
  7. Program pre strojcek

1. Hlavicka

velkost nazov polozky popis
4 byte test cislo 0x5a5a5a5a
4 byte velkostSuboru celkova velkost (1)+(2)+(3)+(4)+(5)+(6)
4 byte adrCfgSTA absolutna adresa zaciatku (2)
2 byte velkostCfgSTA
4 byte pocetZvukov
4 byte adrOffset absolutna adresa zaciatku (3)
4 byte UdaOffset absolutna adresa zaciatku (4)
4 byte zvuOffset absolutna adresa zaciatku (5)
4 byte adrData absolutna adresa zaciatku (6)
4 byte adrProgram absolutna adresa zaciatku (7)
4 byte Rezerva

2. Konfiguracny subor

Ide o subor od vyrobcu cipu, ktory sa pouziva v starom hlasici. Na Inteli nie je potrebny, ale kvoli kompatibilite so starym strojcekom sa tam pridava. Vznikne skonvertovanim textoveho suboru STA013.cfg do binarneho tvaru. Subor obsahuje dva stlpce jednobajtovych cisel v dekadickom tvare:
58 1
42 4 → v binarke budu nasedovat: 58,1,42,4,40,0 ….
40 0 …

3. Offsety

velkost nazov polozky popis
4 byte adrZvuk adresa zvuku (adrData + adrZvuk = Offset zaciatku zvuku)
4 byte velkostZvuk velkost zvuku

4. Dopravne udalosti

Zotriedene su podla udalosti a zvuky nasleduju v poradi v akom sa maju prehrat.

velkost nazov polozky popis
1 byte TypUdalosti
1 byte TypZvuku 0- konstanta alebo 1- premenna
1 byte Kanal
1 byte Rezerva
4 byte Cislo Zvuku poradie v kolekcii offsetov(cast 3)
Cislo zvuku z binarky pre hlasic - Typ zvuku je 0
Linkovy alebo zastavkovy zvuk:
- 101 - Linkova premenna
- 102 - zastavkova premenna konkretne cislo zvuku sa vyhlada v casti 5 suboru v hlasici

Popis - Typ udalosti

Typ udalosti ID Nazov
1 Príchod na zastávku
2 Odchod zo zastávky
3 Rezim Datum/cas
4 Linka/Spoj
5 Info pre nevidomeho
6 Nastup nevidomeho
7 Prva zastavka
8 Konecna zastavka
9 Zastavka na znamenie
10 Kontrola revizorom
11 Havaria
12 Zmena pásma-príchod
13 Zmena pásma-odchod
14 Hranicna zastavka
15 Pasmo
16 Podla vyberu
17 Kazda 2.zast.
18 Kazda 3.zast.
19 Kazda 4.zast.
20 Kazda 5.zast.
21 Kazda 6.zast.
22 Kazda 7.zast.
23 Kazda 8.zast.
24 Kazda 9.zast.
25 Kazda 10.zast.
26 statie na zast.
27 Nasl.zast po prich.
28 nevid.iden.tabule
29 nevid.riadok.tabule

Popis - Typ zvuku

Typ zvuku Popis
0 Konstanta
1 Premenna

Popis - Kanal

Kanal ID Popis
1 Externy (z vozidla)
2 Interny (vo vozidle)
3 Vodic (pre vodica)
21 Interny, externy (z vozidla aj vo vozidle)
31 Vodic, externy (pre vodica aj z vozidla)
32 Vodic, interny (pre vodica aj vo vozidle)
123 Externy, interny, pre vodica (z vozidla, vo vozidle aj pre vodica)

5. Zvuky priradene zastavkam a linkam,zotriedene postupne podla linky,smeru,spoja,zastavky

velkost nazov polozky popis
4 byte CisloLinky
1 byte SmerLinky 0-smer OBA, 1-smer TAM, 2-smer SPAT
1 byte Rezerva
4 byte CisloSpoja
4 byte CisloZastavky Global ID zastavky
2 byte CisloZvuku poradie v kolekcii offsetov(cast 3)

6. Data

Zvuky vo formate MP3 spojene do jedneho binarneho suboru

Usek pozadovanej MP3:
zaciatok = AdrData(z hlavicky) + AdrZvuk(cast 3)
koniec = zaciatok + velkostZvuk

Zname nedostatky prehravania zvukov

Chyba generovania binarneho subore pre rozne smery

Transoffice < 10.1 sa v generatore binarneho suboruy vyskytovala chyba ze pre smer 'oba' a 'spat' sa do linkoveho zaznamu nastavila hodnota 0. Aplikacia tym padom nedokazala zistit linkove zvuky pre smer 'spat'.

Od Transoffice >= 10.1 v generatore sa spravne generuju hodnoty smeru nasledovne: - hodnota 0 - smer 'oba' - hodnota 1 - smer 'tam' - hodnota 2 - smer 'spat'

 
dev_dec/prehravanie_zvukov.txt · Last modified: 2021/10/21 10:00 by 192.168.242.114
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki