# Copyright 2012 Christoph Reiter
#
# This program 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 2 of the License, or
# (at your option) any later version.

from gi.repository import Gst

from quodlibet import _
from quodlibet.plugins.gstelement import GStreamerPlugin


class MonoDownmix(GStreamerPlugin):
    PLUGIN_ID = "mono"
    PLUGIN_NAME = _("Mono Downmix")
    PLUGIN_DESC = _("Downmixes audio channels to mono.")

    priority = -1

    @classmethod
    def setup_element(cls):
        element = Gst.ElementFactory.make("capsfilter", cls.PLUGIN_ID)
        if not element:
            return None

        caps = Gst.Caps.from_string("audio/x-raw,channels=1")

        element.set_property("caps", caps)
        return element
