mirror of
https://github.com/garraflavatra/go-fmp.git
synced 2025-06-28 04:25:11 +00:00
Add debug print
This commit is contained in:
@ -128,16 +128,16 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) {
|
||||
length := payload[4]
|
||||
return &FmpChunk{
|
||||
Type: FMP_CHUNK_LONG_KEY_VALUE,
|
||||
Key: parseVarUint32(payload[1 : 1+3]), // todo, won't work?
|
||||
Key: parseVarUint32(payload[1 : 1+3]),
|
||||
Value: payload[5 : 5+length],
|
||||
Length: 5 + uint32(length),
|
||||
}, nil
|
||||
}
|
||||
if payload[0] == 0x17 {
|
||||
length := parseVarUint32(payload[1 : 1+3]) // todo, won't work?
|
||||
length := uint32(binary.BigEndian.Uint16(payload[4 : 4+2]))
|
||||
return &FmpChunk{
|
||||
Type: FMP_CHUNK_LONG_KEY_VALUE,
|
||||
Key: uint32(binary.BigEndian.Uint16(payload[4 : 4+2])),
|
||||
Key: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])),
|
||||
Value: payload[6 : 6+length],
|
||||
Length: 6 + uint32(length),
|
||||
}, nil
|
||||
@ -175,12 +175,12 @@ func (ctx *FmpFile) readChunk(payload []byte) (*FmpChunk, error) {
|
||||
}, nil
|
||||
}
|
||||
if payload[0] == 0x0F {
|
||||
length := binary.BigEndian.Uint16(payload[3 : 3+2])
|
||||
length := uint32(binary.BigEndian.Uint16(payload[3 : 3+2]))
|
||||
return &FmpChunk{
|
||||
Type: FMP_CHUNK_SEGMENTED_DATA,
|
||||
Index: uint32(binary.BigEndian.Uint16(payload[1 : 1+2])),
|
||||
Value: payload[5 : 5+length],
|
||||
Length: 5 + uint32(length),
|
||||
Length: 5 + length,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package fmp
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"encoding/hex"
|
||||
"io"
|
||||
"os"
|
||||
"time"
|
||||
@ -57,6 +58,7 @@ func OpenFile(path string) (*FmpFile, error) {
|
||||
ctx.Sectors = make([]*FmpSector, ctx.NumSectors)
|
||||
|
||||
for i := uint(0); i < ctx.NumSectors; i++ {
|
||||
println("reading sector ", i)
|
||||
sector, err := ctx.readSector()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -120,6 +122,7 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) {
|
||||
sector.Chunks = make([]*FmpChunk, 0)
|
||||
|
||||
for {
|
||||
println(hex.EncodeToString(payload[0:2]))
|
||||
chunk, err := ctx.readChunk(payload)
|
||||
if err == io.EOF {
|
||||
break
|
||||
@ -134,7 +137,6 @@ func (ctx *FmpFile) readSector() (*FmpSector, error) {
|
||||
if chunk.Length == 0 {
|
||||
panic("chunk length not set")
|
||||
}
|
||||
print(chunk.String() + "\n")
|
||||
payload = payload[chunk.Length:]
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user