common.bmx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. SuperStrict
  2. Import Brl.Stream
  3. Import "source.bmx"
  4. Extern
  5. Function bmx_create_cmsiohandler:Byte Ptr(handler:TCmsIoHandler)
  6. End Extern
  7. Type TCmsIoHandler
  8. Field ioHandlerPtr:Byte Ptr
  9. Field stream:TStream
  10. Method New(stream:TStream)
  11. Self.stream = stream
  12. ioHandlerPtr = bmx_create_cmsiohandler(Self)
  13. End Method
  14. Function _Read:UInt(handler:TCmsIoHandler, buffer:Byte Ptr, size:UInt, count:UInt) { nomangle }
  15. Return handler.Read(buffer, size, count)
  16. End Function
  17. Function _Seek:Int(handler:TCmsIoHandler, offset:UInt) { nomangle }
  18. Return handler.Seek(offset)
  19. End Function
  20. Function _Close:Int(handler:TCmsIoHandler) { nomangle }
  21. Return handler.Close()
  22. End Function
  23. Function _Tell:UInt(handler:TCmsIoHandler) { nomangle }
  24. Return handler.Tell()
  25. End Function
  26. Function _Write:Int(handler:TCmsIoHandler, size:Uint, buffer:Byte Ptr) { nomangle }
  27. Return handler.Write(size, buffer)
  28. End Function
  29. Method Read:UInt(buffer:Byte Ptr, size:UInt, count:UInt)
  30. Return stream.Read(buffer, size * count)
  31. End Method
  32. Method Seek:Int(offset:UInt)
  33. Return stream.Seek(offset)
  34. End Method
  35. Method Close:Int()
  36. stream.Close()
  37. End Method
  38. Method Tell:UInt()
  39. Return stream.Pos()
  40. End Method
  41. Method Write:Int(size:Uint, buffer:Byte Ptr)
  42. Return stream.Write(buffer, size)
  43. End Method
  44. End Type