Class: ID3Tag::SynchsafeInteger
- Inherits:
-
Object
- Object
- ID3Tag::SynchsafeInteger
- Defined in:
- lib/id3tag/synchsafe_integer.rb
Class Method Summary collapse
Class Method Details
.decode(synchsafe_int) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/id3tag/synchsafe_integer.rb', line 16 def decode(synchsafe_int) out = 0 mask = 0x7F000000 while mask > 0 do out = out >> 1 out = out | (synchsafe_int & mask) mask = mask >> 8 end out end |
.encode(int) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/id3tag/synchsafe_integer.rb', line 4 def encode(int) mask = 0x7F while mask <= 0x7FFFFFFF do out = int & ~mask out = out << 1 out = out | (int & mask) mask = ((mask + 1) << 8) - 1 int = out end out end |