samer@1: samer@1: function s=construct(sig) samer@1: sc=construct(sig.sig); samer@1: length=uint32(sig.len); samer@1: samer@1: s.start = sc.start; samer@1: s.stop = sc.stop; samer@1: s.dispose = sc.dispose; samer@1: s.reader = @reader; samer@1: samer@1: function r=reader(n) samer@1: rc=sc.reader(n); samer@1: r = @next; samer@1: n=uint32(n); samer@1: function [x,rem]=next samer@1: [x,rem]=rc(); samer@1: if length>n samer@1: length=length-n; samer@1: elseif length>0 samer@1: rem=max(rem,n-length); samer@1: length=0; samer@1: last=x(:,end); samer@1: else samer@1: rem=n; samer@1: end samer@1: end samer@1: end samer@1: end