code: def iteritems(self):
          
          current_buf = self.ptr.contents.buffer
          length = self.ptr.contents.length
          seen_length = 0
          header = c_size_t()
          position = c_uint32()
          arraylength = c_size_t()
          arrayptr = FloatPtr()
          header_ = byref(header)
          position_ = byref(position)
          arraylength_ = byref(arraylength)
          arrayptr_ = byref(arrayptr)
          advance = Gauged.map_advance
          while seen_length < length:
              current_buf = advance(current_buf, header_, position_,
                                    arraylength_, arrayptr_)
              seen_length += header.value + arraylength.value
              address = addressof(arrayptr.contents)
              arr = (c_float * arraylength.value).from_address(address)
              yield position.value, list(arr)
docs: Get a generator which yields (offset, array)