function txx=rtxxp(ir,fs,flag,flag2,ertek,referencia,p)
% flag: 1    zajszuros, chu
% flag: iso  iso szerinti, chu nelkul
% ertek: utozengesi idot hany dB-ig nezzuk, poz. szam kell legyen, pl. 60
% referencia: 0 vagy 5, edt-hez 0

edcc=edcn(ir,p);

if strcmp(flag,'chuv')==1 || strcmp(flag2,'chuv')==1, % chu zajkorrekció és EDC crop
    edcch=dipl_edc_chu(ir);
    snr_hely=find(edcc-edcch > 1, 1 ); snr=edcc(snr_hely);
    edcc=edcc(1:snr_hely);
    % disp(['NSR: ',int2str(snr),' dB']);
    bndry=max(round(snr),-ertek);
end;
if strcmp(flag,'chu')==1 || strcmp(flag2,'chu')==1, % chu zajkorrekció
    edcch=dipl_edc_chu(ir);
    snr_hely=find(edcc-edcch > 1, 1 ); snr=edcc(snr_hely);
    edcc=edcch;
    % disp(['NSR: ',int2str(snr),' dB']);
    bndry=max(round(snr),-ertek);
end;

if strcmp(flag,'direkt')==1 || strcmp(flag2,'direkt')==1, % direkt leolvasás
    bndry=ertek;
    tr=find(edcc <= -referencia, 1 ,'first');
    tx=find(edcc <= -bndry, 1,'first' );
    txx_iso=60/(bndry-referencia)*(tx-tr)/fs;
    txx=txx_iso;
elseif strcmp(flag,'iso')==1 || strcmp(flag2,'iso')==1, % regression
    hol=find(edcc<-referencia & edcc>-ertek);
    tt=linspace(0,length(ir)-1,length(ir))./fs;
    try a=polyfit(tt(hol),edcc(hol),1); catch; a=polyfit(tt(hol)',edcc(hol),1); end;    
    txx=find(a(1).*tt+a(2)<-60,1,'first')/fs;
else
    brob = robustfit(1:length(edcc),edcc); % robust fit
    txx = floor((-60-brob(1))/brob(2))/fs;
    %disp(['T60: ',num2str(t60),' s']);
end;

if isempty(txx), txx=NaN; end;

%disp(['T',int2str(abs(bndry)),': ',num2str(t60_iso),' s']);