com.beaglebuddy.id3.v24.frame_body

## Class ID3v24FrameBodySeek

- java.lang.Object
- - com.beaglebuddy.util.Utility
  - - com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBodyUtility
    - - com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBody
      - - com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBodySeek

-     public class ID3v24FrameBodySeek
      extends ID3v24FrameBody

  A seek frame body indicates where other tags in an mp3 file/stream can be found.

  Seek Frame Body Fields
  | Field | Description
  --- | --- | ---
  1. | offset to next tag | indicates the number of bytes from the end of this tag to the beginning of the next tag.

  There may only be one seek frame in an ID3v2.4 `tag`.

  See Also:
    `ID3v24Frame`, ID3 tag version 2.4.0 standard, wikipedia history of ID3 tags

- - ### Field Summary

    - ### Fields inherited from class com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBody

      `buffer, dirty, frameType`

    - ### Fields inherited from class com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBodyUtility

      `nextNullTerminatorIndex, nullTerminatorIndex`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getOffsetToNextTag()` gets the offset to the next tag.
    `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.
    `void` | `setOffsetToNextTag(int offsetToNextTag)` sets the offset to the next tag.
    `java.lang.String` | `toString()` gets a string representation of the seek frame body.

    - ### Methods inherited from class com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBody

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

    - ### Methods inherited from class com.beaglebuddy.id3.v24.frame_body.ID3v24FrameBodyUtility

      `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

    - #### ID3v24FrameBodySeek

          public ID3v24FrameBodySeek()

      This default constructor is called when creating a new frame. The default values used are:
      - offset to next tag of 0

    - #### ID3v24FrameBodySeek

          public ID3v24FrameBodySeek(int offsetToNextTag)

      This constructor is called when creating a new frame.
      Parameters:
        `offsetToNextTag` - the number of bytes from the end of this tag to the beginning of the next tag.

    - #### ID3v24FrameBodySeek

          public ID3v24FrameBodySeek(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 a seek 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 `ID3v24FrameBody`
      Throws:
        `java.lang.IllegalArgumentException` - if an invalid value is detected while parsing the frame body's raw bytes.

    - #### getOffsetToNextTag

          public int getOffsetToNextTag()

      gets the offset to the next tag.
      Returns:
        the number of bytes from the end of this tag to the beginning of the next tag.
      See Also:
        `setOffsetToNextTag(int)`

    - #### setOffsetToNextTag

          public void setOffsetToNextTag(int offsetToNextTag)

      sets the offset to the next tag.
      Parameters:
        `offsetToNextTag` - the number of bytes from the end of this tag to the beginning of the next tag.
      Throws:
        `java.lang.IllegalArgumentException` - if the offset is < 0.
      See Also:
        `getOffsetToNextTag()`

    - #### 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 `ID3v24FrameBody`

    - #### toString

          public java.lang.String toString()

      gets a string representation of the seek frame body.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a string representation of the frame body.