function fun_parametr(handle, eval)
%% Změna proměnných parametrů
%
 
%% načtení parametrů popřípadě nastavení defaultních hodnot
 
 if exist('parametr.mat') == 2
     
    load('parametr.mat'); 
    
    vzorek = dataParam.dataVzorek;
    alfa = dataParam.dataAlfa;
    usek = dataParam.dataUsek;
    uroven = dataParam.dataUroven;
    tolerance = dataParam.dataTolerance;
    tol_matic = dataParam.dataTol_matic;
      
 else
      
      vzorek = 320;           %delka vzorku
      alfa = 0.98;            %hodnota alfa do preemfazi
      usek = 80;              %usek pro stredni energii
      uroven = 0.0001;        %rozhodovaci uroven pro odmazani useku stredni energii
      tolerance = 0.2;        %tolerance srovnání kepstr. příznaků
      tol_matic = 0.1;        %tolerance srovnání pravděpodobnostních matic
      
 end
  
%% vykreslení okna
 
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.80 0.1 0.03],...
                     'String', vzorek);

                 uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.65 0.1 0.03],...
                     'String', alfa);

                 uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.50 0.1 0.03],...
                     'String', usek);

                 uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.35 0.15 0.03],...
                     'String', uroven);

                 uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.20 0.1 0.03],...
                     'String', tolerance);

                 uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.05 0.1 0.03],...
                     'String', tol_matic);
  
  
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.85 0.3 0.04],...
                     'String','Velikost úseku ');
  
                paramVzorek = uicontrol('Style', 'slider',  ...
                    'Min',160,'Max',480,'Value', vzorek,...
                    'units', 'normalized', 'Position', [0.2 0.79 0.5 0.05], ...
                    'callback', @novyVzorek );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.14 0.80 0.05 0.03],...
                     'String','160');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.80 0.05 0.03],...
                     'String','480');
               
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.70 0.3 0.04],...
                     'String','Parametr alfa > preemfáze');

               paramAlfa = uicontrol('Style', 'slider', ...
                    'Min',0,'Max',1,'Value', alfa,...
                    'units', 'normalized', 'Position', [0.2 0.64 0.5 0.05], ...
                    'callback', @novyAlfa );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.14 0.65 0.05 0.03],...
                     'String','0');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.65 0.05 0.03],...
                     'String','1');
  
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.55 0.3 0.04],...
                     'String','Délka úseku energie');

                paramUsek = uicontrol('Style', 'slider', ...
                    'Min',10,'Max',150,'Value', usek, ...
                    'units', 'normalized', 'Position', [0.2 0.49 0.5 0.05], ...
                    'callback', @novyUsek );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.14 0.50 0.05 0.03],...
                     'String','10');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.50 0.05 0.03],...
                     'String','150');
                  
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.40 0.3 0.04],...
                     'String','Velikost úrovně energie');

                paramUroven = uicontrol('Style', 'slider', ...
                    'Min',0.00001,'Max',0.001,'Value', uroven,...
                    'units', 'normalized', 'Position', [0.2 0.34 0.5 0.05], ...
                    'callback', @novyUroven );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.115 0.35 0.075 0.03],...
                     'String','1e-5');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.35 0.075 0.03],...
                     'String','1e-3');
                  
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.25 0.3 0.07],...
                     'String','Tolerance porovnání kepstrálních příznaků');

                paramTolerance = uicontrol('Style', 'slider', ...
                    'Min',0.05 ,'Max',1,'Value', tolerance, ...
                    'units', 'normalized', 'Position', [0.2 0.19 0.5 0.05], ...
                    'callback', @novyTolerance );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.125 0.20 0.065 0.03],...
                     'String','0.05');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.20 0.065 0.03],...
                     'String','1');

                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.3 0.1 0.3 0.07],...
                     'String','Tolerance porovnání pravděpodobnostních matic');
  
                paramTol_matic = uicontrol('Style', 'slider',  ...
                    'Min',0.05,'Max',0.25,'Value', tol_matic,...
                    'units', 'normalized', 'Position', [0.2 0.04 0.5 0.05], ...
                    'callback', @novyTol_matic );
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.125 0.05 0.065 0.03],...
                     'String','0.05');
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.71 0.05 0.065 0.03],...
                     'String','0.25');
               
  
    tlacit1 = uicontrol('Style', 'pushbutton', 'string', 'Původní hodnoty', ...
        'units', 'normalized', 'Position', [0 0.9 0.8/3 0.1], ...
        'TooltipString','Reset', ...
        'callback', 'diplom_menu dataReset');
                   
    tlacit2 = uicontrol('Style', 'pushbutton', 'string', 'Uložit změny', ...
        'units', 'normalized', 'Position', [0.8/3 0.9 0.8/3 0.1], ...
        'TooltipString','Uložit změny', ...
        'callback', 'diplom_menu dataUloz');

    tlacit3 = uicontrol('Style', 'pushbutton', 'string', 'Zavřít (bez uložení)', ...
        'units', 'normalized', 'Position', [1.6/3 0.9 0.8/3 0.1], ...
        'TooltipString','Zavři bez uložení', ...
        'callback', 'diplom_menu dataBez');
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.76 0.84 0.2 0.03],...
                     'String','Aktuální hodnota');
  
 end
                  
%% změna jednotlivých parametrů

  function novyVzorek(handle, eval)  %délka úseku vzorkování
  
  
                vzorek = get(handle, 'value');
                vzorek = round( vzorek);
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.80 0.1 0.03],...
                     'String',vzorek);
                 
                   
                 set(handle, 'value', vzorek);
                 vzorek = get(handle, 'value');
                  
           save('vzorek.mat','vzorek');
                                 
  end

  function novyAlfa(handle, eval)  % preemfáze alfa
  
                alfa = get(handle, 'value');
                alfa = alfa * 1000;
                alfa = round( alfa);
                alfa = alfa / 1000;
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.65 0.1 0.03],...
                     'String', alfa);
                 
                 set(handle, 'value', alfa);
                 alfa = get(handle, 'value');
                  
           save('alfa.mat','alfa');
             
  end

  function novyUsek(handle, eval)    % délka úseku energie
  
                usek = get(handle, 'value');
                usek = round( usek);
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.50 0.1 0.03],...
                     'String', usek);
                 
                 set(handle, 'value', usek);
                 usek = get(handle, 'value');
                  
           save('usek.mat','usek');
             
  end
  
  function novyUroven(handle, eval)   %úroven odstranění useku energie
  
                uroven = get(handle, 'value');
                uroven = uroven * 100000;
                uroven = round( uroven);
                uroven = uroven / 100000;
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.35 0.15 0.03],...
                     'String', uroven);
                 
                 set(handle, 'value', uroven);
                 uroven = get(handle, 'value');
                  
           save('uroven.mat','uroven');
             
  end
  
  function novyTolerance(handle, eval)   %tolerance porovnání kepster
  
                tolerance = get(handle, 'value');
                tolerance = tolerance * 1000;
                tolerance = round( tolerance);
                tolerance = tolerance / 1000;
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.20 0.1 0.03],...
                     'String', tolerance);
                 
                 set(handle, 'value', tolerance);
                 tolerance = get(handle, 'value');
                  
           save('tolerance.mat','tolerance');
             
  end

  function novyTol_matic(handle, eval)    %tolerance porovnání matic přechodů
  
                tol_matic = get(handle, 'value');
                tol_matic = tol_matic * 1000;
                tol_matic = round( tol_matic);
                tol_matic = tol_matic / 1000;
                
                uicontrol('Style','text',...
                     'units', 'normalized', 'Position',[0.8 0.05 0.1 0.03],...
                     'String', tol_matic);
                 
                 set(handle, 'value', tol_matic);
                 tol_matic = get(handle, 'value');
                  
           save('tol_matic.mat','tol_matic');
             
  end

