This file is indexed.

/usr/include/qb/qbelement.h is in libqb6-dev 6.2.0-3.

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
/* Webcamoid, webcam capture application.
 * Copyright (C) 2011-2015  Gonzalo Exequiel Pedone
 *
 * Webcamoid 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 3 of the License, or
 * (at your option) any later version.
 *
 * Webcamoid 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 Webcamoid. If not, see <http://www.gnu.org/licenses/>.
 *
 * Email   : hipersayan DOT x AT gmail DOT com
 * Web-Site: http://github.com/hipersayanX/webcamoid
 */

#ifndef QBELEMENT_H
#define QBELEMENT_H

#include <QStringList>
#include <QQmlEngine>

#include "qbaudiopacket.h"
#include "qbvideopacket.h"

#define qbSend(packet) { \
    if (packet) \
        emit this->oStream(packet); \
    \
    return packet; \
}

class QbElement;
class QbElementPrivate;

typedef QSharedPointer<QbElement> QbElementPtr;

/// Plugin template.
class QbElement: public QObject
{
    Q_OBJECT
    Q_ENUMS(ElementState)
    Q_ENUMS(SearchPaths)
    Q_PROPERTY(QString pluginId
               READ pluginId)
    Q_PROPERTY(QbElement::ElementState state
               READ state
               WRITE setState
               RESET resetState
               NOTIFY stateChanged)

    public:
        enum ElementState
        {
            ElementStateNull,
            ElementStatePaused,
            ElementStatePlaying
        };

        enum SearchPaths
        {
            SearchPathsAll,
            SearchPathsDefaults,
            SearchPathsExtras
        };

        explicit QbElement(QObject *parent=NULL);
        virtual ~QbElement();

        Q_INVOKABLE QString pluginId() const;
        Q_INVOKABLE virtual QbElement::ElementState state() const;
        Q_INVOKABLE virtual QObject *controlInterface(QQmlEngine *engine,
                                                      const QString &controlId) const;

        Q_INVOKABLE virtual bool link(const QObject *dstElement,
                                      Qt::ConnectionType connectionType=Qt::AutoConnection) const;

        Q_INVOKABLE virtual bool link(const QbElementPtr &dstElement,
                                      Qt::ConnectionType connectionType=Qt::AutoConnection) const;

        Q_INVOKABLE virtual bool unlink(const QObject *dstElement) const;
        Q_INVOKABLE virtual bool unlink(const QbElementPtr &dstElement) const;

        Q_INVOKABLE static bool link(const QbElementPtr &srcElement,
                                     const QObject *dstElement,
                                     Qt::ConnectionType connectionType=Qt::AutoConnection);
        Q_INVOKABLE static bool link(const QbElementPtr &srcElement,
                                     const QbElementPtr &dstElement,
                                     Qt::ConnectionType connectionType=Qt::AutoConnection);
        Q_INVOKABLE static bool unlink(const QbElementPtr &srcElement,
                                       const QObject *dstElement);
        Q_INVOKABLE static bool unlink(const QbElementPtr &srcElement,
                                       const QbElementPtr &dstElement);
        Q_INVOKABLE static QbElementPtr create(const QString &pluginId,
                                               const QString &elementName="");
        Q_INVOKABLE static bool recursiveSearch();
        Q_INVOKABLE static void setRecursiveSearch(bool enable);
        Q_INVOKABLE static QStringList searchPaths(SearchPaths pathType=SearchPathsAll);
        Q_INVOKABLE static void addSearchPath(const QString &path);
        Q_INVOKABLE static void setSearchPaths(const QStringList &searchPaths);
        Q_INVOKABLE static void resetSearchPaths();
        Q_INVOKABLE static QStringList listPlugins(const QString &type="");
        Q_INVOKABLE static QStringList listPluginPaths(const QString &searchPath);
        Q_INVOKABLE static QStringList listPluginPaths();
        Q_INVOKABLE static QString pluginPath(const QString &pluginId);
        Q_INVOKABLE static QVariantMap pluginInfo(const QString &pluginId);
        Q_INVOKABLE static void clearCache();

    private:
        QbElementPrivate *d;

    protected:
        virtual void stateChange(QbElement::ElementState from, QbElement::ElementState to);

    signals:
        void stateChanged(QbElement::ElementState state);
        void oStream(const QbPacket &packet);

    public slots:
        virtual QbPacket iStream(const QbPacket &packet);
        virtual QbPacket iStream(const QbAudioPacket &packet);
        virtual QbPacket iStream(const QbVideoPacket &packet);
        virtual void setState(QbElement::ElementState state);
        virtual void resetState();
};

QDataStream &operator >>(QDataStream &istream, QbElement::ElementState &state);
QDataStream &operator <<(QDataStream &ostream, QbElement::ElementState state);
Q_DECLARE_METATYPE(QbElement::ElementState)

#endif // QBELEMENT_H