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/editing.h"
|
||||||
#include "common/strings/parsing.h"
|
#include "common/strings/parsing.h"
|
||||||
|
|
||||||
|
union double_to_uint64_t {
|
||||||
|
uint64_t i;
|
||||||
|
double d;
|
||||||
|
};
|
||||||
|
|
||||||
#if !defined(SYS_WINDOWS)
|
#if !defined(SYS_WINDOWS)
|
||||||
static std::string
|
static std::string
|
||||||
get_errno_msg() {
|
get_errno_msg() {
|
||||||
@ -365,6 +370,14 @@ mm_io_c::read_uint64_be() {
|
|||||||
return get_uint64_be(buffer);
|
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
|
uint32_t
|
||||||
mm_io_c::read(memory_cptr &buffer,
|
mm_io_c::read(memory_cptr &buffer,
|
||||||
size_t size,
|
size_t size,
|
||||||
@ -436,6 +449,13 @@ mm_io_c::write_uint64_be(uint64_t value) {
|
|||||||
return write(&buffer, sizeof(uint64_t));
|
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
|
size_t
|
||||||
mm_io_c::write(const void *buffer,
|
mm_io_c::write(const void *buffer,
|
||||||
size_t size) {
|
size_t size) {
|
||||||
|
@ -149,6 +149,7 @@ public:
|
|||||||
virtual uint32_t read_uint24_be();
|
virtual uint32_t read_uint24_be();
|
||||||
virtual uint32_t read_uint32_be();
|
virtual uint32_t read_uint32_be();
|
||||||
virtual uint64_t read_uint64_be();
|
virtual uint64_t read_uint64_be();
|
||||||
|
virtual double read_double();
|
||||||
virtual int write_uint8(unsigned char value);
|
virtual int write_uint8(unsigned char value);
|
||||||
virtual int write_uint16_le(uint16_t value);
|
virtual int write_uint16_le(uint16_t value);
|
||||||
virtual int write_uint32_le(uint32_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_uint16_be(uint16_t value);
|
||||||
virtual int write_uint32_be(uint32_t value);
|
virtual int write_uint32_be(uint32_t value);
|
||||||
virtual int write_uint64_be(uint64_t value);
|
virtual int write_uint64_be(uint64_t value);
|
||||||
|
virtual int write_double(double value);
|
||||||
virtual void skip(int64 numbytes);
|
virtual void skip(int64 numbytes);
|
||||||
virtual size_t write(const void *buffer, size_t size);
|
virtual size_t write(const void *buffer, size_t size);
|
||||||
virtual size_t write(std::string const &buffer) {
|
virtual size_t write(std::string const &buffer) {
|
||||||
|
Loading…
Reference in New Issue
Block a user