This file is indexed.

/usr/include/bse/gslwavechunk.h is in libbse-dev 0.7.4-4.

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
/* GSL - Generic Sound Layer
 * Copyright (C) 2001-2003 Tim Janik
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * A copy of the GNU Lesser General Public License should ship along
 * with this library; if not, see http://www.gnu.org/copyleft/.
 */
#ifndef __GSL_WAVE_CHUNK_H__
#define __GSL_WAVE_CHUNK_H__

#include <bse/gsldefs.h>
#include <bse/gsldatacache.h>
#include <bse/gsldatahandle.h>

G_BEGIN_DECLS

/* --- typedefs & structures --- */
typedef enum /*< skip >*/
{
  GSL_WAVE_LOOP_NONE,
  GSL_WAVE_LOOP_JUMP,
  GSL_WAVE_LOOP_PINGPONG
} GslWaveLoopType;
typedef struct
{
  GslLong first, last, length;
  gfloat *mem;
} GslWaveChunkMem;
struct _GslWaveChunk
{
  /* wave chunk data residency */
  GslDataCache   *dcache;
  GslLong	  length;	/* number of per-channel-values * n-channels */
  
  /* chunk specific parameters */
  gint		  n_channels;
  GslLong	  n_pad_values;	/* guaranteed pad values around blocks */
  GslLong	  wave_length;	/* start + loop duration + end (single channel) */
  
  /* flags */
  guint		  pploop_ends_backwards : 1;
  guint		  mini_loop : 1;
  
  /* loop spec */
  GslWaveLoopType loop_type;
  GslLong	  loop_first;
  GslLong	  loop_last;
  guint		  loop_count;
  
  /* preformatted blocks */
  GslWaveChunkMem head;
  GslWaveChunkMem enter;
  GslWaveChunkMem wrap;
  GslWaveChunkMem ppwrap;
  GslWaveChunkMem leave;
  GslWaveChunkMem tail;
  GslLong	  leave_end_norm;
  GslLong	  tail_start_norm;
  
  GslWaveLoopType requested_loop_type;
  GslLong         requested_loop_first;
  GslLong         requested_loop_last;
  guint           requested_loop_count;
  guint           ref_count;
  guint           open_count;
  /* cached data handle setup */
  gfloat         mix_freq;          /* recorded with mix_freq */
  gfloat         osc_freq;          /* while oscillating at osc_freq */
  gdouble        volume_adjust;     /* cache of dhandle->xinfo["volume"], only valid when opened */
  gdouble        fine_tune_factor;  /* cached factor from dhandle->xinfo["fine-tune"], valid when opened */
};
struct _GslWaveChunkBlock
{
  /* requisition (in) */
  gint		play_dir;	/* usually +1 */
  GslLong	offset;		/* requested offset into wave */
  /* result (out) */
  GslLong	length;		/* resulting signed? length of block in # values */
  gboolean	is_silent;	/* sample end reached, values are 0 */
  gint		dirstride;	/* >0 => increment, <0 => decrement */
  gfloat       *start;		/* first data value location */
  gfloat       *end;		/* last data value location +1 */
  GslLong	next_offset;	/* offset of next adjunct block */
  /*< private >*/
  gpointer	node;
};


/* --- prototypes --- */
void		gsl_wave_chunk_use_block	(GslWaveChunk		*wave_chunk,
						 GslWaveChunkBlock	*block);
void		gsl_wave_chunk_unuse_block	(GslWaveChunk		*wave_chunk,
						 GslWaveChunkBlock	*block);
GslWaveChunk*	gsl_wave_chunk_new		(GslDataCache		*dcache,
                                                 gfloat                  mix_freq,
                                                 gfloat                  osc_freq,
                                                 GslWaveLoopType	 loop_type,
						 GslLong		 loop_first,
						 GslLong		 loop_end,
						 guint			 loop_count);
GslWaveChunk*	gsl_wave_chunk_ref		(GslWaveChunk		*wchunk);
void		gsl_wave_chunk_unref		(GslWaveChunk		*wchunk);
BseErrorType	gsl_wave_chunk_open		(GslWaveChunk		*wchunk);
void		gsl_wave_chunk_close		(GslWaveChunk		*wchunk);
void		gsl_wave_chunk_debug_block	(GslWaveChunk		*wchunk,
						 GslLong		 offset,
						 GslLong		 length,
						 gfloat			*block);
GslWaveChunk*	_gsl_wave_chunk_copy		(GslWaveChunk		*wchunk);
const gchar*	gsl_wave_loop_type_to_string	(GslWaveLoopType	 wave_loop);
GslWaveLoopType	gsl_wave_loop_type_from_string	(const gchar		*string);


G_END_DECLS

#endif /* __GSL_WAVE_CHUNK_H__ */