/*
  * Called from native-land when native-land thinks the bytebuffer size might be incorrect
  */
 public void setBufferLength(int length) {
   Log.i(TAG, "Trying to change the size of our ByteBuffer to " + length);
   if (depthReceiver != null) {
     if (depthReceiver.buffer != null) {
       depthReceiver.buffer.clear();
       freeNativeBuffer();
       depthReceiver.buffer = null;
     }
     if (length > 0) {
       depthReceiver.buffer = (ByteBuffer) allocNativeBuffer(length);
       depthReceiver.buffer.order(ByteOrder.LITTLE_ENDIAN);
     }
   }
 }
 @Override
 public void run() {
   int res = 0;
   while (true) {
     if (mBreakout) {
       Log.e(TAG, "Breaking out");
       break;
     }
     res = dowork();
     if ((res & UPDATED_DEPTH) != 0) depthReceiver.DepthCallback();
     if ((res & UPDATED_ODOM) != 0) vioReceiver.VIOCallback();
     try {
       Thread.sleep(33);
     } catch (InterruptedException e) {
       Log.e(TAG, "INSOMNIA", e);
     }
   }
   Log.e(TAG, "Broke out");
 }