This file is indexed.

/usr/include/tse3/util/Phrase.h is in libtse3-dev 0.3.1-4.3ubuntu1.

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
/*
 * @(#)util/Phrase.h 3.00 2 April 2000
 *
 * Copyright (c) 2000 Pete Goodliffe (pete@cthree.org)
 *
 * This file is part of TSE3 - the Trax Sequencer Engine version 3.00.
 *
 * This library is modifiable/redistributable under the terms of the GNU
 * General Public License.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; see the file COPYING. If not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *
 */

#ifndef TSE3_UTIL_PHRASE_H
#define TSE3_UTIL_PHRASE_H

#include <string>
#include <vector>

namespace TSE3
{
    class Phrase;
    class PhraseEdit;
    class Song;
    class Track;
    class Playable;
    class Part;

    namespace Util
    {
        /**
         * Merge together the contents of the specified @ref TSE3::Playable
         * objects and put the result in the given @ref PhraseEdit object.
         *
         * You can use this, for example, to add together two @ref TSE3::Phrase
         * objects, or to merge together several @ref TSE3::Tracks.
         *
         * The resultant @ref PhraseEdit output is tidy.
         *
         * @param  play A vector containing each @ref TSE3::Playable to merge
         * @param  pe @ref TSE3::PhraseEdit for result
         */
        void Phrase_Merge(std::vector<TSE3::Playable*> &play,
                          TSE3::PhraseEdit *pe);

        /**
         * Add two @ref TSE3::Phrases together and put the result in the given
         * @ref TSE3::PhraseEdit object.
         *
         * @param p1 First @ref TSE3::Phrase
         * @param p2 Second @ref TSE3::Phrase
         * @param pe @ref TSE3::PhraseEdit for result of @ref Phrase addition
         */
        void Phrase_Add(TSE3::Phrase *p1, TSE3::Phrase *p2,
                        TSE3::PhraseEdit *pe);

        /**
         * Subtract two @ref TSE3::Phrases and put the result in the given
         * @ref TSE3::PhraseEdit object.
         *
         * @param p1 First @ref TSE3::Phrase
         * @param p2 Second @ref TSE3::Phrase
         * @param pe @ref TSE3::PhraseEdit for result of
         *           @ref TSE3::Phrase subtraction: result is p1 - p2.
         */
        void Phrase_Subtract(TSE3::Phrase *p1, TSE3::Phrase *p2,
                             TSE3::PhraseEdit *pe);

        /**
         * Arpeggiate @p p1 with the note pattern in @p p2.
         *
         * @param p1 First @ref TSE3::Phrase
         * @param p2 Second @ref TSE3::Phrase
         * @param pe @ref TSE3::PhraseEdit containg p1 arpeggiated with p2.
         */
        void Phrase_Arpeggiate(TSE3::Phrase *p1, TSE3::Phrase *p2,
                               TSE3::PhraseEdit *pe);

        /**
         * Explode the given @ref TSE3::Phrase into one @ref TSE3::Phrase per
         * MIDI channel.
         *
         * The new @ref TSE3::Phrase objects are named <baseName>_1 .. _16.
         *
         * @param p        @ref TSE3::Phrase to explode
         * @param baseName Base string the new @ref TSE3::Phrase objects' names
         *                 are based on
         * @param channels Bitfield for which channels to explode
         * @param song     If 0, ignored; otherwise new @ref TSE3::Part objects
         *                 are placed into the Song's Tracks using each new
         *                 @ref TSE3::Phrase
         */
        void Phrase_Explode(TSE3::Phrase *p, std::string baseName,
                            int channels, bool insertParts,
                            TSE3::Song *song);
    }
}

#endif