This file is indexed.

/usr/include/flatzebra/SoundMixer.h is in libflatzebra-dev 0.1.6-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
/*  $Id: SoundMixer.h,v 1.5 2010/06/05 20:50:42 sarrazip Exp $
    SoundMixer.h - Sound mixer based on the SDL_mixer library

    flatzebra - Generic 2D Game Engine library
    Copyright (C) 2001, 2002, 2003 Pierre Sarrazin <http://sarrazip.com/>

    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., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
*/

#ifndef _H_SoundMixer
#define _H_SoundMixer

#include <SDL_mixer.h>

#include <string>


namespace flatzebra {


class SoundMixer
{
public:

    class Error
    {
    public:
        Error(const std::string &s) : errMsg(s) {}
        const std::string &what() const { return errMsg; }
    private:
        std::string errMsg;
    };

    SoundMixer(int numChannels = 8) throw(Error);
    /*  Initializes the SDL_mixer system at a rate of 11025 Hz, mono.
        'numChannels' must be the number of channels to be allocated.
        SDL must already have been initialized.
        If the SDL_mixer initialization fails, throws the error message
        as an exception.
        Only one instance of this class should be created.
    */

    ~SoundMixer();
    /*  Shuts down the SDL_mixer system.
    */


    class Chunk
    {
    public:

        Chunk();
        /*  Initializes an empty sound chunk.  Call init() after this.
        */

        Chunk(const std::string &wavFilename) throw(Error);
        /*  Calls init() with 'wavFilename' and it if returns a (non-empty)
            error message, throws it as an exception.
        */

        void init(const std::string &wavFilename) throw(Error);
        /*  Loads the WAV file whose name is given.
            If the load fails, throws the error message as an exception.
        */

        ~Chunk();
        /*  Frees the resources used by the chunk.
        */

    private:
        Mix_Chunk *sample;
        friend class SoundMixer;

        // Forbidden operations:
        Chunk(const Chunk &);
        Chunk &operator = (const Chunk &);
    };


    void playChunk(Chunk &theSound) throw(Error);
    /*  Schedules 'theSound' to be played now on a free unreserved channel.
        On failure, throws the error message as an exception.
    */


private:

    /*        Forbidden operations:
    */
    SoundMixer(const SoundMixer &x);
    SoundMixer &operator = (const SoundMixer &x);
};


}  // namespace flatzebra


#endif  /* _H_SoundMixer */