Class: Id3Taginator::Frames::Encryption::AudioEncryptionFrame
- Inherits:
-
Id3v2Frame
- Object
- Id3v2Frame
- Id3Taginator::Frames::Encryption::AudioEncryptionFrame
- Includes:
- HasId
- Defined in:
- lib/id3taginator/frames/encryption/aenc_audio_encryption.rb
Constant Summary
Constants inherited from Id3v2Frame
Id3v2Frame::HEADER_SIZE_V_2, Id3v2Frame::HEADER_SIZE_V_3_4
Constants included from Extensions::Encodable
Extensions::Encodable::ISO8859_1, Extensions::Encodable::UNICODE_ZERO, Extensions::Encodable::UTF_16, Extensions::Encodable::UTF_16BE, Extensions::Encodable::UTF_8, Extensions::Encodable::ZERO
Instance Attribute Summary collapse
-
#encryption_info ⇒ Object
Returns the value of attribute encryption_info.
-
#owner_id ⇒ Object
Returns the value of attribute owner_id.
-
#preview_length ⇒ Object
Returns the value of attribute preview_length.
-
#preview_start ⇒ Object
Returns the value of attribute preview_start.
Attributes inherited from Id3v2Frame
Class Method Summary collapse
-
.build_frame(owner_id, preview_start, preview_length, encryption_info, options = nil, id3_version: 3) ⇒ Id3v2Frame
builds the audio encryption frame.
Instance Method Summary collapse
Methods included from HasId
#frame_info, included, #supported?
Methods inherited from Id3v2Frame
build_id3_flags, build_v2_frame, build_v3_frame, build_v4_frame, #compression?, #encryption?, #file_alter_preservation?, #frame_size, #group_identity?, #initialize, #re_calc_payload_size, #read_only?, #tag_alter_preservation?, #to_bytes
Methods included from Extensions::ArgumentCheck
#argument_between_num, #argument_boolean, #argument_exactly_chars, #argument_less_than_chars, #argument_more_than_chars, #argument_not_empty, #argument_not_nil, #argument_sym, included
Methods included from Extensions::Encodable
#decode, #decode_using_encoding_byte, #default_encoding_destination_byte, #encode, #encode_and_add_encoding_byte, #encode_string, #find_encoding, #find_encoding_byte, included, #merge, #pad_left, #pad_right, #read_stream_until, #remove_trailing_zeros, #zero_byte
Constructor Details
This class inherits a constructor from Id3Taginator::Frames::Id3v2Frame
Instance Attribute Details
#encryption_info ⇒ Object
Returns the value of attribute encryption_info.
11 12 13 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 11 def encryption_info @encryption_info end |
#owner_id ⇒ Object
Returns the value of attribute owner_id.
11 12 13 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 11 def owner_id @owner_id end |
#preview_length ⇒ Object
Returns the value of attribute preview_length.
11 12 13 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 11 def preview_length @preview_length end |
#preview_start ⇒ Object
Returns the value of attribute preview_start.
11 12 13 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 11 def preview_start @preview_start end |
Class Method Details
.build_frame(owner_id, preview_start, preview_length, encryption_info, options = nil, id3_version: 3) ⇒ Id3v2Frame
builds the audio encryption frame
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 23 def self.build_frame(owner_id, preview_start, preview_length, encryption_info, = nil, id3_version: 3) supported?('AENC', id3_version, ) argument_not_nil(owner_id, 'owner_id') argument_not_nil(preview_start, 'preview_start') argument_not_nil(preview_length, 'preview_length') argument_not_nil(encryption_info, 'encryption_info') frame = new(frame_id(id3_version, ), 0, build_id3_flags(id3_version), '') frame.owner_id = owner_id frame.preview_start = preview_start frame.preview_length = preview_length frame.encryption_info = encryption_info frame end |
Instance Method Details
#content_to_bytes ⇒ Object
47 48 49 50 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 47 def content_to_bytes merge(@owner_id, "\x00", Util::MathUtil.from_number(@preview_start, 4), Util::MathUtil.from_number(@preview_length, 4), @encryption_info) end |
#process_content(content) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/id3taginator/frames/encryption/aenc_audio_encryption.rb', line 39 def process_content(content) stream = StringIO.new(content) @owner_id = read_stream_until(stream, ZERO) @preview_start = Util::MathUtil.to_number(stream.read(2)&.bytes) @preview_length = Util::MathUtil.to_number(stream.read(2)&.bytes) @encryption_info = stream.read end |