⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metadata.cpp

📁 tcpmp.src.0.72RC1 优秀的多媒体播放器TCPMP的源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		FLAC__uint64 CueSheet::get_lead_in() const		{			FLAC__ASSERT(is_valid());			return object_->data.cue_sheet.lead_in;		}		bool CueSheet::get_is_cd() const		{			FLAC__ASSERT(is_valid());			return object_->data.cue_sheet.is_cd? true : false;		}		unsigned CueSheet::get_num_tracks() const		{			FLAC__ASSERT(is_valid());			return object_->data.cue_sheet.num_tracks;		}		CueSheet::Track CueSheet::get_track(unsigned i) const		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(i < object_->data.cue_sheet.num_tracks);			return Track(object_->data.cue_sheet.tracks + i);		}		void CueSheet::set_media_catalog_number(const char value[128])		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(0 != value);			memcpy(object_->data.cue_sheet.media_catalog_number, value, 128);			object_->data.cue_sheet.media_catalog_number[128] = '\0';		}		void CueSheet::set_lead_in(FLAC__uint64 value)		{			FLAC__ASSERT(is_valid());			object_->data.cue_sheet.lead_in = value;		}		void CueSheet::set_is_cd(bool value)		{			FLAC__ASSERT(is_valid());			object_->data.cue_sheet.is_cd = value;		}		void CueSheet::set_index(unsigned track_num, unsigned index_num, const ::FLAC__StreamMetadata_CueSheet_Index &index)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(track_num < object_->data.cue_sheet.num_tracks);			FLAC__ASSERT(index_num < object_->data.cue_sheet.tracks[track_num].num_indices);			object_->data.cue_sheet.tracks[track_num].indices[index_num] = index;		}		bool CueSheet::insert_index(unsigned track_num, unsigned index_num, const ::FLAC__StreamMetadata_CueSheet_Index &index)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(track_num < object_->data.cue_sheet.num_tracks);			FLAC__ASSERT(index_num <= object_->data.cue_sheet.tracks[track_num].num_indices);			return (bool)::FLAC__metadata_object_cuesheet_track_insert_index(object_, track_num, index_num, index);		}		bool CueSheet::delete_index(unsigned track_num, unsigned index_num)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(track_num < object_->data.cue_sheet.num_tracks);			FLAC__ASSERT(index_num < object_->data.cue_sheet.tracks[track_num].num_indices);			return (bool)::FLAC__metadata_object_cuesheet_track_delete_index(object_, track_num, index_num);		}		bool CueSheet::set_track(unsigned i, const CueSheet::Track &track)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(i < object_->data.cue_sheet.num_tracks);			// We can safely const_cast since copy=true			return (bool)::FLAC__metadata_object_cuesheet_set_track(object_, i, const_cast< ::FLAC__StreamMetadata_CueSheet_Track*>(track.get_track()), /*copy=*/true);		}		bool CueSheet::insert_track(unsigned i, const CueSheet::Track &track)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(i <= object_->data.cue_sheet.num_tracks);			// We can safely const_cast since copy=true			return (bool)::FLAC__metadata_object_cuesheet_insert_track(object_, i, const_cast< ::FLAC__StreamMetadata_CueSheet_Track*>(track.get_track()), /*copy=*/true);		}		bool CueSheet::delete_track(unsigned i)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(i < object_->data.cue_sheet.num_tracks);			return (bool)::FLAC__metadata_object_cuesheet_delete_track(object_, i);		}		bool CueSheet::is_legal(bool check_cd_da_subset, const char **violation) const		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_object_cuesheet_is_legal(object_, check_cd_da_subset, violation);		}		//		// Unknown		//		Unknown::Unknown():		Prototype(FLAC__metadata_object_new(FLAC__METADATA_TYPE_APPLICATION), /*copy=*/false)		{ }		Unknown::~Unknown()		{ }		const FLAC__byte *Unknown::get_data() const		{			FLAC__ASSERT(is_valid());			return object_->data.application.data;		}		bool Unknown::set_data(const FLAC__byte *data, unsigned length)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_object_application_set_data(object_, (FLAC__byte*)data, length, true);		}		bool Unknown::set_data(FLAC__byte *data, unsigned length, bool copy)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_object_application_set_data(object_, data, length, copy);		}		// ============================================================		//		//  Level 0		//		// ============================================================		FLACPP_API bool get_streaminfo(const char *filename, StreamInfo &streaminfo)		{			FLAC__ASSERT(0 != filename);			::FLAC__StreamMetadata object;			if(::FLAC__metadata_get_streaminfo(filename, &object)) {				streaminfo = object;				return true;			}			else				return false;		}		FLACPP_API bool get_tags(const char *filename, VorbisComment *&tags)		{			FLAC__ASSERT(0 != filename);			::FLAC__StreamMetadata *object;			tags = 0;			if(::FLAC__metadata_get_tags(filename, &object)) {				tags = new VorbisComment(object, /*copy=*/false);				return true;			}			else				return false;		}		FLACPP_API bool get_tags(const char *filename, VorbisComment &tags)		{			FLAC__ASSERT(0 != filename);			::FLAC__StreamMetadata *object;			if(::FLAC__metadata_get_tags(filename, &object)) {				tags.assign(object, /*copy=*/false);				return true;			}			else				return false;		}		// ============================================================		//		//  Level 1		//		// ============================================================		SimpleIterator::SimpleIterator():		iterator_(::FLAC__metadata_simple_iterator_new())		{ }		SimpleIterator::~SimpleIterator()		{			clear();		}		void SimpleIterator::clear()		{			if(0 != iterator_)				FLAC__metadata_simple_iterator_delete(iterator_);			iterator_ = 0;		}		bool SimpleIterator::init(const char *filename, bool read_only, bool preserve_file_stats)		{			FLAC__ASSERT(0 != filename);			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_init(iterator_, filename, read_only, preserve_file_stats);		}		bool SimpleIterator::is_valid() const		{			return 0 != iterator_;		}		SimpleIterator::Status SimpleIterator::status()		{			FLAC__ASSERT(is_valid());			return Status(::FLAC__metadata_simple_iterator_status(iterator_));		}		bool SimpleIterator::is_writable() const		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_is_writable(iterator_);		}		bool SimpleIterator::next()		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_next(iterator_);		}		bool SimpleIterator::prev()		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_prev(iterator_);		}		::FLAC__MetadataType SimpleIterator::get_block_type() const		{			FLAC__ASSERT(is_valid());			return ::FLAC__metadata_simple_iterator_get_block_type(iterator_);		}		Prototype *SimpleIterator::get_block()		{			FLAC__ASSERT(is_valid());			return local::construct_block(::FLAC__metadata_simple_iterator_get_block(iterator_));		}		bool SimpleIterator::set_block(Prototype *block, bool use_padding)		{			FLAC__ASSERT(0 != block);			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_set_block(iterator_, block->object_, use_padding);		}		bool SimpleIterator::insert_block_after(Prototype *block, bool use_padding)		{			FLAC__ASSERT(0 != block);			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_insert_block_after(iterator_, block->object_, use_padding);		}		bool SimpleIterator::delete_block(bool use_padding)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_simple_iterator_delete_block(iterator_, use_padding);		}		// ============================================================		//		//  Level 2		//		// ============================================================		Chain::Chain():		chain_(::FLAC__metadata_chain_new())		{ }		Chain::~Chain()		{			clear();		}		void Chain::clear()		{			if(0 != chain_)				FLAC__metadata_chain_delete(chain_);			chain_ = 0;		}		bool Chain::is_valid() const		{			return 0 != chain_;		}		Chain::Status Chain::status()		{			FLAC__ASSERT(is_valid());			return Status(::FLAC__metadata_chain_status(chain_));		}		bool Chain::read(const char *filename)		{			FLAC__ASSERT(0 != filename);			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_read(chain_, filename);		}		bool Chain::read(FLAC__IOHandle handle, ::FLAC__IOCallbacks callbacks)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_read_with_callbacks(chain_, handle, callbacks);		}		bool Chain::check_if_tempfile_needed(bool use_padding)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_check_if_tempfile_needed(chain_, use_padding);		}		bool Chain::write(bool use_padding, bool preserve_file_stats)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_write(chain_, use_padding, preserve_file_stats);		}		bool Chain::write(bool use_padding, ::FLAC__IOHandle handle, ::FLAC__IOCallbacks callbacks)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_write_with_callbacks(chain_, use_padding, handle, callbacks);		}		bool Chain::write(bool use_padding, ::FLAC__IOHandle handle, ::FLAC__IOCallbacks callbacks, ::FLAC__IOHandle temp_handle, ::FLAC__IOCallbacks temp_callbacks)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_chain_write_with_callbacks_and_tempfile(chain_, use_padding, handle, callbacks, temp_handle, temp_callbacks);		}		void Chain::merge_padding()		{			FLAC__ASSERT(is_valid());			::FLAC__metadata_chain_merge_padding(chain_);		}		void Chain::sort_padding()		{			FLAC__ASSERT(is_valid());			::FLAC__metadata_chain_sort_padding(chain_);		}		Iterator::Iterator():		iterator_(::FLAC__metadata_iterator_new())		{ }		Iterator::~Iterator()		{			clear();		}		void Iterator::clear()		{			if(0 != iterator_)				FLAC__metadata_iterator_delete(iterator_);			iterator_ = 0;		}		bool Iterator::is_valid() const		{			return 0 != iterator_;		}		void Iterator::init(Chain &chain)		{			FLAC__ASSERT(is_valid());			FLAC__ASSERT(chain.is_valid());			::FLAC__metadata_iterator_init(iterator_, chain.chain_);		}		bool Iterator::next()		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_iterator_next(iterator_);		}		bool Iterator::prev()		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_iterator_prev(iterator_);		}		::FLAC__MetadataType Iterator::get_block_type() const		{			FLAC__ASSERT(is_valid());			return ::FLAC__metadata_iterator_get_block_type(iterator_);		}		Prototype *Iterator::get_block()		{			FLAC__ASSERT(is_valid());			Prototype *block = local::construct_block(::FLAC__metadata_iterator_get_block(iterator_));			if(0 != block)				block->set_reference(true);			return block;		}		bool Iterator::set_block(Prototype *block)		{			FLAC__ASSERT(0 != block);			FLAC__ASSERT(is_valid());			bool ret = (bool)::FLAC__metadata_iterator_set_block(iterator_, block->object_);			if(ret) {				block->set_reference(true);				delete block;			}			return ret;		}		bool Iterator::delete_block(bool replace_with_padding)		{			FLAC__ASSERT(is_valid());			return (bool)::FLAC__metadata_iterator_delete_block(iterator_, replace_with_padding);		}		bool Iterator::insert_block_before(Prototype *block)		{			FLAC__ASSERT(0 != block);			FLAC__ASSERT(is_valid());			bool ret = (bool)::FLAC__metadata_iterator_insert_block_before(iterator_, block->object_);			if(ret) {				block->set_reference(true);				delete block;			}			return ret;		}		bool Iterator::insert_block_after(Prototype *block)		{			FLAC__ASSERT(0 != block);			FLAC__ASSERT(is_valid());			bool ret = (bool)::FLAC__metadata_iterator_insert_block_after(iterator_, block->object_);			if(ret) {				block->set_reference(true);				delete block;			}			return ret;		}	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -