mirror of https://github.com/odrling/Aegisub
Finished reader... although it's all entirely untested. :)
Originally committed to SVN as r261.
This commit is contained in:
parent
68cd073396
commit
8de39706c8
|
@ -63,8 +63,8 @@ PRSDisplay::~PRSDisplay() {
|
||||||
// Write data
|
// Write data
|
||||||
void PRSDisplay::WriteData(std::vector<char> &vec) {
|
void PRSDisplay::WriteData(std::vector<char> &vec) {
|
||||||
// Set length
|
// Set length
|
||||||
unsigned __int32 utemp = 4 + 4 + 4 + 2 + 2 + 2 + 1 + 1;
|
unsigned __int32 size = 4 + 4 + 4 + 4 + 2 + 2 + 1 + 1;
|
||||||
vec.resize(utemp+8);
|
vec.resize(size+8);
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
|
|
||||||
// Write block identifier
|
// Write block identifier
|
||||||
|
@ -73,47 +73,39 @@ void PRSDisplay::WriteData(std::vector<char> &vec) {
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write block length
|
// Write block length
|
||||||
memcpy(&vec[pos],&utemp,4);
|
memcpy(&vec[pos],&size,4);
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write start time
|
// Write start time
|
||||||
utemp = start;
|
memcpy(&vec[pos],&start,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write end time
|
// Write end time
|
||||||
utemp = end;
|
memcpy(&vec[pos],&end,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write image identifier
|
// Write image identifier
|
||||||
utemp = id;
|
memcpy(&vec[pos],&id,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write layer
|
// Write layer
|
||||||
__int16 shorttemp = layer;
|
memcpy(&vec[pos],&layer,4);
|
||||||
memcpy(&vec[pos],&shorttemp,2);
|
pos += 4;
|
||||||
pos += 2;
|
|
||||||
|
|
||||||
// Write x
|
// Write x
|
||||||
shorttemp = x;
|
memcpy(&vec[pos],&x,2);
|
||||||
memcpy(&vec[pos],&shorttemp,2);
|
|
||||||
pos += 2;
|
pos += 2;
|
||||||
|
|
||||||
// Write y
|
// Write y
|
||||||
shorttemp = y;
|
memcpy(&vec[pos],&y,2);
|
||||||
memcpy(&vec[pos],&shorttemp,2);
|
|
||||||
pos += 2;
|
pos += 2;
|
||||||
|
|
||||||
// Write alpha multiplier
|
// Write alpha multiplier
|
||||||
unsigned __int8 chartemp = alpha;
|
memcpy(&vec[pos],&alpha,1);
|
||||||
memcpy(&vec[pos],&chartemp,1);
|
|
||||||
pos += 1;
|
pos += 1;
|
||||||
|
|
||||||
// Write blend mode
|
// Write blend mode
|
||||||
chartemp = blend;
|
memcpy(&vec[pos],&blend,1);
|
||||||
memcpy(&vec[pos],&chartemp,1);
|
|
||||||
pos += 1;
|
pos += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,4 +113,39 @@ void PRSDisplay::WriteData(std::vector<char> &vec) {
|
||||||
/////////////
|
/////////////
|
||||||
// Read data
|
// Read data
|
||||||
void PRSDisplay::ReadData(std::vector<char> &vec) {
|
void PRSDisplay::ReadData(std::vector<char> &vec) {
|
||||||
|
// Set length
|
||||||
|
unsigned __int32 size = vec.size();
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Write start time
|
||||||
|
memcpy(&start,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write end time
|
||||||
|
memcpy(&end,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write image identifier
|
||||||
|
memcpy(&id,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write layer
|
||||||
|
memcpy(&layer,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write x
|
||||||
|
memcpy(&x,&vec[pos],2);
|
||||||
|
pos += 2;
|
||||||
|
|
||||||
|
// Write y
|
||||||
|
memcpy(&y,&vec[pos],2);
|
||||||
|
pos += 2;
|
||||||
|
|
||||||
|
// Write alpha multiplier
|
||||||
|
memcpy(&alpha,&vec[pos],1);
|
||||||
|
pos += 1;
|
||||||
|
|
||||||
|
// Write blend mode
|
||||||
|
memcpy(&blend,&vec[pos],1);
|
||||||
|
pos += 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,8 @@ PRSImage::~PRSImage() {
|
||||||
// Write data
|
// Write data
|
||||||
void PRSImage::WriteData(std::vector<char> &vec) {
|
void PRSImage::WriteData(std::vector<char> &vec) {
|
||||||
// Set length
|
// Set length
|
||||||
unsigned __int32 utemp = 4 + 4 + 4 + dataLen;
|
unsigned __int32 size = 4 + 4 + 4 + dataLen;
|
||||||
vec.resize(utemp+8);
|
vec.resize(size+8);
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
|
|
||||||
// Write block identifier
|
// Write block identifier
|
||||||
|
@ -74,22 +74,19 @@ void PRSImage::WriteData(std::vector<char> &vec) {
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write block length
|
// Write block length
|
||||||
memcpy(&vec[pos],&utemp,4);
|
memcpy(&vec[pos],&size,4);
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write image identifier
|
// Write image identifier
|
||||||
utemp = id;
|
memcpy(&vec[pos],&id,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write image format
|
// Write image format
|
||||||
utemp = imageType;
|
memcpy(&vec[pos],&imageType,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write data length
|
// Write data length
|
||||||
utemp = dataLen;
|
memcpy(&vec[pos],&dataLen,4);
|
||||||
memcpy(&vec[pos],&utemp,4);
|
|
||||||
pos += 4;
|
pos += 4;
|
||||||
|
|
||||||
// Write data
|
// Write data
|
||||||
|
@ -101,4 +98,23 @@ void PRSImage::WriteData(std::vector<char> &vec) {
|
||||||
/////////////
|
/////////////
|
||||||
// Read data
|
// Read data
|
||||||
void PRSImage::ReadData(std::vector<char> &vec) {
|
void PRSImage::ReadData(std::vector<char> &vec) {
|
||||||
|
// Set length
|
||||||
|
unsigned __int32 size = vec.size();
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Read image identifier
|
||||||
|
memcpy(&id,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write image format
|
||||||
|
memcpy(&imageType,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write data length
|
||||||
|
memcpy(&dataLen,&vec[pos],4);
|
||||||
|
pos += 4;
|
||||||
|
|
||||||
|
// Write data
|
||||||
|
memcpy(data,&vec[pos],dataLen);
|
||||||
|
pos += dataLen;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue