This file is indexed.

/usr/include/SndObj/SndAiff.h is in libsndobj-dev 2.6.6.1-5.

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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
 
////////////////////////////////////////////////////////////////////////
// This file is part of the SndObj library
//
// 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 
//
// Copyright (c)Victor Lazzarini, 1997-2004
// See License.txt for a disclaimer of all warranties
// and licensing information

//************************************************************//
//  SndAiff.h: interface of the SndAiff abstract base class.  //
//                                                            //
//                                                            //
//                                                            //
//************************************************************//

#ifndef _SNDAIFF_H
#define _SNDAIFF_H

#include "SndFIO.h"

const char     FORM_ID[4] = {'F','O','R','M'};
const char     COMM_ID[4] = {'C','O','M','M'};
const char     MARK_ID[4] = {'M','A','R','K'};
const char     INST_ID[4] = {'I','N','S','T'};
const char     SSND_ID[4] = {'S','S','N','D'};
const char     FORM_TYPE[4] = {'A','I','F','F'};


typedef unsigned long ID;            // chunk ID
typedef short MrkrID;       // Marker ID

struct CkHdr{
  ID	ckID;
  long ckSize;
};

struct FormHdr{
  CkHdr	ckHdr;
  ID	formType;
};

struct CommChunk1{
  CkHdr	ckHdr;                   // CommonChunk in 2 parts to avoid 
  short	numChannels;             // this short rounded up to long 
};

struct CommChunk2{
  long	numSampleFrames;         // ... to accomodate this long  
  short	sampleSize;
  char    sampleRate[10];          // 80-bit extended value     
};


struct Loop{
  short   playMode;
  MrkrID  beginLoop;
  MrkrID  endLoop;
};

struct InstrChunk{
  CkHdr	ckHdr;
  char	baseNote;
  char	detune;
  char	lowNote;
  char	highNote;
  char	lowVelocity;
  char	highVelocity;
  short	gain;
  Loop	sustainLoop;
  Loop	releaseLoop;
};



struct SoundDataHdr{
  CkHdr	ckHdr;
  long	offset;
  long	blockSize;
};


struct aiff_head{
  ID	ckID1;              // 'FORM'	
  long ckSize1;          
  ID	formType;           // 'AIFF'
  ID	ckID2;              // 'COMM'
  long ckSize2;
  short nchns;
  long numSampleFrames;           
  short size;
  long  rate;         
};



const int sizFormHdr = sizeof(FormHdr);
const int sizCommChunk1 = sizeof(CkHdr) + sizeof(short);  
const int sizCommChunk2 = sizeof(CommChunk2);
const int sizSoundDataHdr = sizeof(SoundDataHdr);
const int aiffhdrsiz = sizeof(FormHdr)
     + sizeof(CkHdr) + sizeof(short)
     + sizeof(CommChunk2)
     + sizeof(SoundDataHdr);

     const double  onept = 1.021975;     // A440 tuning factor 
     const double  log10d20 = 0.11512925;  // for db to ampfac   

     const unsigned long ULPOW2TO31	= ((unsigned long)0x80000000L);
     const double DPOW2TO31	= ((double)2147483648.0);	/* 2^31 */

     class SndAiff : public SndFIO {

     protected:


       FormHdr	     m_form;
       CommChunk1   m_comm1;   // CommonChunk split    
       CommChunk2   m_comm2;   // to avoid xtra space 
       SoundDataHdr m_ssnd;
       InstrChunk   m_instr;

       aiff_head   m_header;
       short m_framesize;
       short ReadHeader();
       aiff_head PutHeader();
       aiff_head GetHeader(){ return m_header; }

       double ieee_80_to_double(unsigned char *p);
       void   double_to_ieee_80(double val, unsigned char *p);  
       int is_aiff_form(long firstlong){ // test a form           
	 return (firstlong == *(long *)FORM_ID);
       }
       bool m_isaiff;
        
     public:      
       bool IsAiff(){ return m_isaiff; }    
       SndAiff(char* name, short mode, short channels=1, short bits=16,
	       SndObj** inputlist=0, float spos= 0.f, int vecsize = DEF_VECSIZE, float sr = DEF_SR);
       ~SndAiff();
       short Read();
       short Write();
       char* ErrorMessage();
     };

#endif