samer@1: % gathern - Collect exactly n samples from a signal samer@1: % samer@1: % gathern :: N:natural, signal(C,R), options -> [[C,N]], natural. samer@1: function [x,rem]=gathern(m,sig,varargin) samer@1: opts=prefs('chunk',256,varargin{:}); samer@1: samer@1: s=construct(sig); samer@1: try % to make sure we dispose of s once opened samer@1: chunk=uint32(opts.chunk); samer@1: n=uint32(0); CHUNK=1:chunk; samer@1: x=zeros(channels(sig),m); samer@1: r=s.reader(opts.chunk); samer@1: rem=0; samer@1: while rem==0 && n+chunk<=m samer@1: [x(:,n+CHUNK),rem]=r(); samer@1: n=n+chunk; samer@1: end samer@1: if n