diff --git a/writecntriffdata.m b/writecntriffdata.m index d2c1ca0..8b1221a 100644 --- a/writecntriffdata.m +++ b/writecntriffdata.m @@ -1,6 +1,11 @@ % $Id$ -function epochOffsetArray = writeriffdata(fid, data, epochLength) +function epochOffsetArray = writecntriffdata(fid, data, epochLength, compMeth) + +% Compression method +if nargin < 4 || isempty(compMeth) + compMeth = 12; % Float vectors +end % Epoch length if nargin < 3 @@ -19,14 +24,28 @@ epochOffsetArray(iEpoch) = ftell(fid) - chunkOffset; for iChan = 1:size(data, 1) + + switch compMeth + + % Uncompressed 32 bit integer + case 8 + % Write data format and compression information + fwrite(fid, 128, 'uint8'); + + % Write data + fwrite(fid, data(iChan, epochArray(iEpoch) + 1:epochArray(iEpoch + 1)), 'int32', 'b'); % Big endian! + + % EEP 4.0 average (float vectors) + case 12 + % Write data format and compression information + fwrite(fid, 12, 'uint8'); - % Write data format and compression information (currently - % only 32 bit float w/o compression) - fwrite(fid, 12, 'ubit4'); - fwrite(fid, 0, 'ubit4'); + % Write data + fwrite(fid, data(iChan, epochArray(iEpoch) + 1:epochArray(iEpoch + 1)), 'float32'); - % Write data - fwrite(fid, data(iChan, epochArray(iEpoch) + 1:epochArray(iEpoch + 1)), 'float32'); + otherwise + error('Unkown compression method.') + end end