- uint16_t *buffer = new uint16_t[BUFFER_SIZE/2];
-
- // how many BUFFER_SIZE long pieces in binArea ?
- int nbPieces = lgr/BUFFER_SIZE; //(16 bits = 2 Bytes)
- int remainingSize = lgr%BUFFER_SIZE;
-
- uint16_t *binArea16 = (uint16_t*)binArea;
- for (int j=0;j<nbPieces;j++)
- {
- for (int i = 0; i < BUFFER_SIZE/2; i++)
- {
- //buffer[i] = (binArea16[i] >> 8) | (binArea16[i] << 8);
- uint16_t val = binArea16[i];
- buffer[i] = ((( val << 8 ) & 0xff00 ) | (( val >> 8 ) & 0x00ff ) );
- }
- fp->write ( (char*)buffer, BUFFER_SIZE );
- binArea16 += BUFFER_SIZE/2;
- }
- if ( remainingSize > 0)
- {
- for (int i = 0; i < remainingSize/2; i++)
- {
- //buffer[i] = (binArea16[i] >> 8) | (binArea16[i] << 8);
- uint16_t val = binArea16[i];
- buffer[i] = ((( val << 8 ) & 0xff00 ) | (( val >> 8 ) & 0x00ff ) );
- }
- fp->write ( (char*)buffer, remainingSize );
- }
- delete[] buffer;
+ uint16_t *binArea16 = (uint16_t*)binArea8;
+ binary_write (*fp, binArea16, lgr );