Add a simple echo example, which forwards audio from the mic to the speakers.
[qtgstreamer:qtgstreamer.git] / examples / echo / main.cpp
1 /*
2     Copyright (C) 2009  George Kiagiadakis <kiagiadakis.george@gmail.com>
3
4     This library is free software; you can redistribute it and/or modify
5     it under the terms of the GNU Lesser General Public License as published
6     by the Free Software Foundation; either version 2.1 of the License, or
7     (at your option) any later version.
8
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13
14     You should have received a copy of the GNU Lesser General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 #include "../../src/qgstpipeline.h"
18 #include "../../src/qgstelementfactory.h"
19 #include "../../src/qgstglobal.h"
20 #include <QtCore/QCoreApplication>
21 #include <QtCore/QFile>
22 #include <signal.h>
23
24 using namespace QtGstreamer;
25
26 static void sighandler(int code)
27 {
28     qDebug("SIGINT");
29     QCoreApplication::quit();
30 }
31
32 int main(int argc, char **argv)
33 {
34     QCoreApplication app(argc, argv);
35     qGstInit(&argc, &argv);
36
37     QGstPipeline pipeline;
38
39     QGstElement *src = QGstElementFactory::make("autoaudiosrc");
40     QGstElement *sink = QGstElementFactory::make("autoaudiosink");
41
42     pipeline << src << sink;
43     QGstElement::link(src, sink);
44
45     pipeline.setState(QGstElement::Playing);
46
47     signal(SIGINT, sighandler);
48     int result = app.exec();
49
50     pipeline.setState(QGstElement::Null);
51     return result;
52 }