mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2025-02-26 08:22:31 +00:00
mm_io_c: Add read_double()/write_double()
This commit is contained in:
parent
7e4204f5f9
commit
92cbd265d5
@ -32,6 +32,11 @@
|
||||
#include "common/strings/editing.h"
|
||||
#include "common/strings/parsing.h"
|
||||
|
||||
union double_to_uint64_t {
|
||||
uint64_t i;
|
||||
double d;
|
||||
};
|
||||
|
||||
#if !defined(SYS_WINDOWS)
|
||||
static std::string
|
||||
get_errno_msg() {
|
||||
@ -365,6 +370,14 @@ mm_io_c::read_uint64_be() {
|
||||
return get_uint64_be(buffer);
|
||||
}
|
||||
|
||||
double
|
||||
mm_io_c::read_double() {
|
||||
double_to_uint64_t d2ui;
|
||||
|
||||
d2ui.i = read_uint64_be();
|
||||
return d2ui.d;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
mm_io_c::read(memory_cptr &buffer,
|
||||
size_t size,
|
||||
@ -436,6 +449,13 @@ mm_io_c::write_uint64_be(uint64_t value) {
|
||||
return write(&buffer, sizeof(uint64_t));
|
||||
}
|
||||
|
||||
int
|
||||
mm_io_c::write_double(double value) {
|
||||
double_to_uint64_t d2ui;
|
||||
d2ui.d = value;
|
||||
return write_uint64_be(d2ui.i);
|
||||
}
|
||||
|
||||
size_t
|
||||
mm_io_c::write(const void *buffer,
|
||||
size_t size) {
|
||||
|
@ -149,6 +149,7 @@ public:
|
||||
virtual uint32_t read_uint24_be();
|
||||
virtual uint32_t read_uint32_be();
|
||||
virtual uint64_t read_uint64_be();
|
||||
virtual double read_double();
|
||||
virtual int write_uint8(unsigned char value);
|
||||
virtual int write_uint16_le(uint16_t value);
|
||||
virtual int write_uint32_le(uint32_t value);
|
||||
@ -156,6 +157,7 @@ public:
|
||||
virtual int write_uint16_be(uint16_t value);
|
||||
virtual int write_uint32_be(uint32_t value);
|
||||
virtual int write_uint64_be(uint64_t value);
|
||||
virtual int write_double(double value);
|
||||
virtual void skip(int64 numbytes);
|
||||
virtual size_t write(const void *buffer, size_t size);
|
||||
virtual size_t write(std::string const &buffer) {
|
||||
|
Loading…
Reference in New Issue
Block a user