diff --git a/src/QGst/CMakeLists.txt b/src/QGst/CMakeLists.txt
index 0bcae17..ac8cd3b 100644
--- a/src/QGst/CMakeLists.txt
+++ b/src/QGst/CMakeLists.txt
@@ -30,6 +30,7 @@ set(QtGStreamer_SRCS
     clocktime.cpp
     taglist.cpp
     bufferlist.cpp
+    tuner.cpp
     ${CMAKE_CURRENT_BINARY_DIR}/gen.cpp
 )
 
@@ -80,6 +81,7 @@ set(QtGStreamer_INSTALLED_HEADERS
     clocktime.h         ClockTime
     taglist.h           TagList
     bufferlist.h        BufferList
+    tuner.h             Tuner
 
     Ui/global.h
     Ui/videowidget.h    Ui/VideoWidget
@@ -100,6 +102,7 @@ set(QtGStreamer_CODEGEN_INCLUDES
     -Igst/interfaces/colorbalance.h
     -Igst/interfaces/videoorientation.h
     -Igst/interfaces/propertyprobe.h
+    -Igst/interfaces/tuner.h
     -Igst/app/gstappsrc.h
     -IQGlib/Quark
 )
diff --git a/src/QGst/Tuner b/src/QGst/Tuner
new file mode 100755
index 0000000..0b5c308
--- /dev/null
+++ b/src/QGst/Tuner
@@ -0,0 +1 @@
+#include "tuner.h" 
diff --git a/src/QGst/global.h b/src/QGst/global.h
index ae64cfd..9d12d11 100644
--- a/src/QGst/global.h
+++ b/src/QGst/global.h
@@ -127,6 +127,9 @@ QGST_WRAPPER_REFPOINTER_DECLARATION(StepEvent)
 QGST_WRAPPER_DECLARATION(StreamVolume)
 QGST_WRAPPER_GSTCLASS_DECLARATION(Structure)
 QGST_WRAPPER_DIFFERENT_GSTCLASS_DECLARATION(TagList,Structure)
+QGST_WRAPPER_DECLARATION(Tuner)
+QGST_WRAPPER_DECLARATION(TunerChannel)
+QGST_WRAPPER_DECLARATION(TunerNorm)
 
 namespace QGst {
     class Structure;
diff --git a/src/QGst/tuner.cpp b/src/QGst/tuner.cpp
new file mode 100755
index 0000000..4ed9fa1
--- /dev/null
+++ b/src/QGst/tuner.cpp
@@ -0,0 +1,140 @@
+/*
+    Copyright (C) 2011 Lukas Schrangl <schrangl@gmx.net>
+
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation; either version 2.1 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 Lesser General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "tuner.h"
+#include <gst/interfaces/tuner.h>
+
+namespace QGst {
+
+QString TunerChannel::label() const
+{
+    return QString::fromUtf8(object<GstTunerChannel>()->label);
+}
+
+TunerChannel::TunerChannelFlags TunerChannel::flags() const
+{
+    return TunerChannelFlags(object<GstTunerChannel>()->flags);
+}
+
+float TunerChannel::freqMultiplicator() const
+{
+    return object<GstTunerChannel>()->freq_multiplicator;
+}
+
+unsigned long TunerChannel::minFrequency() const
+{
+    return object<GstTunerChannel>()->min_frequency;
+}
+
+unsigned long TunerChannel::maxFrequency() const
+{
+    return object<GstTunerChannel>()->max_frequency;
+}
+
+int TunerChannel::minSignal() const
+{
+    return object<GstTunerChannel>()->min_signal;
+}
+
+int TunerChannel::maxSignal() const
+{
+    return object<GstTunerChannel>()->max_signal;
+}
+
+
+QString TunerNorm::label() const
+{
+    return QString::fromUtf8(object<GstTunerNorm>()->label);
+}
+
+QGlib::Value TunerNorm::framerate() const
+{
+    return QGlib::Value(&(object<GstTunerNorm>()->framerate));
+}
+
+
+QList<TunerChannelPtr> Tuner::channels() const
+{
+    QList<TunerChannelPtr> result;
+    const GList *list = gst_tuner_list_channels(object<GstTuner>());
+    while(list) {
+        result.append(TunerChannelPtr::wrap(GST_TUNER_CHANNEL(list->data)));
+        list=list->next;
+    }
+    return result;
+}
+
+TunerChannelPtr Tuner::getChannel() const
+{
+    return TunerChannelPtr::wrap(gst_tuner_get_channel(object<GstTuner>()));
+}
+
+void Tuner::setChannel(const TunerChannelPtr &channel)
+{
+    gst_tuner_set_channel(object<GstTuner>(), channel);
+}
+
+TunerChannelPtr Tuner::findChannelByName(const QString &name) const
+{
+    return TunerChannelPtr::wrap(
+        gst_tuner_find_channel_by_name(object<GstTuner>(), name.toUtf8().data())
+        );
+}
+
+QList<TunerNormPtr> Tuner::norms() const
+{
+    QList<TunerNormPtr> result;
+    const GList *list = gst_tuner_list_norms(object<GstTuner>());
+    while(list) {
+        result.append(TunerNormPtr::wrap(GST_TUNER_NORM(list->data)));
+        list=list->next;
+    }
+    return result;
+}
+
+TunerNormPtr Tuner::getNorm() const
+{
+   return TunerNormPtr::wrap(gst_tuner_get_norm(object<GstTuner>()));
+}
+
+void Tuner::setNorm(const TunerNormPtr &norm)
+{
+   gst_tuner_set_norm(object<GstTuner>(), norm);
+}
+
+TunerNormPtr Tuner::findNormByName(const QString &name) const
+{
+   return TunerNormPtr::wrap(
+       gst_tuner_find_norm_by_name(object<GstTuner>(), name.toUtf8().data())
+       );
+}
+
+unsigned long Tuner::frequency(const TunerChannelPtr &channel) const
+{
+   return gst_tuner_get_frequency(object<GstTuner>(), channel);
+}
+
+void Tuner::setFrequency(unsigned long freq, const TunerChannelPtr &channel)
+{
+   gst_tuner_set_frequency(object<GstTuner>(), channel, freq);
+}
+
+int Tuner::signalStrength(const TunerChannelPtr &channel) const
+{
+    return gst_tuner_signal_strength(object<GstTuner>(), channel);
+}
+
+} //namespace QGst
diff --git a/src/QGst/tuner.h b/src/QGst/tuner.h
new file mode 100755
index 0000000..f86c5e3
--- /dev/null
+++ b/src/QGst/tuner.h
@@ -0,0 +1,91 @@
+/*
+    Copyright (C) 2011 Lukas Schrangl <schrangl@gmx.net>
+
+    This library is free software; you can redistribute it and/or modify
+    it under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation; either version 2.1 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 Lesser General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef QGST_TUNER_H
+#define QGST_TUNER_H
+
+#include "global.h"
+#include "../QGlib/Object"
+
+namespace QGst {
+
+/*! \headerfile tuner.h <QGst/Tuner>
+ * \brief Wrapper class for GstTunerChannel
+ */
+class QTGSTREAMER_EXPORT TunerChannel : public QGlib::Object
+{
+    QGST_WRAPPER(TunerChannel)
+public:
+    enum TunerChannelFlag {
+      Input = 1<<0,
+      Output = 1<<1,
+      Frequency = 1<<2,
+      Audio = 1<<3
+    };
+    Q_DECLARE_FLAGS(TunerChannelFlags, TunerChannelFlag);
+
+    QString label() const;
+    TunerChannelFlags flags() const;
+    float freqMultiplicator() const;
+    unsigned long minFrequency() const;
+    unsigned long maxFrequency() const;
+    int minSignal() const;
+    int maxSignal() const;
+};
+
+/*! \headerfile tuner.h <QGst/Tuner>
+ * \brief Wrapper class for GstTunerNorm
+ */
+class QTGSTREAMER_EXPORT TunerNorm : public QGlib::Object
+{
+    QGST_WRAPPER(TunerNorm)
+public:
+    QString label() const;
+    QGlib::Value framerate() const;
+};
+
+/*! \headerfile tuner.h <QGst/Tuner>
+ * \brief Wrapper class for GstTunerNorm
+ */
+class QTGSTREAMER_EXPORT Tuner : public QGlib::Interface
+{
+    QGST_WRAPPER(Tuner)
+public:
+    QList<TunerChannelPtr> channels() const;
+    TunerChannelPtr getChannel() const;
+    void setChannel(const TunerChannelPtr &channel);
+    TunerChannelPtr findChannelByName(const QString &name) const;
+
+    QList<TunerNormPtr> norms() const;
+    TunerNormPtr getNorm() const;
+    void setNorm(const TunerNormPtr &norm);
+    TunerNormPtr findNormByName(const QString &name) const;
+    
+    unsigned long frequency(const TunerChannelPtr &channel) const;
+    void setFrequency(unsigned long freq, const TunerChannelPtr &channel);
+
+    int signalStrength(const TunerChannelPtr &channel) const;
+};
+
+} //namespace QGst
+
+QGLIB_REGISTER_INTERFACE(QGst::Tuner)
+QGST_REGISTER_TYPE(QGst::Tuner)
+QGST_REGISTER_TYPE(QGst::TunerChannel)
+QGST_REGISTER_TYPE(QGst::TunerNorm)
+
+#endif // QGST_TUNER_H
