class TL_COMMENTS_ID3_FRAME

(source code)

Client examples: TAGLIB_TEST_SET

description

Comments id3 frame

note
	description: "Comments id3 frame"

	author: "Finnian Reilly"
	copyright: "Copyright (c) 2001-2022 Finnian Reilly"
	contact: "finnian at eiffel hyphen loop dot com"

	license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
	date: "2023-11-11 14:30:54 GMT (Saturday 11th November 2023)"
	revision: "11"

class
	TL_COMMENTS_ID3_FRAME

inherit
	TL_COMMENTS

	TL_DESCRIBEABLE_ID3_TAG_FRAME

	TL_COMMENTS_ID3_FRAME_CPP_API
		export
			{TL_ID3_FRAME_ITERATION_CURSOR} cpp_conforms
		end

	TL_SHARED_BYTE_VECTOR

	TL_SHARED_ONCE_STRING

	EL_SHARED_STRING_8_CURSOR

create
	make, make_from_pointer

feature {NONE} -- Initialization

	make (a_description, a_text: READABLE_STRING_GENERAL; a_language: STRING; a_encoding: NATURAL_8)
		do
			make_from_pointer (cpp_new (a_encoding))
			set_language (a_language)
			set_description (a_description)
			set_text (a_text)
		end

feature -- Access

	language: STRING
		local
			c: EL_CHARACTER_8_ROUTINES
		do
			cpp_get_language (self_ptr, Once_byte_vector.self_ptr)
			-- Filter anything that is not in set 'a' .. 'z', 'A' .. 'Z'
			-- (weird characters found in test files)
			if attached Once_byte_vector.to_string_8 as tmp_str then
				Result := cursor_8 (tmp_str).filtered (agent c.is_a_to_z_caseless)
			end
		end

feature -- Status query

	is_default: BOOLEAN
		do
		end

feature -- Element change

	set_language (a_language: like language)
		do
			Once_byte_vector.set_data_from_string (a_language)
			cpp_set_language (self_ptr, Once_byte_vector.self_ptr)
		ensure
			set: language ~ a_language
		end

end