% method of class @signal
% 
%   INPUT VALUES:
%  
%   RETURN VALUE:
%
% 
% (c) 2003-2008, University of Cambridge, Medical Research Council 
% Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de)
% http://www.pdn.cam.ac.uk/cnbh/aim2006
% $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $
% $Revision: 585 $

function val=gettimevalue(sig,times)
% usage: val=gettimevalue(sig,time)
% returns the value at this point in time

val=zeros(size(times));
if isempty(times)
	return
end

sr=1/getsr(sig);

threshold=sr/100;
nr_points=getnrpoints(sig);
start=getminimumtime(sig);
stop=getmaximumtime(sig);
x=start+sr:sr:stop;
Y=sig.werte;
method='linear';


for ii=1:length(times);
	time=times(ii)-sig.start_time;
	
	nrint=round(time/sr);
	rint=time/sr;
	
	if (nrint-rint)<threshold
		if nrint>0 && nrint <= length(sig.werte)
			val(ii)=sig.werte(nrint);
		end
	else
		xi=times(ii);
		val(ii)=interp1(x,Y,xi,method);
	end
end


