Funkce

Dokumentace souboru main.c

#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.

gint najdi_koren (  ) 

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.

gint najdi_nejmensi (  ) 

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.

 Vše Třídy Soubory Funkce Proměnné Definice typů Definice maker