~eda-qa/dhlib/main

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <string>
#include <fstream>
#include <core/stdtypes.h>
#include <netinet/in.h>

#include <iostream>
using namespace std;

void writeRAW( const std::string& file, const _uint8* data, _uint32 len )
{
	//adapt to network order
	_uint32 nlen = htonl( len );

	ofstream out( file.c_str(), ios::binary );
	out.write( "WRAW", 4 );
	out.write( (char*)&nlen, sizeof(nlen) );	
	out.write( (char*)data, len );
	out.write( (char*)&nlen, sizeof(nlen) );
	
	out.close();
}

_uint8* loadRAW( const std::string& file )
{
	ifstream in( file.c_str(), ios::binary );
	_uint8 buf[4];
	in.read( (char*)buf, 4 );
	
	_uint32 len;
	in.read( (char*)&len, sizeof(len) );
	len = ntohl( len );	//back to host order
	
	_uint8* data = new _uint8[len];
	in.read( (char*)data, len );
	
	return data;
}