This file is indexed.

/usr/include/CLAM/AudioFile.hxx is in libclam-dev 1.4.0-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
/*
 * Copyright (c) 2001-2004 MUSIC TECHNOLOGY GROUP (MTG)
 *                         UNIVERSITAT POMPEU FABRA
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

#ifndef __AUDIOFILE__
#define __AUDIOFILE__

#include "DataTypes.hxx"
#include "AudioFileFormats.hxx"
#include "AudioFileHeader.hxx"
#include "AudioTextDescriptors.hxx"
#include "Filename.hxx"

namespace CLAM
{
	namespace AudioCodecs
	{
		class Codec;       // forward declaration
		class Stream; // forward declaration
	}

	/** @ingroup AudioFileIO */
	class AudioFile
	{
	public:

		AudioFile();
		AudioFile( const AudioFile& );
		const AudioFile& operator=( const AudioFile& );
		virtual ~AudioFile();

		const Filename & GetLocation() const { return mLocation; }
		const AudioFileHeader & GetHeader() const { return mHeaderData; }
		const AudioTextDescriptors &   GetTextDescriptors() const { return mTextDescriptors; }
		AudioTextDescriptors & GetTextDescriptors() { return mTextDescriptors; }

		void SetTextDescriptors( const AudioTextDescriptors & descriptors ) { mTextDescriptors=descriptors; }

		EAudioFileCodec                GetCodec() const;

		bool                          IsValid() const;
		bool                          IsReadable() const;
		bool                          IsWritable() const;

		AudioCodecs::Stream*   GetStream();

	protected:
		//! Usually the header is set into the file using CreateNew or OpenExistig (public) methods 
		bool SetHeader( const AudioFileHeader& );
		void ResolveCodec();

		void ActivateCodec();
		void ResetHeaderData();

		Filename mLocation;
		EAudioFileCodec        mCodec;
	private:
		AudioCodecs::Codec*   mActiveCodec;
		AudioFileHeader       mHeaderData;
		AudioTextDescriptors  mTextDescriptors;

	};

	class AudioFileSource : public AudioFile
	{
	public:
		void OpenExisting(const std::string &location);
	};

	class AudioFileTarget : public AudioFile
	{
	public:
		bool CreateNew(const std::string &location,
				const AudioFileHeader &header);
	};


}




#endif // AudioFile.hxx