com.beaglebuddy.id3.v23.frame_body

## Class ID3v23FrameBodyMPEGLocationLookupTable

- java.lang.Object
- - com.beaglebuddy.util.Utility
  - - com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBodyUtility
    - - com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBody
      - - com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBodyMPEGLocationLookupTable

-     public class ID3v23FrameBodyMPEGLocationLookupTable
      extends ID3v23FrameBody

  An MPEG location lookup table frame body is associated with an ID3v2.3 `MLLT` `frame` which is used to ncrease performance and accuracy of jumps within an MPEG audio file. If anyone has a clue as to how this frame works (including the authors of the ID32.3 specification, please let me know).The MPEG location lookup table frame body contains the following fields:

  MPEG Location Lookup Table Frame Body Fields
  | Field | Description
  --- | --- | ---
  1. | framesBetweenReferences | indicates how much the frame counter should increase for every reference. If this value is set to 2, then the first reference points to the second frame, the 2nd reference the 4th frame, the 3rd reference the 6th frame etc.
  2. | bytesBetweenReferences | similarly to the framesBetweenReferences field, this field points out how much the byte counter should increase (in bytes) for every reference.
  3. | msBetweenReferences | similarly to the framesBetweenReferences field, this field points out how much the ms counter should increase (in milliseconds) for every reference.
  4. | bitsForBytesDeviation |
  5. | bitsForMSDeviation |
  6. |  |

  See Also:
    `ID3v23Frame`, ID3 tag version 2.3.0 standard, wikipedia history of ID3 tags

- - ### Field Summary

    - ### Fields inherited from class com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBody

      `buffer, dirty, frameType`

    - ### Fields inherited from class com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBodyUtility

      `nextNullTerminatorIndex, nullTerminatorIndex`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ID3v23FrameBodyMPEGLocationLookupTable()` The default constructor is called when creating a new frame.
    `ID3v23FrameBodyMPEGLocationLookupTable(java.io.InputStream inputStream, int frameBodySize)` This constructor is called when reading in an existing frame from an .mp3 file.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `parse()` parses the raw bytes of the frame body and stores the parsed values in the frame's fields.
    `void` | `setBuffer()` If the frame body's values have been modified, then resize the raw binary buffer and store the new values there.
    `java.lang.String` | `toString()` gets a string representation of the MPEG location lookup table frame body showing all of the frame's fields and their values.

    - ### Methods inherited from class com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBody

      `getFrameType, getNextNullTerminator, getSize, isDirty, save, save`

    - ### Methods inherited from class com.beaglebuddy.id3.v23.frame_body.ID3v23FrameBodyUtility

      `getNextNullTerminator, pricesToString, stringToBytes`

    - ### Methods inherited from class com.beaglebuddy.util.Utility

      `bytesToInt, bytesToInt, bytesToShort, bytesToShort, bytesToSynchsafeInt, bytesToSynchsafeShort, formateDate, getUTF16String, getUTF8String, hex, hex, hex, intToBytes, littleEndianBytesToInt, pad, shortToBytes, synchsafeIntToBytes`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ID3v23FrameBodyMPEGLocationLookupTable

          public ID3v23FrameBodyMPEGLocationLookupTable()

      The default constructor is called when creating a new frame.

    - #### ID3v23FrameBodyMPEGLocationLookupTable

          public ID3v23FrameBodyMPEGLocationLookupTable(java.io.InputStream inputStream,
                                                int frameBodySize)
                                                 throws java.io.IOException

      This constructor is called when reading in an existing frame from an .mp3 file. This is then followed by a call to the parse() method.
      Parameters:
        `inputStream` - input stream pointing to an mpeg location lookup table frame body in the .mp3 file.
        `frameBodySize` - size (in bytes) of the frame's body.
      Throws:
        `java.io.IOException` - if there is an error while reading the frame body.

  - ### Method Detail

    - #### parse

          public void parse()
                     throws java.lang.IllegalArgumentException

      parses the raw bytes of the frame body and stores the parsed values in the frame's fields.
      Overrides:
        `parse` in class `ID3v23FrameBody`
      Throws:
        `java.lang.IllegalArgumentException` - if an invalid value is detected while parsing the frame body's raw bytes.

    - #### setBuffer

          public void setBuffer()

      If the frame body's values have been modified, then resize the raw binary buffer and store the new values there. When finished, the dirty flag is reset to indicate that the buffer is up to date, and the frame is now ready to be saved to the .mp3 file.
      Overrides:
        `setBuffer` in class `ID3v23FrameBody`

    - #### toString

          public java.lang.String toString()

      gets a string representation of the MPEG location lookup table frame body showing all of the frame's fields and their values.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a string representation of the frame body.