QTfrontend/util/LibavInteraction.h
author nemo
Mon, 08 Dec 2014 10:14:47 -0500
changeset 10635 8e8b320eefad
parent 10108 c68cf030eded
child 11046 47a8c19ecb60
permissions -rw-r--r--
nil out CurrentHedgehog in FreeModule, add a test for nil'd CurrentHedgehog in DelCI since I'd still like to use DeleteGear for the other stuff it does. Move some variable initialiasations in AI Misc to hopefully avoid some uninit val errors.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7897
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     1
/*
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     2
 * Hedgewars, a free turn based strategy game
9998
736015b847e3 update copyright to 2014
sheepluva
parents: 9429
diff changeset
     3
 * Copyright (c) 2004-2014 Andrey Korotaev <unC0Rr@gmail.com>
7897
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     4
 *
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     8
 *
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    12
 * GNU General Public License for more details.
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    13
 *
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
10108
c68cf030eded update FSF address. note: two sdl include files (by Sam Lantinga) still have the old FSF address in their copyright - but I ain't gonna touch their copyright headers
sheepluva
parents: 9998
diff changeset
    16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
7897
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    17
 */
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    18
9429
7a97a554ac80 libavinteraction: fix typo and and compiling with modern libav
koda
parents: 9080
diff changeset
    19
#ifndef LIBAV_INTERACTION
7a97a554ac80 libavinteraction: fix typo and and compiling with modern libav
koda
parents: 9080
diff changeset
    20
#define LIBAV_INTERACTION
7897
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    21
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    22
#include <QComboBox>
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    23
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    24
/**
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    25
 * @brief Class for interacting with ffmpeg/libav libraries
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    26
 *
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    27
 * @see <a href="http://en.wikipedia.org/wiki/Singleton_pattern">singleton pattern</a>
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    28
 */
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    29
class LibavInteraction : public QObject
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    30
{
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    31
    Q_OBJECT;
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    32
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    33
    LibavInteraction();
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    34
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    35
public:
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    36
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    37
    static LibavInteraction & instance();
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    38
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    39
    // fill combo box with known file formats
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    40
    void fillFormats(QComboBox * pFormats);
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    41
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    42
    // fill combo boxes with known codecs for given formats
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    43
    void fillCodecs(const QString & format, QComboBox * pVCodecs, QComboBox * pACodecs);
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    44
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    45
    QString getExtension(const QString & format);
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    46
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    47
    // get information about file (duration, resolution etc) in multiline string
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    48
    QString getFileInfo(const QString & filepath);
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    49
};
5e7c0810f365 libav name refactor
koda
parents:
diff changeset
    50
9429
7a97a554ac80 libavinteraction: fix typo and and compiling with modern libav
koda
parents: 9080
diff changeset
    51
#endif // LIBAV_INTERACTION