aboutsummaryrefslogtreecommitdiff
path: root/bitreader.go
diff options
context:
space:
mode:
authorBiSaXa <1669855+BiSaXa@users.noreply.github.com>2022-09-04 11:08:23 +0300
committerBiSaXa <1669855+BiSaXa@users.noreply.github.com>2022-09-04 11:08:23 +0300
commit74ed90d288238c704395c3912a47db916d151298 (patch)
tree2aa452af4c57ae0fabcf65aac72782e2399c7e23 /bitreader.go
parentinit - first full version (diff)
downloadbitreader-74ed90d288238c704395c3912a47db916d151298.tar.gz
bitreader-74ed90d288238c704395c3912a47db916d151298.tar.bz2
bitreader-74ed90d288238c704395c3912a47db916d151298.zip
specify little endian, easier reader construct
Diffstat (limited to 'bitreader.go')
-rw-r--r--bitreader.go33
1 files changed, 13 insertions, 20 deletions
diff --git a/bitreader.go b/bitreader.go
index 9d9a273..b105df7 100644
--- a/bitreader.go
+++ b/bitreader.go
@@ -8,31 +8,24 @@ import (
8) 8)
9 9
10type ReaderType struct { 10type ReaderType struct {
11 data []byte 11 data []byte // Reader data from a byte array
12 base int 12 base int // Current reader byte location
13 index int 13 index int // Current reader index
14 lsb bool 14 le bool // Little endian or big endian?
15} 15}
16 16
17func Reader(data []byte) *ReaderType { 17func Reader(data []byte, le bool) *ReaderType {
18 return &ReaderType{ 18 dataClone := data
19 data: data, 19 if le {
20 base: 0, 20 for index, byteValue := range data {
21 index: 0, 21 dataClone[index] = bits.Reverse8(byteValue)
22 lsb: false, 22 }
23 }
24}
25
26func ReaderLSB(data []byte) *ReaderType {
27 dataReversed := data
28 for index, byteValue := range data {
29 dataReversed[index] = bits.Reverse8(byteValue)
30 } 23 }
31 return &ReaderType{ 24 return &ReaderType{
32 data: dataReversed, 25 data: dataClone,
33 base: 0, 26 base: 0,
34 index: 0, 27 index: 0,
35 lsb: true, 28 le: le,
36 } 29 }
37} 30}
38 31
@@ -60,7 +53,7 @@ func (reader *ReaderType) ReadBits32(bits int) (int, error) {
60 if err != nil { 53 if err != nil {
61 return -1, err 54 return -1, err
62 } 55 }
63 if reader.lsb { 56 if reader.le {
64 var output string 57 var output string
65 // Go to last bit and read backwards from there 58 // Go to last bit and read backwards from there
66 reader.base += bits / 8 59 reader.base += bits / 8