#include "main.h"
Zobrazit zdrojový text tohoto souboru.
Funkce |
void | pouziti (gchar *str) |
| Vypis napovedy.
|
void | inicializace_pole (void) |
| Inicializace pole cetnosti a stromu.
|
guchar * | spocti_cetnosti (FILE *file, ChData *data) |
| Nacteni cetnosti ze vstupniho souboru.
|
gint | nejvetsi_cetnost () |
| Nalezeni nejvyssi cetnosti.
|
gint | najdi_nejmensi () |
| Nalezeni uzlu s nejnizsi cetnosti.
|
gint | najdi_koren () |
| Nalezeni korenoveho uzlu.
|
gint | vytvor_strom (ChData *data) |
| Vytvoreni stromu.
|
gboolean | merak_cb (gpointer data) |
| Mereni rychlosti a prubehu.
|
gint | zapis_kod (guchar *buffer_in, FILE *file, ChData *data) |
| Zapise zakodovany soubor na vystup.
|
guchar * | nacti_kod (FILE *file, ChData *data) |
| Nacte zakodovany soubor.
|
gint | zapis_data (guchar *buffer_in, FILE *file, ChData *data) |
| Zapis dekodovanych dat.
|
gint | komprese (gpointer data) |
| Hlavni funkce komprese.
|
gint | dekomprese (gpointer data) |
| Hlavni funkce dekomprese.
|
G_MODULE_EXPORT void | f_ch_b_file_set_cb (GtkWidget *widget, ChData *data) |
| Callback funkce widgetu vyber souboru.
|
G_MODULE_EXPORT void | quit_cb (GtkWidget *widget, ChData *data) |
| Callback ukonceni programu.
|
G_MODULE_EXPORT void | komprese_cb (GtkWidget *widget, ChData *data) |
| Callback kliku na tlacitko komprese.
|
G_MODULE_EXPORT void | dekomprese_cb (GtkWidget *widget, ChData *data) |
| Callback kliku na tlacitko dekomprese.
|
G_MODULE_EXPORT void | about_cb (GtkWidget *widget, ChData *data) |
| Callback menu About.
|
gint | main (int argc, char **argv) |
| Hlavni funkce.
|
Dokumentace funkcí
G_MODULE_EXPORT void about_cb |
( |
GtkWidget * |
widget, |
|
|
ChData * |
data | |
|
) |
| | |
Callback menu About.
Pomoci GtkBuilderu vytvori a zobrazi About dialog. Nastavi callback pro zavreni okna (dulezite)
- Parametry:
-
| widget | Pointer na volbu menu |
| data | Struktura obsahujici pointery na graficke prvky |
Definice je uvedena na řádku 688 v souboru main.c.
gint dekomprese |
( |
gpointer |
data |
) |
|
Hlavni funkce dekomprese.
Otevre vstupni a vystupni soubory a vola funkce provadejici jednotlive kroky dekomprese. Nakonec uzavira soubory a uvolnuje alokovany buffer.
- Parametry:
-
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- 0 pokud nedojde k chybe
Definice je uvedena na řádku 549 v souboru main.c.
G_MODULE_EXPORT void dekomprese_cb |
( |
GtkWidget * |
widget, |
|
|
ChData * |
data | |
|
) |
| | |
Callback kliku na tlacitko dekomprese.
Nastavi informaci o spusteni dekomprese a spusti funkci dekomprese v novem vlaknu.
- Parametry:
-
| widget | Pointer na widget tlacitka |
| data | Struktura obsahujici pointery na graficke prvky |
Definice je uvedena na řádku 667 v souboru main.c.
G_MODULE_EXPORT void f_ch_b_file_set_cb |
( |
GtkWidget * |
widget, |
|
|
ChData * |
data | |
|
) |
| | |
Callback funkce widgetu vyber souboru.
Zpracuje nastaveny vstupni soubor, ulozi jeho nazev do struktury a podle pripony nastavi vystupni soubor.
- Parametry:
-
| widget | Pointer na tlacitko vyberu souboru |
| data | Struktura obsahujici pointery na graficke prvky |
Definice je uvedena na řádku 600 v souboru main.c.
void inicializace_pole |
( |
void |
|
) |
|
Inicializace pole cetnosti a stromu.
Nastavi vychozi hodnoty promennych v poli struktur pro vytvareni stromu
Definice je uvedena na řádku 27 v souboru main.c.
gint komprese |
( |
gpointer |
data |
) |
|
Hlavni funkce komprese.
Otevre vstupni a vystupni soubory a vola funkce provadejici jednotlive kroky komprese. Nakonec uzavira soubory a uvolnuje alokovany buffer.
- Parametry:
-
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- 0 pokud nedojde k chybe
Definice je uvedena na řádku 498 v souboru main.c.
G_MODULE_EXPORT void komprese_cb |
( |
GtkWidget * |
widget, |
|
|
ChData * |
data | |
|
) |
| | |
Callback kliku na tlacitko komprese.
Nastavi informaci o spusteni komprese a spusti funkci komprese v novem vlaknu.
- Parametry:
-
| widget | Pointer na widget tlacitka |
| data | Struktura obsahujici pointery na graficke prvky |
Definice je uvedena na řádku 646 v souboru main.c.
gint main |
( |
int |
argc, |
|
|
char ** |
argv | |
|
) |
| | |
Hlavni funkce.
Provede nacteni parametru prikazove radky, inicializuje nazvy souboru a podle voleb spusti kompresi, dekompresi, zobrazi napovedu nebo nacte a zobrazi graficke rozhrani.
- Parametry:
-
| argc | Pocet retezcu v shellu pri spusteni |
| argv | Pole pointeru na retezce v shellu pri spusteni |
- Návratová hodnota:
- 0 pokud nedojde k chybe
< Struktura obsahujici pointery na graficke prvky
< Struktura pro nacteni GUI z .glade souboru
< Chyby pri nacitani GUI
< Prepinac provedene akce
< Retezec nazvu vstupniho souboru
< Retezec nazvu vystupniho souboru
< Promenna pouzita pro zpracovani parametru shellu
Definice je uvedena na řádku 717 v souboru main.c.
gboolean merak_cb |
( |
gpointer |
data |
) |
|
Mereni rychlosti a prubehu.
Meri a zobrazuje rychlost komprese v MB/s a prubeh zpracovani v %
- Parametry:
-
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- TRUE pokud vypocet pokracuje, FALSE po ukonceni
Definice je uvedena na řádku 236 v souboru main.c.
guchar* nacti_kod |
( |
FILE * |
file, |
|
|
ChData * |
data | |
|
) |
| | |
Nacte zakodovany soubor.
Alokuje buffer a nacte zakodovany soubor. Z hlavicky inicializuje pole pro kodovaci strom. Prvni faze kontroly souboru na vyskyt chyb.
- Parametry:
-
| file | Vstupni soubor |
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- Pointer na buffer nactenych dat
Definice je uvedena na řádku 376 v souboru main.c.
Nalezeni korenoveho uzlu.
Prohleda pole a najde korenovy uzel, tedy uzel s nejnvyssi cetnosti vyskytu
- Návratová hodnota:
- Index uzlu s nejvyssim vyskytem
Definice je uvedena na řádku 151 v souboru main.c.
Nalezeni uzlu s nejnizsi cetnosti.
Prohleda pole a najde uzel, ktery ma nejnizsi cetnost vyskytu
- Návratová hodnota:
- Index uzlu s nejnizsim vyskytem
Definice je uvedena na řádku 129 v souboru main.c.
gint nejvetsi_cetnost |
( |
|
) |
|
Nalezeni nejvyssi cetnosti.
Prohleda pole a najde nejvyssi cetnost vyskytu
- Návratová hodnota:
- Nejvyssi cetnost
Definice je uvedena na řádku 106 v souboru main.c.
void pouziti |
( |
gchar * |
str |
) |
|
Vypis napovedy.
Vypise do terminalu zpusob pouziti programu
- Parametry:
-
| str | Nazev programu - obvykle argv[0] |
Definice je uvedena na řádku 9 v souboru main.c.
G_MODULE_EXPORT void quit_cb |
( |
GtkWidget * |
widget, |
|
|
ChData * |
data | |
|
) |
| | |
Callback ukonceni programu.
Ukonci hlavni smycku GTK.
- Parametry:
-
| widget | Pointer na volajici widget |
| data | Struktura obsahujici pointery na graficke prvky |
Definice je uvedena na řádku 632 v souboru main.c.
guchar* spocti_cetnosti |
( |
FILE * |
file, |
|
|
ChData * |
data | |
|
) |
| | |
Nacteni cetnosti ze vstupniho souboru.
Alokuje pamet pro vstupni a vystupni buffer, zkopiruje data vstupniho souboru a spocita cetnosti jednotlivych znaku, ktere uklada do pole.
- Parametry:
-
| file | Vstupni soubor |
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
Definice je uvedena na řádku 54 v souboru main.c.
gint vytvor_strom |
( |
ChData * |
data |
) |
|
Vytvoreni stromu.
Prochazi pole a spojovanim uzlu vytvari strom pro kodovani nebo dekodovani
- Parametry:
-
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- Vraci nulu, pokud nedoslo k chybe
Definice je uvedena na řádku 174 v souboru main.c.
gint zapis_data |
( |
guchar * |
buffer_in, |
|
|
FILE * |
file, |
|
|
ChData * |
data | |
|
) |
| | |
Zapis dekodovanych dat.
Podle binarniho stromu dekoduje vstupni buffer a zapise data do vystupniho souboru. Druha faze kontroly chyb.
- Parametry:
-
| buffer_in | Buffer zakodovanych dat |
| file | Vystupni soubor |
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- 0 pokud nedoslo k chybe
Definice je uvedena na řádku 436 v souboru main.c.
gint zapis_kod |
( |
guchar * |
buffer_in, |
|
|
FILE * |
file, |
|
|
ChData * |
data | |
|
) |
| | |
Zapise zakodovany soubor na vystup.
Vytvori hlavicku souboru a podle kodovaciho stromu zakoduje data z bufferu. Struktura hlavicky:
1B Pocet znaku v tabulce
1B znak 1
4B cetnost znaku 1
1B znak 2
4B cetnost znaku 2
atd...
- Parametry:
-
| buffer_in | Pointer na data pro kompresi |
| file | Vystupni soubor |
| data | Struktura obsahujici pointery na graficke prvky |
- Návratová hodnota:
- 0 pokud nedojde k chybe
Definice je uvedena na řádku 280 v souboru main.c.