diff --git a/0000-add-python3-compat.patch b/0000-add-python3-compat.patch
deleted file mode 100644
index 174fc7a..0000000
--- a/0000-add-python3-compat.patch
+++ /dev/null
@@ -1,912 +0,0 @@
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -10,7 +10,7 @@
-
- import pygtk
- pygtk.require('2.0')
--import gtk, gobject
-+import gtk as Gtk
- import os
-
- configdir = os.getenv('HOME') + "/.pulse"
-@@ -21,288 +21,290 @@ presetdir1 = configdir + "/presets"
- presetdir2 = "/usr/share/pulseaudio-equalizer/presets"
-
- def GetSettings():
-- global rawdata
-- global rawpresets
-- global ladspa_filename
-- global ladspa_name
-- global ladspa_label
-- global preamp
-- global num_ladspa_controls
-- global ladspa_controls
-- global ladspa_inputs
-- global status
-- global realstatus
-- global persistence
-- global preset
-- global ranges
-- global windowtitle
-- global presetmatch
-- global clearpreset
--
-- print "Getting settings..."
--
-- os.system('pulseaudio-equalizer interface.getsettings')
--
-- f = open(eqconfig, "r")
-- rawdata=f.read().split('\n')
-- f.close()
--
-- rawpresets = {}
-- f = open(eqpresets, "r")
-- rawpresets=f.read().split('\n')
-- f.close()
-- del rawpresets[len(rawpresets)-1]
--
-- ladspa_filename = str(rawdata[0])
-- ladspa_name = str(rawdata[1])
-- ladspa_label = str(rawdata[2])
-- preamp = (rawdata[3])
-- preset = str(rawdata[4])
-- status = int(rawdata[5])
-- persistence = int(rawdata[6])
-- ranges = rawdata[7:9]
-- num_ladspa_controls = int(rawdata[9])
-- ladspa_controls = rawdata[10:(10+num_ladspa_controls)]
-- ladspa_inputs = rawdata[(10+num_ladspa_controls):(10+num_ladspa_controls)+(num_ladspa_controls)]
--
-- if status == 1:
-- realstatus = "Enabled"
-- else:
-- realstatus = "Disabled"
--
-- windowtitle = "PulseAudio " + ladspa_label
--
-- clearpreset = 1
-- presetmatch = ''
-- for i in range(len(rawpresets)):
-- if rawpresets[i] == preset:
-- print "Match!"
-- presetmatch = 1
-+ global rawdata
-+ global rawpresets
-+ global ladspa_filename
-+ global ladspa_name
-+ global ladspa_label
-+ global preamp
-+ global num_ladspa_controls
-+ global ladspa_controls
-+ global ladspa_inputs
-+ global status
-+ global realstatus
-+ global persistence
-+ global preset
-+ global ranges
-+ global windowtitle
-+ global presetmatch
-+ global clearpreset
-+
-+ print("Getting settings...")
-+
-+ os.system("pulseaudio-equalizer interface.getsettings")
-+
-+ f = open(eqconfig, "r")
-+ rawdata=f.read().split("\n")
-+ f.close()
-+
-+ rawpresets = {}
-+ f = open(eqpresets, "r")
-+ rawpresets=f.read().split("\n")
-+ f.close()
-+ del rawpresets[len(rawpresets)-1]
-+
-+ ladspa_filename = str(rawdata[0])
-+ ladspa_name = str(rawdata[1])
-+ ladspa_label = str(rawdata[2])
-+ preamp = (rawdata[3])
-+ preset = str(rawdata[4])
-+ status = int(rawdata[5])
-+ persistence = int(rawdata[6])
-+ ranges = rawdata[7 : 9]
-+ num_ladspa_controls = int(rawdata[9])
-+ ladspa_controls = rawdata[10 : (10 + num_ladspa_controls)]
-+ ladspa_inputs = rawdata[(10 + num_ladspa_controls) :
-+ (10 + num_ladspa_controls) + (num_ladspa_controls)]
-+
-+ if status == 1:
-+ realstatus = "Enabled"
-+ else:
-+ realstatus = "Disabled"
-+
-+ windowtitle = "PulseAudio " + ladspa_label
-+
-+ clearpreset = 1
-+ presetmatch = ""
-+ for i in range(len(rawpresets)):
-+ if rawpresets[i] == preset:
-+ print("Match!")
-+ presetmatch = 1
-
- def ApplySettings():
-- print "Applying settings..."
-- f = open(eqconfig, "w")
-- del rawdata[:]
-- rawdata.append(str(ladspa_filename))
-- rawdata.append(str(ladspa_name))
-- rawdata.append(str(ladspa_label))
-- rawdata.append(str(preamp))
-- rawdata.append(str(preset))
-- rawdata.append(str(status))
-- rawdata.append(str(persistence))
-- for i in range(2):
-- rawdata.append(str(ranges[i]))
-- rawdata.append(str(num_ladspa_controls))
-- for i in range(num_ladspa_controls):
-- rawdata.append(str(ladspa_controls[i]))
-- for i in range(num_ladspa_controls):
-- rawdata.append(str(ladspa_inputs[i]))
--
-- for i in rawdata:
-- f.write(str(i)+'\n')
-- f.close()
-+ print("Applying settings...")
-+ f = open(eqconfig, "w")
-+ del rawdata[:]
-+ rawdata.append(str(ladspa_filename))
-+ rawdata.append(str(ladspa_name))
-+ rawdata.append(str(ladspa_label))
-+ rawdata.append(str(preamp))
-+ rawdata.append(str(preset))
-+ rawdata.append(str(status))
-+ rawdata.append(str(persistence))
-+ for i in range(2):
-+ rawdata.append(str(ranges[i]))
-+ rawdata.append(str(num_ladspa_controls))
-+ for i in range(num_ladspa_controls):
-+ rawdata.append(str(ladspa_controls[i]))
-+ for i in range(num_ladspa_controls):
-+ rawdata.append(str(ladspa_inputs[i]))
-+
-+ for i in rawdata:
-+ f.write(str(i) + "\n")
-+ f.close()
-
-- os.system('pulseaudio-equalizer interface.applysettings')
-+ os.system("pulseaudio-equalizer interface.applysettings")
-
- def FormatLabels(x):
-- global c
-- global suffix
-- global whitespace1
-- global whitespace2
--
-- whitespace1 = ""
-- whitespace2 = ""
--
-- current_input = int(ladspa_inputs[x-1])
-- if current_input < 99:
-- a = current_input
-- suffix = "Hz"
-- if current_input > 99 and current_input < 999:
-- a = current_input
-- suffix = "Hz"
-- if current_input > 999 and current_input < 9999:
-- a = float(current_input)/1000
-- suffix = "KHz"
-- if current_input > 9999:
-- a = float(current_input)/1000
-- suffix = "KHz"
--
-- # Filter out unnecessary ".0" from ladspa_inputs
-- b=str(a)
-- if b[-2:] == ".0":
-- c = b[:-2]
-- else:
-- c = b
--
-- # Add whitespace formatting to ensure text is centered
-- if len(c) == 3 and len(suffix) == 2:
-- whitespace2 = " "
-- if len(c) < 4 and len(suffix) == 3:
-- whitespace1 = " "
-- if len(c) < 2 and len(suffix) == 3:
-- whitespace1 = " "
-+ global c
-+ global suffix
-+ global whitespace1
-+ global whitespace2
-+
-+ whitespace1 = ""
-+ whitespace2 = ""
-+
-+ current_input = int(ladspa_inputs[x-1])
-+ if current_input < 99:
-+ a = current_input
-+ suffix = "Hz"
-+ if current_input > 99 and current_input < 999:
-+ a = current_input
-+ suffix = "Hz"
-+ if current_input > 999 and current_input < 9999:
-+ a = float(current_input) / 1000
-+ suffix = "KHz"
-+ if current_input > 9999:
-+ a = float(current_input) / 1000
-+ suffix = "KHz"
-+
-+ # Filter out unnecessary ".0" from ladspa_inputs
-+ b=str(a)
-+ if b[-2:] == ".0":
-+ c = b[:-2]
-+ else:
-+ c = b
-+
-+ # Add whitespace formatting to ensure text is centered
-+ if len(c) == 3 and len(suffix) == 2:
-+ whitespace2 = " "
-+ if len(c) < 4 and len(suffix) == 3:
-+ whitespace1 = " "
-+ if len(c) < 2 and len(suffix) == 3:
-+ whitespace1 = " "
-
- class Equalizer:
- def on_scale(self, widget, y):
-- global ladspa_controls
-- global preset
-- global clearpreset
-- newvalue = float(round(widget.get_value(),1))
-- del ladspa_controls[y-1]
-- ladspa_controls.insert(y-1, newvalue)
-- if clearpreset == 1:
-- preset = ''
-- presetsbox.get_child().set_text(preset)
-- for i in range(1,num_ladspa_controls+1):
-- self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-+ global ladspa_controls
-+ global preset
-+ global clearpreset
-+ newvalue = float(round(widget.get_value(), 1))
-+ del ladspa_controls[y - 1]
-+ ladspa_controls.insert(y - 1, newvalue)
-+ if clearpreset == 1:
-+ preset = ""
-+ presetsbox.get_child().set_text(preset)
-+ for i in range(1,num_ladspa_controls + 1):
-+ self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-
- def on_presetsbox(self, widget, x):
-- global preset
-- global presetmatch
-- global clearpreset
-- global ladspa_filename
-- global ladspa_name
-- global ladspa_label
-- global preamp
-- global num_ladspa_controls
-- global ladspa_controls
-- global ladspa_inputs
-- global windowtitle
-- preset = presetsbox.get_child().get_text()
--
-- presetmatch = ''
-- for i in range(len(rawpresets)):
-- if rawpresets[i] == preset:
-- print "Match!"
-- presetmatch = 1
--
-- if presetmatch == 1:
-- if os.path.isfile(presetdir1 + "/" + preset + ".preset"):
-- f = open(presetdir1 + "/" + preset + ".preset", "r")
-- rawdata=f.read().split('\n')
-- else:
-- f = open(presetdir2 + "/" + preset + ".preset", "r")
-- rawdata=f.read().split('\n')
-- f.close
--
-- ladspa_filename = str(rawdata[0])
-- ladspa_name = str(rawdata[1])
-- ladspa_label = str(rawdata[2])
-- #preamp = (rawdata[3])
-- preset = str(rawdata[4])
-- num_ladspa_controls = int(rawdata[5])
-- ladspa_controls = rawdata[6:(6+num_ladspa_controls)]
-- ladspa_inputs = rawdata[(6+num_ladspa_controls):(6+num_ladspa_controls)+(num_ladspa_controls)]
--
-- preampscale.set_value(float(preamp))
-- preampscalevalue.set_markup(str(preampscale.get_value()) + "x")
-- windowtitle = "PulseAudio " + ladspa_label
-- self.window.set_title(windowtitle + " [" + realstatus + "]")
-- clearpreset = ''
-- for i in range(1,num_ladspa_controls+1):
-- self.scales[i].set_value(float(ladspa_controls[i-1]))
-- FormatLabels(i)
-- self.labels[i].set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-- self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-- # Set preset again due to interference from scale modifications
-- preset = str(rawdata[4])
-- clearpreset = 1
-- presetsbox.get_child().set_text(preset)
-- ApplySettings()
-+ global preset
-+ global presetmatch
-+ global clearpreset
-+ global ladspa_filename
-+ global ladspa_name
-+ global ladspa_label
-+ global preamp
-+ global num_ladspa_controls
-+ global ladspa_controls
-+ global ladspa_inputs
-+ global windowtitle
-+ preset = presetsbox.get_child().get_text()
-+
-+ presetmatch = ""
-+ for i in range(len(rawpresets)):
-+ if rawpresets[i] == preset:
-+ print("Match!")
-+ presetmatch = 1
-+
-+ if presetmatch == 1:
-+ if os.path.isfile(presetdir1 + "/" + preset + ".preset"):
-+ f = open(presetdir1 + "/" + preset + ".preset", "r")
-+ rawdata=f.read().split("\n")
-+ else:
-+ f = open(presetdir2 + "/" + preset + ".preset", "r")
-+ rawdata=f.read().split("\n")
-+ f.close
-+
-+ ladspa_filename = str(rawdata[0])
-+ ladspa_name = str(rawdata[1])
-+ ladspa_label = str(rawdata[2])
-+ #preamp = (rawdata[3])
-+ preset = str(rawdata[4])
-+ num_ladspa_controls = int(rawdata[5])
-+ ladspa_controls = rawdata[6 : (6 + num_ladspa_controls)]
-+ ladspa_inputs = rawdata[(6 + num_ladspa_controls) :
-+ (6 + num_ladspa_controls) + (num_ladspa_controls)]
-+
-+ preampscale.set_value(float(preamp))
-+ preampscalevalue.set_markup(str(preampscale.get_value()) + "x")
-+ windowtitle = "PulseAudio " + ladspa_label
-+ self.window.set_title(windowtitle + " [" + realstatus + "]")
-+ clearpreset = ""
-+ for i in range(1,num_ladspa_controls + 1):
-+ self.scales[i].set_value(float(ladspa_controls[i - 1]))
-+ FormatLabels(i)
-+ self.labels[i].set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-+ self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-+ # Set preset again due to interference from scale modifications
-+ preset = str(rawdata[4])
-+ clearpreset = 1
-+ presetsbox.get_child().set_text(preset)
-+ ApplySettings()
-
- def on_applysettings(self, widget):
-- ApplySettings()
-+ ApplySettings()
-
- def on_resetsettings(self, widget):
-- print "Resetting to defaults..."
-- os.system('pulseaudio-equalizer interface.resetsettings')
-- GetSettings()
--
-- eqenabled.set_active(status)
-- keepsettings.set_active(persistence)
-- presetsbox.get_child().set_text(preset)
-- preampscale.set_value(float(preamp))
-- for i in range(1,num_ladspa_controls+1):
-- self.scales[i].set_value(float(ladspa_controls[i-1]))
-- FormatLabels(i)
-- self.labels[i].set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-- self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-+ print("Resetting to defaults...")
-+ os.system("pulseaudio-equalizer interface.resetsettings")
-+ GetSettings()
-+
-+ eqenabled.set_active(status)
-+ keepsettings.set_active(persistence)
-+ presetsbox.get_child().set_text(preset)
-+ preampscale.set_value(float(preamp))
-+ for i in range(1, num_ladspa_controls+1):
-+ self.scales[i].set_value(float(ladspa_controls[i-1]))
-+ FormatLabels(i)
-+ self.labels[i].set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-+ self.scalevalues[i].set_markup("" + str(float(ladspa_controls[i-1])) + "\ndB")
-
- def on_savepreset(self, widget):
-- global preset
-- global presetmatch
-- preset = presetsbox.get_child().get_text()
-- if preset == '' or presetmatch == 1:
-- print 'Invalid preset name'
-- else:
-- f = open(presetdir1 + "/" + preset + ".preset", "w")
--
-- del rawdata[:]
-- rawdata.append(str(ladspa_filename))
-- rawdata.append(str(ladspa_name))
-- rawdata.append(str(ladspa_label))
-- rawdata.append(str(preamp))
-- rawdata.append(str(preset))
-- rawdata.append(str(num_ladspa_controls))
-- for i in range(num_ladspa_controls):
-- rawdata.append(str(ladspa_controls[i]))
-- for i in range(num_ladspa_controls):
-- rawdata.append(str(ladspa_inputs[i]))
--
-- for i in rawdata:
-- f.write(str(i)+'\n')
-- f.close()
--
-- # Clear preset list from ComboBox
-- for i in range(len(rawpresets)):
-- presetsbox.remove_text(0)
--
-- # Apply settings (which will save new preset as default)
-- ApplySettings()
--
-- # Refresh (and therefore, sort) preset list
-- GetSettings()
--
-- # Repopulate preset list into ComboBox
-- for i in range(len(rawpresets)):
-- presetsbox.append_text(rawpresets[i])
-+ global preset
-+ global presetmatch
-+ preset = presetsbox.get_child().get_text()
-+ if preset == "" or presetmatch == 1:
-+ print("Invalid preset name")
-+ else:
-+ f = open(presetdir1 + "/" + preset + ".preset", "w")
-+
-+ del rawdata[:]
-+ rawdata.append(str(ladspa_filename))
-+ rawdata.append(str(ladspa_name))
-+ rawdata.append(str(ladspa_label))
-+ rawdata.append(str(preamp))
-+ rawdata.append(str(preset))
-+ rawdata.append(str(num_ladspa_controls))
-+ for i in range(num_ladspa_controls):
-+ rawdata.append(str(ladspa_controls[i]))
-+ for i in range(num_ladspa_controls):
-+ rawdata.append(str(ladspa_inputs[i]))
-+
-+ for i in rawdata:
-+ f.write(str(i) + "\n")
-+ f.close()
-+
-+ # Clear preset list from ComboBox
-+ for i in range(len(rawpresets)):
-+ presetsbox.remove_text(0)
-+
-+ # Apply settings (which will save new preset as default)
-+ ApplySettings()
-+
-+ # Refresh (and therefore, sort) preset list
-+ GetSettings()
-+
-+ # Repopulate preset list into ComboBox
-+ for i in range(len(rawpresets)):
-+ presetsbox.append_text(rawpresets[i])
-
- def on_preampscale(self, widget):
-- global preamp
-- preamp = float(round(widget.get_value(),1))
-- preampscalevalue.set_markup(str(preamp) + "x")
-- #preset = ''
-- #presetsbox.get_child().set_text(preset)
-+ global preamp
-+ preamp = float(round(widget.get_value(), 1))
-+ preampscalevalue.set_markup(str(preamp) + "x")
-+ #preset = ""
-+ #presetsbox.get_child().set_text(preset)
-
- def on_eqenabled(self, widget):
-- global status
-+ global status
- if widget.get_active():
-- self.window.set_title(windowtitle + " [Enabled]")
-- status = 1
-+ self.window.set_title(windowtitle + " [Enabled]")
-+ status = 1
- else:
-- self.window.set_title(windowtitle + " [Disabled]")
-- status = 0
-- ApplySettings()
-+ self.window.set_title(windowtitle + " [Disabled]")
-+ status = 0
-+ ApplySettings()
-
- def on_keepsettings(self, widget):
-- global persistence
-+ global persistence
- if widget.get_active():
-- persistence = 1
-+ persistence = 1
- else:
-- persistence = 0
-- ApplySettings()
-+ persistence = 0
-+ ApplySettings()
-
- def on_removepreset(self,widget):
-- global preset
-+ global preset
- global presets
-- dialog = gtk.FileChooserDialog("Choose preset to remove...",
-+ dialog = Gtk.FileChooserDialog("Choose preset to remove...",
- None,
-- gtk.FILE_CHOOSER_ACTION_OPEN,
-- (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
-- gtk.STOCK_OK, gtk.RESPONSE_OK))
-- dialog.set_default_response(gtk.RESPONSE_OK)
-+ Gtk.FILE_CHOOSER_ACTION_OPEN,
-+ (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
-+ Gtk.STOCK_OK, Gtk.RESPONSE_OK))
-+ dialog.set_default_response(Gtk.RESPONSE_OK)
-
-- filter = gtk.FileFilter()
-+ filter = Gtk.FileFilter()
- filter.set_name("Preset files")
- filter.add_pattern("*.preset")
- dialog.add_filter(filter)
-@@ -310,209 +312,209 @@ class Equalizer:
- dialog.show()
-
- response = dialog.run()
-- if response == gtk.RESPONSE_OK:
-- filename = dialog.get_filename()
-- path_and_name = os.path.split(filename)
-- name = path_and_name[1]
-- os.remove(filename)
--
-- # Make a note of the current preset, then clear it temporarily
-- preset = presetsbox.get_child().get_text()
-- realpreset = preset
-- preset = ''
-- presetsbox.get_child().set_text('')
--
-- # Clear preset list from ComboBox
-- for i in range(len(rawpresets)):
-- presetsbox.remove_text(0)
--
-- # Refresh (and therefore, sort) preset list
-- GetSettings()
--
-- # Clear preset (if it is the same as removed preset), or restore preset
-- if (presetdir1 + "/" + preset + ".preset") == filename:
-- preset = ''
-- else:
-- preset = realpreset
--
-- # Restore preset
-- presetsbox.get_child().set_text(preset)
--
-- # Repopulate preset list into ComboBox
-- for i in range(len(rawpresets)):
-- presetsbox.append_text(rawpresets[i])
-+ if response == Gtk.RESPONSE_OK:
-+ filename = dialog.get_filename()
-+ path_and_name = os.path.split(filename)
-+ name = path_and_name[1]
-+ os.remove(filename)
-+
-+ # Make a note of the current preset, then clear it temporarily
-+ preset = presetsbox.get_child().get_text()
-+ realpreset = preset
-+ preset = ""
-+ presetsbox.get_child().set_text("")
-+
-+ # Clear preset list from ComboBox
-+ for i in range(len(rawpresets)):
-+ presetsbox.remove_text(0)
-+
-+ # Refresh (and therefore, sort) preset list
-+ GetSettings()
-+
-+ # Clear preset (if it is the same as removed preset), or restore preset
-+ if (presetdir1 + "/" + preset + ".preset") == filename:
-+ preset = ""
-+ else:
-+ preset = realpreset
-+
-+ # Restore preset
-+ presetsbox.get_child().set_text(preset)
-+
-+ # Repopulate preset list into ComboBox
-+ for i in range(len(rawpresets)):
-+ presetsbox.append_text(rawpresets[i])
-
-- # Apply settings
-- ApplySettings()
-+ # Apply settings
-+ ApplySettings()
-
- dialog.destroy()
-
- def destroy_equalizer(self, widget, data=None):
-- gtk.main_quit()
-+ Gtk.main_quit()
-
- def __init__(self):
-- GetSettings()
-+ GetSettings()
-
-- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
-+ self.window = Gtk.Window(Gtk.WINDOW_TOPLEVEL)
- self.window.set_resizable(True)
-
- self.window.connect("destroy", self.destroy_equalizer)
- self.window.set_title(windowtitle + " [" + realstatus + "]")
- self.window.set_border_width(0)
-- icon = self.window.set_icon_from_file("/usr/share/icons/hicolor/scalable/apps/multimedia-volume-control.svg")
-+ icon = self.window.set_icon_from_file("/usr/share/icons/hicolor/scalable/apps/multimedia-volume-control.svg")
-
-- menu = gtk.Menu()
-+ menu = Gtk.Menu()
-
-- menu_item = gtk.MenuItem('Reset to defaults')
-+ menu_item = Gtk.MenuItem("Reset to defaults")
- menu_item.connect("activate", self.on_resetsettings)
-- menu.append(menu_item)
-- menu_item.show()
-- menu_item = gtk.MenuItem('Remove user preset...')
-- menu_item.connect("activate", self.on_removepreset)
- menu.append(menu_item)
-- menu_item.show()
-- root_menu = gtk.MenuItem("Advanced")
-+ menu_item.show()
-+ menu_item = Gtk.MenuItem("Remove user preset...")
-+ menu_item.connect("activate", self.on_removepreset)
-+ menu.append(menu_item)
-+ menu_item.show()
-+ root_menu = Gtk.MenuItem("Advanced")
- root_menu.show()
- root_menu.set_submenu(menu)
-
-- vbox1 = gtk.VBox(False, 0)
-+ vbox1 = Gtk.VBox(False, 0)
- self.window.add(vbox1)
- vbox1.show()
-- menu_bar = gtk.MenuBar()
-+ menu_bar = Gtk.MenuBar()
- vbox1.pack_start(menu_bar, False, False, 2)
- menu_bar.show()
- menu_bar.append (root_menu)
-
-- hbox1 = gtk.HBox(False, 1)
-+ hbox1 = Gtk.HBox(False, 1)
- #hbox1.set_border_width(10)
- vbox1.add(hbox1)
- hbox1.show()
-
-- table = gtk.Table(3, 17, False)
-+ table = Gtk.Table(3, 17, False)
- table.set_border_width(5)
- hbox1.add(table)
-
-- # Preamp widget
-- global preampscale
-- global preampscalevalue
-- preampscale = gtk.VScale()
-- preampscale.set_draw_value(0)
-- preampscale.set_inverted(1)
-- preampscale.set_value_pos(gtk.POS_BOTTOM)
-- preampscale.set_range(0.0,2.0)
-- preampscale.set_increments(1, 0.1)
-- preampscale.set_digits(1)
-- preampscale.set_size_request(35,200)
-- preampscale.set_value(float(preamp))
-- preampscale.connect("value-changed", self.on_preampscale)
-- label = gtk.Label()
-- label.set_markup("Preamp")
-- preampscalevalue = gtk.Label()
-- preampscalevalue.set_markup(str(preampscale.get_value()) + "x")
-- table.attach(label, 1, 2, 0, 1)
-- table.attach(preampscale, 1, 2, 1, 2)
-- table.attach(preampscalevalue, 1, 2, 2, 3)
-- label.show()
-- preampscale.show()
-- preampscalevalue.show()
--
-- # Separator between preamp and bands
-- separator = gtk.VSeparator()
-- table.attach(separator, 2, 3, 1, 2)
-- separator.show()
--
-- # Equalizer bands
-- global scale
-- self.scales = {}
-- self.labels = {}
-- self.scalevalues = {}
-- for x in range(1,num_ladspa_controls+1):
-- scale = gtk.VScale()
-- self.scales[x] = scale
-- scale.set_draw_value(0)
-- scale.set_inverted(1)
-- scale.set_value_pos(gtk.POS_BOTTOM)
-- scale.set_range(float(ranges[0]), float(ranges[1]))
-- scale.set_increments(1, 0.1)
-- scale.set_digits(1)
-- scale.set_size_request(35,200)
-- scale.set_value(float(ladspa_controls[x-1]))
-- scale.connect("value-changed", self.on_scale, x)
-- FormatLabels(x)
-- label = gtk.Label()
-- self.labels[x] = label
-- label.set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-- scalevalue = gtk.Label()
-- self.scalevalues[x] = scalevalue
-- scalevalue.set_markup("" + str(scale.get_value()) + "\ndB")
-- table.attach(label, x+2, x+3, 0, 1)
-- table.attach(scale, x+2, x+3, 1, 2)
-- table.attach(scalevalue, x+2, x+3, 2, 3)
-- label.show()
-- scale.show()
-- scalevalue.show()
-+ # Preamp widget
-+ global preampscale
-+ global preampscalevalue
-+ preampscale = Gtk.VScale()
-+ preampscale.set_draw_value(0)
-+ preampscale.set_inverted(1)
-+ preampscale.set_value_pos(Gtk.POS_BOTTOM)
-+ preampscale.set_range(0.0, 2.0)
-+ preampscale.set_increments(1, 0.1)
-+ preampscale.set_digits(1)
-+ preampscale.set_size_request(35, 200)
-+ preampscale.set_value(float(preamp))
-+ preampscale.connect("value-changed", self.on_preampscale)
-+ label = Gtk.Label()
-+ label.set_markup("Preamp")
-+ preampscalevalue = Gtk.Label()
-+ preampscalevalue.set_markup(str(preampscale.get_value()) + "x")
-+ table.attach(label, 1, 2, 0, 1)
-+ table.attach(preampscale, 1, 2, 1, 2)
-+ table.attach(preampscalevalue, 1, 2, 2, 3)
-+ label.show()
-+ preampscale.show()
-+ preampscalevalue.show()
-+
-+ # Separator between preamp and bands
-+ separator = Gtk.VSeparator()
-+ table.attach(separator, 2, 3, 1, 2)
-+ separator.show()
-+
-+ # Equalizer bands
-+ global scale
-+ self.scales = {}
-+ self.labels = {}
-+ self.scalevalues = {}
-+ for x in range(1,num_ladspa_controls+1):
-+ scale = Gtk.VScale()
-+ self.scales[x] = scale
-+ scale.set_draw_value(0)
-+ scale.set_inverted(1)
-+ scale.set_value_pos(Gtk.POS_BOTTOM)
-+ scale.set_range(float(ranges[0]), float(ranges[1]))
-+ scale.set_increments(1, 0.1)
-+ scale.set_digits(1)
-+ scale.set_size_request(35, 200)
-+ scale.set_value(float(ladspa_controls[x - 1]))
-+ scale.connect("value-changed", self.on_scale, x)
-+ FormatLabels(x)
-+ label = Gtk.Label()
-+ self.labels[x] = label
-+ label.set_markup("" + whitespace1 + c + "\n" + whitespace2 + suffix + "")
-+ scalevalue = Gtk.Label()
-+ self.scalevalues[x] = scalevalue
-+ scalevalue.set_markup("" + str(scale.get_value()) + "\ndB")
-+ table.attach(label, x + 2, x + 3, 0, 1)
-+ table.attach(scale, x + 2, x + 3, 1, 2)
-+ table.attach(scalevalue, x + 2, x + 3, 2, 3)
-+ label.show()
-+ scale.show()
-+ scalevalue.show()
-
-- table.show()
-+ table.show()
-
-- vbox2 = gtk.VBox(True, 1)
-+ vbox2 = Gtk.VBox(True, 1)
- vbox2.set_border_width(10)
- hbox1.add(vbox2)
- vbox2.show()
-
-- presetslabel = gtk.Label()
-- presetslabel.set_markup("Preset:")
-- vbox2.pack_start(presetslabel, False, False, 0)
-- presetslabel.show()
--
-- global presetsbox
-- presetsbox = gtk.combo_box_entry_new_text()
-- vbox2.pack_start(presetsbox, False, False, 0)
-- presetsbox.get_child().set_text(preset)
-- for i in range(len(rawpresets)):
-- presetsbox.append_text(rawpresets[i])
-+ presetslabel = Gtk.Label()
-+ presetslabel.set_markup("Preset:")
-+ vbox2.pack_start(presetslabel, False, False, 0)
-+ presetslabel.show()
-+
-+ global presetsbox
-+ presetsbox = Gtk.combo_box_entry_new_text()
-+ vbox2.pack_start(presetsbox, False, False, 0)
-+ presetsbox.get_child().set_text(preset)
-+ for i in range(len(rawpresets)):
-+ presetsbox.append_text(rawpresets[i])
- presetsbox.connect("changed", self.on_presetsbox, x)
-- presetsbox.show()
-+ presetsbox.show()
-
-- savepreset = gtk.Button('Save Preset')
-- vbox2.pack_start(savepreset, False, False, 0)
-+ savepreset = Gtk.Button("Save Preset")
-+ vbox2.pack_start(savepreset, False, False, 0)
- savepreset.connect("clicked", self.on_savepreset)
-- savepreset.show()
-+ savepreset.show()
-
-- global eqenabled
-- eqenabled = gtk.CheckButton("EQ Enabled")
-+ global eqenabled
-+ eqenabled = Gtk.CheckButton("EQ Enabled")
- eqenabled.set_active(status)
-- eqenabled.unset_flags(gtk.CAN_FOCUS)
-+ eqenabled.unset_flags(Gtk.CAN_FOCUS)
- eqenabled.connect("clicked", self.on_eqenabled)
-- vbox2.pack_start(eqenabled, False, False, 0)
-- eqenabled.show()
-+ vbox2.pack_start(eqenabled, False, False, 0)
-+ eqenabled.show()
-
-- global keepsettings
-- keepsettings = gtk.CheckButton('Keep Settings')
-- keepsettings.set_active(persistence)
-- keepsettings.unset_flags(gtk.CAN_FOCUS)
-+ global keepsettings
-+ keepsettings = Gtk.CheckButton("Keep Settings")
-+ keepsettings.set_active(persistence)
-+ keepsettings.unset_flags(Gtk.CAN_FOCUS)
- keepsettings.connect("clicked", self.on_keepsettings)
-- vbox2.pack_start(keepsettings, False, False, 0)
-- keepsettings.show()
-+ vbox2.pack_start(keepsettings, False, False, 0)
-+ keepsettings.show()
-
-- applysettings = gtk.Button('Apply Settings')
-- vbox2.pack_start(applysettings, False, False, 0)
-+ applysettings = Gtk.Button("Apply Settings")
-+ vbox2.pack_start(applysettings, False, False, 0)
- applysettings.connect("clicked", self.on_applysettings)
-- applysettings.show()
-+ applysettings.show()
-
-- quitbutton = gtk.Button('Quit')
-- vbox2.pack_start(quitbutton, False, False, 0)
-- quitbutton.connect("clicked", lambda w: gtk.main_quit())
-- quitbutton.show()
--
-- separator = gtk.HSeparator()
-- vbox2.pack_start(separator, False, False, 0)
-- separator.set_size_request(100, 10)
-- #separator.show()
-+ quitbutton = Gtk.Button("Quit")
-+ vbox2.pack_start(quitbutton, False, False, 0)
-+ quitbutton.connect("clicked", lambda w: Gtk.main_quit())
-+ quitbutton.show()
-+
-+ separator = Gtk.HSeparator()
-+ vbox2.pack_start(separator, False, False, 0)
-+ separator.set_size_request(100, 10)
-+ #separator.show()
-
- self.window.show()
-
- def main():
-- gtk.main()
-+ Gtk.main()
- return 0
-
- if __name__ == "__main__":
diff --git a/0001-pulse-path.patch b/0001-pulse-path.patch
deleted file mode 100644
index 2cbcb4c..0000000
--- a/0001-pulse-path.patch
+++ /dev/null
@@ -1,178 +0,0 @@
---- a/usr/bin/pulseaudio-equalizer
-+++ b/usr/bin/pulseaudio-equalizer
-@@ -18,12 +18,17 @@ PA_CONTROL_MAX="30"
- PA_PREAMP="1.0"
- PA_CURRENT_PRESET=""
-
--PRESET_DIR1=$HOME/.pulse/presets
-+if [ -z "$XDG_CONFIG_HOME" ]; then
-+ CONFIG_DIR="$HOME/.config/pulse"
-+else
-+ CONFIG_DIR="$XDG_CONFIG_HOME/pulse"
-+fi
-+PRESET_DIR1="$CONFIG_DIR/presets"
- PRESET_DIR2=/usr/share/pulseaudio-equalizer/presets
- SCRIPT_NAME=pulseaudio-equalizer
- SCRIPT_VERSION="2.7 (05/02/2010)"
--CONFIG_NAME=$HOME/.pulse/equalizerrc
--LOG_NAME=$HOME/Desktop/pulseaudio-equalizer.log
-+CONFIG_NAME="$CONFIG_DIR/equalizerrc"
-+LOG_NAME="$HOME/pulseaudio-equalizer.log"
-
- # Don't execute the script with elevated privileges
- if [[ ! $EUID -ne 0 ]]; then
-@@ -125,12 +130,12 @@ else
- fi
-
- # Check if equalizer is set as persistent
--if [ -f $HOME/.pulse/default.pa ]; then
-- if [ "$(cat $HOME/.pulse/default.pa | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-- PA_EQUALIZER_PERSISTENCE=1
-- fi
-+if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-+ PA_EQUALIZER_PERSISTENCE=1
-+ fi
- else
-- PA_EQUALIZER_PERSISTENCE=0
-+ PA_EQUALIZER_PERSISTENCE=0
- fi
-
- # DEBUG
-@@ -204,8 +209,8 @@ if [ "$1" = "log" ]; then
- echo PA_PREAMP=$PA_PREAMP
- echo PA_REAL_PREAMP=$PA_REAL_PREAMP
-
-- if [ -f $HOME/.pulse/default.pa ]; then
-- tail -n7 $HOME/.pulse/default.pa
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ tail -n7 "$CONFIG_DIR/default.pa"
- fi
-
- echo "---"
-@@ -253,24 +258,24 @@ if [ "$1" = "enable-config" ]; then
- echo "-------------------------------------"
-
- # If equalizer configuration is already set, delete file
-- if [ -f $HOME/.pulse/default.pa ]; then
-- if [ "$(cat $HOME/.pulse/default.pa | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-- echo "Equalizer definition detected in file '$HOME/.pulse/default.pa', deleting..."
-- rm $HOME/.pulse/default.pa
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-+ echo "Equalizer definition detected in file '$CONFIG_DIR/default.pa', deleting..."
-+ rm "$CONFIG_DIR/default.pa"
- fi
- fi
-
- # Make a backup of configuration if necessary
-- if [ -f $HOME/.pulse/default.pa ]; then
-- echo "Found '$HOME/.pulse/default.pa', making a copy..."
-- cp $HOME/.pulse/default.pa $HOME/.pulse/default.pa.noeq
-- CFG_SOURCE_FILE="$HOME/.pulse/default.pa.noeq"
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ echo "Found '$CONFIG_DIR/default.pa', making a copy..."
-+ cp "$CONFIG_DIR/default.pa" "$CONFIG_DIR/default.pa.noeq"
-+ CFG_SOURCE_FILE="$CONFIG_DIR/default.pa.noeq"
- fi
-
- # Decide which file to use as the configuration source
-- if [ -f $HOME/.pulse/default.pa.noeq ]; then
-- echo "Found '$HOME/.pulse/default.pa.noeq'..."
-- CFG_SOURCE_FILE="$HOME/.pulse/default.pa.noeq"
-+ if [ -f "$CONFIG_DIR/default.pa.noeq" ]; then
-+ echo "Found '$CONFIG_DIR/default.pa.noeq'..."
-+ CFG_SOURCE_FILE="$CONFIG_DIR/default.pa.noeq"
- else
- CFG_SOURCE_FILE="/etc/pulse/default.pa"
- fi
-@@ -278,19 +283,19 @@ if [ "$1" = "enable-config" ]; then
- echo "Using configuration file '$CFG_SOURCE_FILE' as source..."
-
- # Modify module-stream-restore line to disable cached sinks
-- cat $CFG_SOURCE_FILE | sed 's/load-module module-stream-restore/load-module module-stream-restore restore_device=false/g' >$HOME/.pulse/default.pa
-+ cat "$CFG_SOURCE_FILE" | sed 's/load-module module-stream-restore/load-module module-stream-restore restore_device=false/g' >"$CONFIG_DIR/default.pa"
-
- # Add module-ladspa-sink definition
-- echo "" >>$HOME/.pulse/default.pa
-- echo "### BEGIN: Equalized audio configuration" >>$HOME/.pulse/default.pa
-- echo "### Generated from: $SCRIPT_NAME" >>$HOME/.pulse/default.pa
-- echo "load-module module-ladspa-sink sink_name=$PA_LADSPA_SINK master=$PA_MASTER_SINK plugin=$PA_LADSPA_PLUGIN label=$PA_LADSPA_LABEL control=$PA_LADSPA_CONTROLS" >>$HOME/.pulse/default.pa
-+ echo "" >>"$CONFIG_DIR/default.pa"
-+ echo "### BEGIN: Equalized audio configuration" >>"$CONFIG_DIR/default.pa"
-+ echo "### Generated from: $SCRIPT_NAME" >>"$CONFIG_DIR/default.pa"
-+ echo "load-module module-ladspa-sink sink_name=$PA_LADSPA_SINK master=$PA_MASTER_SINK plugin=$PA_LADSPA_PLUGIN label=$PA_LADSPA_LABEL control=$PA_LADSPA_CONTROLS" >>"$CONFIG_DIR/default.pa"
-
- # Set LADSPA sink as default sink & set appropriate master sink (preamp) volume
-- echo "set-default-sink $PA_LADSPA_SINK" >>$HOME/.pulse/default.pa
-- echo "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP" >>$HOME/.pulse/default.pa
-- echo "set-sink-mute $PA_MASTER_SINK 0" >>$HOME/.pulse/default.pa
-- echo "### END: Equalized audio configuration" >>$HOME/.pulse/default.pa
-+ echo "set-default-sink $PA_LADSPA_SINK" >>"$CONFIG_DIR/default.pa"
-+ echo "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP" >>"$CONFIG_DIR/default.pa"
-+ echo "set-sink-mute $PA_MASTER_SINK 0" >>"$CONFIG_DIR/default.pa"
-+ echo "### END: Equalized audio configuration" >>"$CONFIG_DIR/default.pa"
-
- echo "Equalizer setting saved (enable-config)."
- echo "-------------------------------------"
-@@ -306,16 +311,16 @@ if [ "$1" = "disable-config" ]; then
- echo "-------------------------------------"
-
- # Move .noeq configuration file if it exists
-- if [ -f $HOME/.pulse/default.pa.noeq ]; then
-- echo "Found '$HOME/.pulse/default.pa.noeq', moving..."
-- mv $HOME/.pulse/default.pa.noeq $HOME/.pulse/default.pa
-+ if [ -f "$CONFIG_DIR/default.pa.noeq" ]; then
-+ echo "Found '$CONFIG_DIR/default.pa.noeq', moving..."
-+ mv "$CONFIG_DIR/default.pa.noeq" "$CONFIG_DIR/default.pa"
- fi
-
- # If equalizer configuration is present, delete file
-- if [ -f $HOME/.pulse/default.pa ]; then
-- if [ "$(cat $HOME/.pulse/default.pa | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-- echo "Equalizer definition detected, deleting '$HOME/.pulse/default.pa'..."
-- rm $HOME/.pulse/default.pa
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-+ echo "Equalizer definition detected, deleting '$CONFIG_DIR/default.pa'..."
-+ rm "$CONFIG_DIR/default.pa"
- fi
- fi
-
-@@ -426,8 +431,8 @@ if [ "$PA_CURRENT_SINK" = "$PA_LADSPA_SI
- echo "-------------------------------------"
- echo "Equalizer status: [enabled]"
-
-- if [ -f $HOME/.pulse/default.pa ]; then
-- if [ "$(cat $HOME/.pulse/default.pa | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
- echo "Equalizer configuration status: [enabled]"
- else
- echo "Equalizer configuration status: [disabled]"
-@@ -448,8 +453,8 @@ else
- echo "-------------------------------------"
- echo "Equalizer status: [disabled]"
-
-- if [ -f $HOME/.pulse/default.pa ]; then
-- if [ "$(cat $HOME/.pulse/default.pa | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
-+ if [ -f "$CONFIG_DIR/default.pa" ]; then
-+ if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
- echo "Equalizer configuration status: [enabled]"
- echo "Equalizer plugin: [$PA_LADSPA_PLUGIN/$PA_LADSPA_LABEL]"
- echo "Equalizer control: [$PA_LADSPA_CONTROLS]"
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -10,10 +10,10 @@
-
- import pygtk
- pygtk.require('2.0')
--import gtk as Gtk
-+import glib as GLib, gtk as Gtk
- import os
-
--configdir = os.getenv('HOME') + "/.pulse"
-+configdir = GLib.get_user_config_dir() + "/pulse"
- eqconfig = configdir + "/equalizerrc"
- eqconfig2 = configdir + "/equalizerrc.test"
- eqpresets = eqconfig + ".availablepresets"
diff --git a/0002-remove-preamp.patch b/0002-remove-preamp.patch
deleted file mode 100644
index 7adfe06..0000000
--- a/0002-remove-preamp.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/usr/bin/pulseaudio-equalizer
-+++ b/usr/bin/pulseaudio-equalizer
-@@ -293,7 +293,7 @@ if [ "$1" = "enable-config" ]; then
-
- # Set LADSPA sink as default sink & set appropriate master sink (preamp) volume
- echo "set-default-sink $PA_LADSPA_SINK" >>"$CONFIG_DIR/default.pa"
-- echo "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP" >>"$CONFIG_DIR/default.pa"
-+ #echo "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP" >>"$CONFIG_DIR/default.pa"
- echo "set-sink-mute $PA_MASTER_SINK 0" >>"$CONFIG_DIR/default.pa"
- echo "### END: Equalized audio configuration" >>"$CONFIG_DIR/default.pa"
-
-@@ -383,7 +383,7 @@ if [ "$1" = "enable" ]; then
-
- # Unmute & set preamp level on ALSA sink (as LADSPA sink will act as primary volume control)
- echo "Setting ALSA sink ($PA_MASTER_SINK) preamp ("$PA_PREAMP"x)..."
-- echo >>/tmp/eqcommands.sh "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP"
-+ #echo >>/tmp/eqcommands.sh "set-sink-volume $PA_MASTER_SINK $PA_REAL_PREAMP"
- echo >>/tmp/eqcommands.sh "set-sink-mute $PA_MASTER_SINK 0"
-
- # Set the LADSPA sink as the default
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -414,14 +414,14 @@ class Equalizer:
- table.attach(label, 1, 2, 0, 1)
- table.attach(preampscale, 1, 2, 1, 2)
- table.attach(preampscalevalue, 1, 2, 2, 3)
-- label.show()
-- preampscale.show()
-- preampscalevalue.show()
-+ #label.show()
-+ #preampscale.show()
-+ #preampscalevalue.show()
-
- # Separator between preamp and bands
- separator = Gtk.VSeparator()
- table.attach(separator, 2, 3, 1, 2)
-- separator.show()
-+ #separator.show()
-
- # Equalizer bands
- global scale
diff --git a/0003-force-default-persistence-value.patch b/0003-force-default-persistence-value.patch
deleted file mode 100644
index b11fb9c..0000000
--- a/0003-force-default-persistence-value.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/usr/bin/pulseaudio-equalizer
-+++ b/usr/bin/pulseaudio-equalizer
-@@ -133,6 +133,8 @@ fi
- if [ -f "$CONFIG_DIR/default.pa" ]; then
- if [ "$(cat "$CONFIG_DIR/default.pa" | grep -m1 "### BEGIN: Equalized audio configuration")" = "### BEGIN: Equalized audio configuration" ]; then
- PA_EQUALIZER_PERSISTENCE=1
-+ else
-+ PA_EQUALIZER_PERSISTENCE=0
- fi
- else
- PA_EQUALIZER_PERSISTENCE=0
diff --git a/0004-do-not-crash-on-missing-preset.patch b/0004-do-not-crash-on-missing-preset.patch
deleted file mode 100644
index 0e7c9c1..0000000
--- a/0004-do-not-crash-on-missing-preset.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -181,10 +181,13 @@ class Equalizer:
- if os.path.isfile(presetdir1 + "/" + preset + ".preset"):
- f = open(presetdir1 + "/" + preset + ".preset", "r")
- rawdata=f.read().split("\n")
-- else:
-+ f.close
-+ elif os.path.isfile(presetdir2 + "/" + preset + ".preset"):
- f = open(presetdir2 + "/" + preset + ".preset", "r")
- rawdata=f.read().split("\n")
- f.close
-+ else:
-+ print("Can't find %s preset" % preset)
-
- ladspa_filename = str(rawdata[0])
- ladspa_name = str(rawdata[1])
diff --git a/0005-window-icon.patch b/0005-window-icon.patch
deleted file mode 100644
index b3357f4..0000000
--- a/0005-window-icon.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -364,7 +364,16 @@ class Equalizer:
- self.window.connect("destroy", self.destroy_equalizer)
- self.window.set_title(windowtitle + " [" + realstatus + "]")
- self.window.set_border_width(0)
-- icon = self.window.set_icon_from_file("/usr/share/icons/hicolor/scalable/apps/multimedia-volume-control.svg")
-+
-+ icon_theme = Gtk.icon_theme_get_default()
-+ if icon_theme.has_icon("multimedia-volume-control"):
-+ self.window.set_icon_name("multimedia-volume-control")
-+ elif icon_theme.has_icon("gnome-volume-control"):
-+ self.window.set_icon_name("gnome-volume-control")
-+ elif icon_theme.has_icon("stock_volume"):
-+ self.window.set_icon_name("stock_volume")
-+ else:
-+ print("No icon found, the window will be iconless")
-
- menu = Gtk.Menu()
-
diff --git a/0006-fix-desktop.patch b/0006-fix-desktop.patch
deleted file mode 100644
index 02c1011..0000000
--- a/0006-fix-desktop.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- usr/share/applications/pulseaudio-equalizer.desktop 2011-08-18 14:07:30.000000000 -0500
-+++ usr/share/applications/pulseaudio-equalizer.desktop.orig 2011-08-18 20:33:49.000000000 -0500
-@@ -5,7 +5,7 @@
- GenericName=Equalizer
- Comment=PulseAudio LADSPA interface using MBEQ Multiband EQ plugin
- Exec=pulseaudio-equalizer-gtk
--Icon=gnome-volume-control
-+Icon=multimedia-volume-control
- StartupNotify=true
- Type=Application
--Categories=AudioVideo;Audio;Mixer;GTK;
-+Categories=AudioVideo;Mixer;GTK;
diff --git a/0007-pygobject3-port.patch b/0007-pygobject3-port.patch
deleted file mode 100644
index d8fcc72..0000000
--- a/0007-pygobject3-port.patch
+++ /dev/null
@@ -1,298 +0,0 @@
---- a/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-+++ b/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py
-@@ -8,11 +8,13 @@
- # Version: (see '/usr/pulseaudio-equalizer' script)
- #
-
--import pygtk
--pygtk.require('2.0')
--import glib as GLib, gtk as Gtk
-+import gi
-+gi.require_version("Gtk", "3.0")
-+from gi.repository import GLib, Gtk
- import os
-
-+GTK_VERSION = (Gtk.MAJOR_VERSION, Gtk.MINOR_VERSION, Gtk.MICRO_VERSION)
-+
- configdir = GLib.get_user_config_dir() + "/pulse"
- eqconfig = configdir + "/equalizerrc"
- eqconfig2 = configdir + "/equalizerrc.test"
-@@ -300,12 +302,16 @@ class Equalizer:
- def on_removepreset(self,widget):
- global preset
- global presets
-- dialog = Gtk.FileChooserDialog("Choose preset to remove...",
-- None,
-- Gtk.FILE_CHOOSER_ACTION_OPEN,
-- (Gtk.STOCK_CANCEL, Gtk.RESPONSE_CANCEL,
-- Gtk.STOCK_OK, Gtk.RESPONSE_OK))
-- dialog.set_default_response(Gtk.RESPONSE_OK)
-+ dialog = Gtk.FileChooserDialog(title="Choose preset to remove...",
-+ transient_for=widget.get_toplevel(),
-+ action=Gtk.FileChooserAction.OPEN)
-+
-+ button = dialog.add_button("_Cancel", Gtk.ResponseType.CANCEL)
-+ button.set_image(Gtk.Image.new_from_icon_name("gtk-cancel", Gtk.IconSize.BUTTON))
-+ button = dialog.add_button("_Open", Gtk.ResponseType.OK)
-+ button.set_image(Gtk.Image.new_from_icon_name("document-open", Gtk.IconSize.BUTTON))
-+ button.grab_default()
-+ dialog.set_default_response(Gtk.ResponseType.OK)
-
- filter = Gtk.FileFilter()
- filter.set_name("Preset files")
-@@ -315,7 +321,7 @@ class Equalizer:
- dialog.show()
-
- response = dialog.run()
-- if response == Gtk.RESPONSE_OK:
-+ if response == Gtk.ResponseType.OK:
- filename = dialog.get_filename()
- path_and_name = os.path.split(filename)
- name = path_and_name[1]
-@@ -358,14 +364,13 @@ class Equalizer:
- def __init__(self):
- GetSettings()
-
-- self.window = Gtk.Window(Gtk.WINDOW_TOPLEVEL)
-+ self.window = Gtk.Window()
- self.window.set_resizable(True)
-
- self.window.connect("destroy", self.destroy_equalizer)
- self.window.set_title(windowtitle + " [" + realstatus + "]")
-- self.window.set_border_width(0)
-
-- icon_theme = Gtk.icon_theme_get_default()
-+ icon_theme = Gtk.IconTheme.get_default()
- if icon_theme.has_icon("multimedia-volume-control"):
- self.window.set_icon_name("multimedia-volume-control")
- elif icon_theme.has_icon("gnome-volume-control"):
-@@ -377,42 +382,61 @@ class Equalizer:
-
- menu = Gtk.Menu()
-
-- menu_item = Gtk.MenuItem("Reset to defaults")
-+ menu_item = Gtk.MenuItem(label="Reset to defaults")
- menu_item.connect("activate", self.on_resetsettings)
- menu.append(menu_item)
- menu_item.show()
-- menu_item = Gtk.MenuItem("Remove user preset...")
-+ menu_item = Gtk.MenuItem(label="Remove user preset...")
- menu_item.connect("activate", self.on_removepreset)
- menu.append(menu_item)
- menu_item.show()
-- root_menu = Gtk.MenuItem("Advanced")
-+ root_menu = Gtk.MenuItem(label="Advanced")
- root_menu.show()
- root_menu.set_submenu(menu)
-
-- vbox1 = Gtk.VBox(False, 0)
-+ if GTK_VERSION >= (3, 0, 0):
-+ vbox1 = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
-+ else:
-+ vbox1 = Gtk.VBox()
- self.window.add(vbox1)
- vbox1.show()
- menu_bar = Gtk.MenuBar()
-- vbox1.pack_start(menu_bar, False, False, 2)
-+ if GTK_VERSION >= (3, 0, 0):
-+ menu_bar.set_margin_bottom(4)
-+ vbox1.add(menu_bar)
-+ else:
-+ vbox1.pack_start(menu_bar, False, False, 2)
- menu_bar.show()
-- menu_bar.append (root_menu)
-+ menu_bar.append(root_menu)
-
-- hbox1 = Gtk.HBox(False, 1)
-- #hbox1.set_border_width(10)
-+ if GTK_VERSION >= (3, 0, 0):
-+ hbox1 = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=1)
-+ else:
-+ hbox1 = Gtk.HBox(spacing=1)
-+ #hbox1.props.margin = 10
- vbox1.add(hbox1)
- hbox1.show()
-
-- table = Gtk.Table(3, 17, False)
-- table.set_border_width(5)
-- hbox1.add(table)
-+ if GTK_VERSION >= (3, 10, 0):
-+ grid = Gtk.Grid()
-+ grid.props.margin = 5
-+ else:
-+ grid = Gtk.Table(n_rows=3, n_columns=17)
-+ grid.set_border_width(5)
-+ hbox1.add(grid)
-
- # Preamp widget
- global preampscale
- global preampscalevalue
-- preampscale = Gtk.VScale()
-+ if GTK_VERSION >= (3, 2, 0):
-+ preampscale = Gtk.Scale(orientation=Gtk.Orientation.VERTICAL)
-+ preampscale.set_hexpand(True)
-+ preampscale.set_vexpand(True)
-+ else:
-+ preampscale = Gtk.VScale()
- preampscale.set_draw_value(0)
- preampscale.set_inverted(1)
-- preampscale.set_value_pos(Gtk.POS_BOTTOM)
-+ preampscale.set_value_pos(Gtk.PositionType.BOTTOM)
- preampscale.set_range(0.0, 2.0)
- preampscale.set_increments(1, 0.1)
- preampscale.set_digits(1)
-@@ -423,16 +447,25 @@ class Equalizer:
- label.set_markup("Preamp")
- preampscalevalue = Gtk.Label()
- preampscalevalue.set_markup(str(preampscale.get_value()) + "x")
-- table.attach(label, 1, 2, 0, 1)
-- table.attach(preampscale, 1, 2, 1, 2)
-- table.attach(preampscalevalue, 1, 2, 2, 3)
-+ if GTK_VERSION >= (3, 10, 0):
-+ grid.attach(label, 1, 0, 1, 1)
-+ grid.attach(preampscale, 1, 1, 1, 1)
-+ grid.attach(preampscalevalue, 1, 2, 1, 1)
-+ else:
-+ grid.attach(label, 1, 2, 0, 1, yoptions=Gtk.AttachOptions.SHRINK)
-+ grid.attach(preampscale, 1, 2, 1, 2, yoptions=(Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL))
-+ grid.attach(preampscalevalue, 1, 2, 2, 3, yoptions=Gtk.AttachOptions.SHRINK)
- #label.show()
- #preampscale.show()
- #preampscalevalue.show()
-
- # Separator between preamp and bands
-- separator = Gtk.VSeparator()
-- table.attach(separator, 2, 3, 1, 2)
-+ if GTK_VERSION >= (3, 10, 0):
-+ separator = Gtk.Separator(orientation=Gtk.Orientation.VERTICAL)
-+ grid.attach(separator, 2, 1, 1, 1)
-+ else:
-+ separator = Gtk.VSeparator()
-+ grid.attach(separator, 2, 3, 1, 2)
- #separator.show()
-
- # Equalizer bands
-@@ -441,11 +474,16 @@ class Equalizer:
- self.labels = {}
- self.scalevalues = {}
- for x in range(1,num_ladspa_controls+1):
-- scale = Gtk.VScale()
-+ if GTK_VERSION >= (3, 2, 0):
-+ scale = Gtk.Scale(orientation=Gtk.Orientation.VERTICAL)
-+ scale.set_hexpand(True)
-+ scale.set_vexpand(True)
-+ else:
-+ scale = Gtk.VScale()
- self.scales[x] = scale
- scale.set_draw_value(0)
- scale.set_inverted(1)
-- scale.set_value_pos(Gtk.POS_BOTTOM)
-+ scale.set_value_pos(Gtk.PositionType.BOTTOM)
- scale.set_range(float(ranges[0]), float(ranges[1]))
- scale.set_increments(1, 0.1)
- scale.set_digits(1)
-@@ -459,67 +497,80 @@ class Equalizer:
- scalevalue = Gtk.Label()
- self.scalevalues[x] = scalevalue
- scalevalue.set_markup("" + str(scale.get_value()) + "\ndB")
-- table.attach(label, x + 2, x + 3, 0, 1)
-- table.attach(scale, x + 2, x + 3, 1, 2)
-- table.attach(scalevalue, x + 2, x + 3, 2, 3)
-+ if GTK_VERSION >= (3, 10, 0):
-+ grid.attach(label, x + 2, 0, 1, 1)
-+ grid.attach(scale, x + 2, 1, 1, 1)
-+ grid.attach(scalevalue, x + 2, 2, 1, 1)
-+ else:
-+ grid.attach(label, x + 2, x + 3, 0, 1, yoptions=Gtk.AttachOptions.SHRINK)
-+ grid.attach(scale, x + 2, x + 3, 1, 2, yoptions=(Gtk.AttachOptions.EXPAND | Gtk.AttachOptions.FILL))
-+ grid.attach(scalevalue, x + 2, x + 3, 2, 3, yoptions=Gtk.AttachOptions.SHRINK)
- label.show()
- scale.show()
- scalevalue.show()
-
-- table.show()
-+ grid.show()
-
-- vbox2 = Gtk.VBox(True, 1)
-- vbox2.set_border_width(10)
-- hbox1.add(vbox2)
-+ if GTK_VERSION >= (3, 0, 0):
-+ vbox2 = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, homogeneous=True, spacing=1)
-+ vbox2.props.margin = 10
-+ hbox1.add(vbox2)
-+ else:
-+ vbox2 = Gtk.VBox(homogeneous=True, spacing=1)
-+ vbox2.set_border_width(10)
-+ hbox1.pack_start(vbox2, False, True, 0)
- vbox2.show()
-
- presetslabel = Gtk.Label()
- presetslabel.set_markup("Preset:")
-- vbox2.pack_start(presetslabel, False, False, 0)
-+ vbox2.add(presetslabel)
- presetslabel.show()
-
- global presetsbox
-- presetsbox = Gtk.combo_box_entry_new_text()
-- vbox2.pack_start(presetsbox, False, False, 0)
-+ presetsbox = Gtk.ComboBoxText.new_with_entry()
-+ vbox2.add(presetsbox)
- presetsbox.get_child().set_text(preset)
- for i in range(len(rawpresets)):
- presetsbox.append_text(rawpresets[i])
- presetsbox.connect("changed", self.on_presetsbox, x)
- presetsbox.show()
-
-- savepreset = Gtk.Button("Save Preset")
-- vbox2.pack_start(savepreset, False, False, 0)
-+ savepreset = Gtk.Button(label="Save Preset")
-+ vbox2.add(savepreset)
- savepreset.connect("clicked", self.on_savepreset)
- savepreset.show()
-
- global eqenabled
-- eqenabled = Gtk.CheckButton("EQ Enabled")
-+ eqenabled = Gtk.CheckButton(label="EQ Enabled")
- eqenabled.set_active(status)
-- eqenabled.unset_flags(Gtk.CAN_FOCUS)
-+ eqenabled.set_can_focus(False)
- eqenabled.connect("clicked", self.on_eqenabled)
-- vbox2.pack_start(eqenabled, False, False, 0)
-+ vbox2.add(eqenabled)
- eqenabled.show()
-
- global keepsettings
-- keepsettings = Gtk.CheckButton("Keep Settings")
-+ keepsettings = Gtk.CheckButton(label="Keep Settings")
- keepsettings.set_active(persistence)
-- keepsettings.unset_flags(Gtk.CAN_FOCUS)
-+ keepsettings.set_can_focus(False)
- keepsettings.connect("clicked", self.on_keepsettings)
-- vbox2.pack_start(keepsettings, False, False, 0)
-+ vbox2.add(keepsettings)
- keepsettings.show()
-
-- applysettings = Gtk.Button("Apply Settings")
-- vbox2.pack_start(applysettings, False, False, 0)
-+ applysettings = Gtk.Button(label="Apply Settings")
-+ vbox2.add(applysettings)
- applysettings.connect("clicked", self.on_applysettings)
- applysettings.show()
-
-- quitbutton = Gtk.Button("Quit")
-- vbox2.pack_start(quitbutton, False, False, 0)
-+ quitbutton = Gtk.Button(label="Quit")
-+ vbox2.add(quitbutton)
- quitbutton.connect("clicked", lambda w: Gtk.main_quit())
- quitbutton.show()
-
-- separator = Gtk.HSeparator()
-- vbox2.pack_start(separator, False, False, 0)
-+ if GTK_VERSION >= (3, 2, 0):
-+ separator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)
-+ else:
-+ separator = Gtk.HSeparator()
-+ vbox2.add(separator)
- separator.set_size_request(100, 10)
- #separator.show()
-
diff --git a/0009-do-not-zero-volume.patch b/0009-do-not-zero-volume.patch
deleted file mode 100644
index a7a28d7..0000000
--- a/0009-do-not-zero-volume.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/usr/bin/pulseaudio-equalizer
-+++ b/usr/bin/pulseaudio-equalizer
-@@ -115,8 +115,14 @@ fi
- # Get sink names and volumes
- PA_LADSPA_SINK="ladspa_output.$PA_LADSPA_PLUGIN.$PA_LADSPA_LABEL"
- PA_CURRENT_SINK=$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')
--PA_CURRENT_VOLUME=$(pacmd list | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'volume: 0:' | awk '{print $NF}' | sed 's/%//g')
--PA_REAL_VOLUME=$((PA_CURRENT_VOLUME*65536/100))
-+if [ "$( (echo '4.0'; pulseaudio --version | awk '{print $2}') | sort -V | sed -n '2p' )" != '4.0' ]; then
-+ # The version of PulseAudio is higher than 4.0.
-+ PA_CURRENT_VOLUME=$(pacmd list | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'volume: front-left:' | awk '{print $3}')
-+ PA_REAL_VOLUME="$PA_CURRENT_VOLUME"
-+else
-+ PA_CURRENT_VOLUME=$(pacmd list | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'volume: 0:' | awk '{print $NF}' | sed 's/%//g')
-+ PA_REAL_VOLUME=$((PA_CURRENT_VOLUME*65536/100))
-+fi
- PA_REAL_PREAMP_FLOAT=$(echo "$PA_PREAMP*65536" | bc)
- PA_REAL_PREAMP=${PA_REAL_PREAMP_FLOAT/\.*}
- PA_CURRENT_MUTE=$(pacmd list-sinks | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'muted: ' | sed -e 's/[\t]muted: no/0/g;s/[\t]muted: yes/1/g')
diff --git a/pulseaudio-equalizer-3.0.2.tar.gz b/pulseaudio-equalizer-3.0.2.tar.gz
new file mode 100644
index 0000000..356334e
--- /dev/null
+++ b/pulseaudio-equalizer-3.0.2.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2dd14d7bdbc806bfa239bae49dbeef8ccd8bbdb53a413bd83d0ca32390ceae6f
+size 36168
diff --git a/pulseaudio-equalizer-fix-deprecated-argument.patch b/pulseaudio-equalizer-fix-deprecated-argument.patch
new file mode 100644
index 0000000..b87e71d
--- /dev/null
+++ b/pulseaudio-equalizer-fix-deprecated-argument.patch
@@ -0,0 +1,11 @@
+--- a/bin/pulseaudio-equalizer.in
++++ b/bin/pulseaudio-equalizer.in
+@@ -403,7 +403,7 @@ if [ "$1" = 'enable' ]; then
+
+ # Load LADSPA sink module
+ echo 'Loading module-ladspa-sink...'
+- echo >>/tmp/eqcommands.sh "load-module module-ladspa-sink sink_name=$PA_LADSPA_SINK master=$PA_MASTER_SINK plugin=$PA_LADSPA_PLUGIN label=$PA_LADSPA_LABEL control=$PA_LADSPA_CONTROLS"
++ echo >>/tmp/eqcommands.sh "load-module module-ladspa-sink sink_name=$PA_LADSPA_SINK sink_master=$PA_MASTER_SINK plugin=$PA_LADSPA_PLUGIN label=$PA_LADSPA_LABEL control=$PA_LADSPA_CONTROLS"
+
+ # Transfer current sink mute/volume to LADSPA sink
+ echo "Transferring current mute ($PA_CURRENT_MUTE) & volume ($PA_CURRENT_VOLUME%) to LADSPA sink ($PA_LADSPA_SINK)..."
diff --git a/0008-fix-locale-issues.patch b/pulseaudio-equalizer-fix-locale-issues.patch
similarity index 54%
rename from 0008-fix-locale-issues.patch
rename to pulseaudio-equalizer-fix-locale-issues.patch
index 192db5e..dbd0fae 100644
--- a/0008-fix-locale-issues.patch
+++ b/pulseaudio-equalizer-fix-locale-issues.patch
@@ -1,49 +1,49 @@
---- a/usr/bin/pulseaudio-equalizer
-+++ b/usr/bin/pulseaudio-equalizer
-@@ -18,6 +18,7 @@ PA_CONTROL_MAX="30"
- PA_PREAMP="1.0"
- PA_CURRENT_PRESET=""
+--- a/bin/pulseaudio-equalizer.in
++++ b/bin/pulseaudio-equalizer.in
+@@ -21,6 +21,7 @@ PA_CONTROL_MAX='30'
+ PA_PREAMP='1.0'
+ PA_CURRENT_PRESET=''
+LC_MESSAGES=C
if [ -z "$XDG_CONFIG_HOME" ]; then
- CONFIG_DIR="$HOME/.config/pulse"
+ CONFIG_DIR="$HOME"/.config/pulse
else
-@@ -113,20 +114,20 @@ fi
+@@ -110,20 +111,20 @@ fi
# Get sink names and volumes
PA_LADSPA_SINK="ladspa_output.$PA_LADSPA_PLUGIN.$PA_LADSPA_LABEL"
--PA_CURRENT_SINK=$(pacmd stat | grep "Default sink name" | sed 's/Default sink name: //g')
--PA_CURRENT_VOLUME=$(pacmd list | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'volume: 0:' | awk '{print $NF}' | sed 's/%//g')
-+PA_CURRENT_SINK=$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')
-+PA_CURRENT_VOLUME=$(pacmd list | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'volume: 0:' | awk '{print $NF}' | sed 's/%//g')
+-PA_CURRENT_SINK=$(pacmd stat | grep --color=never 'Default sink name' | sed 's/Default sink name: //g')
+-PA_CURRENT_VOLUME=$(pacmd list | grep --color=never -A20 "<$PA_CURRENT_SINK>" | grep --color=never -m1 'volume: ' | grep --color=never -Po '(\d+)%' | awk 'NR==1{sub(/%/,"",$1); print $1}')
++PA_CURRENT_SINK="$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')"
++PA_CURRENT_VOLUME="$(pacmd list | iconv -c -t ascii | grep --color=never -A20 "<$PA_CURRENT_SINK>" | grep --color=never -m1 'volume: ' | grep --color=never -Po '(\d+)%' | awk 'NR==1{sub(/%/,"",$1); print $1}')"
PA_REAL_VOLUME=$((PA_CURRENT_VOLUME*65536/100))
PA_REAL_PREAMP_FLOAT=$(echo "$PA_PREAMP*65536" | bc)
PA_REAL_PREAMP=${PA_REAL_PREAMP_FLOAT/\.*}
--PA_CURRENT_MUTE=$(pacmd list-sinks | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'muted: ' | sed 's/[\t]muted: no/0/g' | sed 's/[\t]muted: yes/1/g')
-+PA_CURRENT_MUTE=$(pacmd list-sinks | iconv -c -t ascii | grep -A20 "<$PA_CURRENT_SINK>" | grep -m1 'muted: ' | sed -e 's/[\t]muted: no/0/g;s/[\t]muted: yes/1/g')
+-PA_CURRENT_MUTE=$(pacmd list-sinks | grep --color=never -A20 "<$PA_CURRENT_SINK>" | grep -m1 'muted: ' | sed 's/[\t]muted: no/0/g' | sed 's/[\t]muted: yes/1/g')
++PA_CURRENT_MUTE="$(pacmd list-sinks | iconv -c -t ascii | grep --color=never -A20 "<$PA_CURRENT_SINK>" | grep -m1 'muted: ' | sed -e 's/[\t]muted: no/0/g;s/[\t]muted: yes/1/g')"
# Check if equalizer is running and get accurate master sink name
if [ "$PA_CURRENT_SINK" = "$PA_LADSPA_SINK" ]; then
PA_EQUALIZER_STATUS=1
-- PA_MASTER_SINK=$(pacmd info | grep -A30 "<$PA_CURRENT_SINK>" | grep -m1 'device.master_device = ' | sed 's/device.master_device = //g' | sed 's/"//g' | sed 's/^[ \t]*//')
-+ PA_MASTER_SINK=$(pacmd info | iconv -c -t ascii | grep -A30 "<$PA_CURRENT_SINK>" | grep -m1 'device.master_device = ' | sed -e 's/device.master_device = //g;s/"//g;s/^[ \t]*//')
+- PA_MASTER_SINK=$(pacmd info | grep --color=never -A30 "<$PA_CURRENT_SINK>" | grep --color=never -m1 'device.master_device = ' | sed 's/device.master_device = //g' | sed 's/"//g' | sed 's/^[ \t]*//')
++ PA_MASTER_SINK="$(pacmd info | iconv -c -t ascii | grep --color=never -A30 "<$PA_CURRENT_SINK>" | grep --color=never -m1 'device.master_device = ' | sed -e 's/device.master_device = //g;s/"//g;s/^[ \t]*//')"
else
PA_EQUALIZER_STATUS=0
-- PA_MASTER_SINK=$(pacmd stat | grep 'Default sink name' | sed 's/Default sink name: //g')
-+ PA_MASTER_SINK=$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')
- fi
+- PA_MASTER_SINK=$(pacmd stat | grep --color=never 'Default sink name' | sed 's/Default sink name: //g')
++ PA_MASTER_SINK="$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')"
+ fi
# Check if equalizer is set as persistent
-@@ -342,16 +343,16 @@ if [ "$1" = "disable" -o "$1" = "enable"
+@@ -368,16 +369,16 @@ if [ "$1" = 'disable' ] || [ "$1" = 'ena
# Unload & reload stream-restore module
- echo "Unloading & reloading stream-restore module..."
+ echo 'Unloading & reloading stream-restore module...'
- echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | grep -B1 -m1 'name: ' | grep ' index: ' | sed 's/ index: //g')"
+ echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | iconv -c -t ascii | grep -B1 -m1 'name: ' | sed -e '/ index: /!d;s/ index: //g')"
- echo >>/tmp/eqcommands.sh "load-module module-stream-restore"
+ echo >>/tmp/eqcommands.sh 'load-module module-stream-restore'
# Unload LADSPA sink module (if it is already loaded)
- echo "Unloading module-ladspa-sink..."
+ echo 'Unloading module-ladspa-sink...'
- echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | grep -B1 -m1 'name: ' | grep ' index: ' | sed 's/ index: //g')"
+ echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | iconv -c -t ascii | grep -B1 -m1 'name: ' | sed -e '/ index: /!d;s/ index: //g')"
@@ -54,16 +54,16 @@
# Transfer current mute/sink volume to ALSA sink
echo "Transferring current mute ($PA_CURRENT_MUTE) & volume ($PA_CURRENT_VOLUME%) to ALSA sink ($PA_MASTER_SINK)..."
-@@ -371,7 +372,7 @@ if [ "$1" = "enable" ]; then
+@@ -397,7 +398,7 @@ if [ "$1" = 'enable' ]; then
# Unload & reload stream-restore module with restore_device option disabled (to ensure that previously cached per-client sinks are not used)
- echo "Unloading & reloading stream-restore module..."
+ echo 'Unloading & reloading stream-restore module...'
- echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | grep -B1 -m1 'name: ' | grep ' index: ' | sed 's/ index: //g')"
+ echo >>/tmp/eqcommands.sh "unload-module $(pacmd list | iconv -c -t ascii | grep -B1 -m1 'name: ' | sed -e '/ index: /!d;s/ index: //g')"
- echo >>/tmp/eqcommands.sh "load-module module-stream-restore restore_device=false"
+ echo >>/tmp/eqcommands.sh 'load-module module-stream-restore restore_device=false'
# Load LADSPA sink module
-@@ -394,7 +395,7 @@ if [ "$1" = "enable" ]; then
+@@ -420,7 +421,7 @@ if [ "$1" = 'enable' ]; then
# Move currently active client sinks to LADSPA sink
echo "Moving active PulseAudio clients to LADSPA sink ($PA_LADSPA_SINK)..."
@@ -72,12 +72,12 @@
# Execute all queued commands (for potential speed benefit)...
pacmd /dev/null
-@@ -428,7 +429,7 @@ if [ "$1" = "status" ]; then
+@@ -454,7 +455,7 @@ if [ "$1" = 'status' ]; then
fi
# Refresh current sink status and display equalizer information
--PA_CURRENT_SINK=$(pacmd stat | grep "Default sink name" | sed 's/Default sink name: //g')
-+PA_CURRENT_SINK=$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')
+-PA_CURRENT_SINK="$(pacmd stat | grep "Default sink name" | sed 's/Default sink name: //g')"
++PA_CURRENT_SINK="$(pacmd stat | sed -e '/Default sink name/!d;s/Default sink name: //g')"
if [ "$PA_CURRENT_SINK" = "$PA_LADSPA_SINK" ]; then
- echo "-------------------------------------"
- echo "Equalizer status: [enabled]"
+ echo '-------------------------------------'
+ echo 'Equalizer status: [enabled]'
diff --git a/pulseaudio-equalizer.changes b/pulseaudio-equalizer.changes
index 56e43cd..1074144 100644
--- a/pulseaudio-equalizer.changes
+++ b/pulseaudio-equalizer.changes
@@ -1,3 +1,20 @@
+-------------------------------------------------------------------
+Sat Nov 6 19:51:16 UTC 2021 - Alexei Sorokin
+
+- Update to version 3.0.2:
+ * No changelog available.
+- Drop 0000-add-python3-compat.patch, 0001-pulse-path.patch,
+ 0003-force-default-persistence-value.patch,
+ 0004-do-not-crash-on-missing-preset.patch, 0005-window-icon.patch,
+ 0007-pygobject3-port.patch, 0009-do-not-zero-volume.patch: fixed
+ upstream.
+- Replace 0006-fix-desktop.patch with %suse_update_desktop_file,
+ the icon change has been done upstream.
+- Rebase and rename 0008-fix-locale-issues.patch to
+ pulseaudio-equalizer-fix-locale-issues.patch
+- Add pulseaudio-equalizer-fix-deprecated-argument.patch:
+ Fix use of a deprecated module argument.
+
-------------------------------------------------------------------
Sun Feb 25 18:16:05 UTC 2018 - sor.alexei@meowr.ru
diff --git a/pulseaudio-equalizer.spec b/pulseaudio-equalizer.spec
index e56b0fb..9999683 100644
--- a/pulseaudio-equalizer.spec
+++ b/pulseaudio-equalizer.spec
@@ -16,87 +16,55 @@
#
+%define _name pulseaudio-equalizer-ladspa
Name: pulseaudio-equalizer
-Version: 2.7.0.2
+Version: 3.0.2
Release: 0
Summary: PulseAudio's LADSPA plugin graphical user interface
License: GPL-3.0-or-later
-Group: Productivity/Multimedia/Sound/Mixers
-URL: https://ubuntuforums.org/showthread.php?t=1308838
-Source: https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8/+files/%{name}_%{version}.orig.tar.gz
-# PATCH-FIX-UPSTREAM 0000-add-python3-compat.patch sor.alexei@meowr.ru -- Add Python3 compatibility.
-Patch0: 0000-add-python3-compat.patch
-# PATCH-FIX-UPSTREAM 0001-pulse-path.patch webupd8@gmail.com -- Update path to PulseAudio files to the new one.
-Patch1: 0001-pulse-path.patch
-# PATCH-FIX-UPSTREAM 0002-remove-preamp.patch -- Remove preamp.
-Patch2: 0002-remove-preamp.patch
-# PATCH-FIX-UPSTREAM 0003-force-default-persistence-value.patch webupd8@gmail.com -- Force default persistence value.
-Patch3: 0003-force-default-persistence-value.patch
-# PATCH-FIX-UPSTREAM 0004-do-not-crash-on-missing-preset.patch webupd8@gmail.com -- Do not crash on missing preset.
-Patch4: 0004-do-not-crash-on-missing-preset.patch
-# PATCH-FIX-UPSTREAM 0005-window-icon.patch webupd8@gmail.com -- Correct way of setting window icon.
-Patch5: 0005-window-icon.patch
-# PATCH-FIX-UPSTREAM 0006-fix-desktop.patch malcolmlewis@opensuse.org -- Fix .desktop file.
-Patch6: 0006-fix-desktop.patch
-# PATCH-FIX-UPSTREAM 0007-pygobject3-port.patch sor.alexei@meowr.ru -- Port to PyGObject3 and GTK+3.
-Patch7: 0007-pygobject3-port.patch
-# PATCH-FIX-UPSTREAM 0008-fix-locale-issues.patch sor.alexei@meowr.ru -- Fix issues on non-Latin systems.
-Patch8: 0008-fix-locale-issues.patch
-# PATCH-FIX-UPSTREAM 0009-do-not-zero-volume.patch sor.alexei@meowr.ru -- Fix volume zeroing on fresh PulseAudio.
-Patch9: 0009-do-not-zero-volume.patch
+URL: https://github.com/pulseaudio-equalizer-ladspa/equalizer
+Source: https://github.com/pulseaudio-equalizer-ladspa/equalizer/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
+# PATCH-FIX-OPENSUSE pulseaudio-equalizer-fix-locale-issues.patch sor.alexei@meowr.ru -- Fix issues on non-Latin systems.
+Patch0: pulseaudio-equalizer-fix-locale-issues.patch
+# PATCH-FIX-OPENSUSE pulseaudio-equalizer-fix-deprecated-argument.patch sor.alexei@meowr.ru -- Fix use of a deprecated module argument.
+Patch1: pulseaudio-equalizer-fix-deprecated-argument.patch
BuildRequires: gobject-introspection-devel
+BuildRequires: meson
+BuildRequires: python3
BuildRequires: update-desktop-files
+Requires: bc
Requires: ladspa-swh-plugins
+# No support for pipewire-pulseaudio
Requires: pulseaudio
Requires: pulseaudio-utils
-Requires: python3
Requires: python3-gobject
-BuildArch: noarch
-%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
Requires: python3-gobject-Gdk
-%endif
+BuildArch: noarch
%description
GUI for PulseAudio's LADSPA interface using Steve Harris' Multiband EQ
(mbeq_1197) plugin.
%prep
-%setup -q -n %{name}
-%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p1
-%patch6
-%patch7 -p1
-%patch8 -p1
-%patch9 -p1
-sed -i '/^#!/s|env python$|python3|' .%{_datadir}/%{name}/%{name}.py
+%autosetup -n equalizer-%{version} -p1
%build
-# Nothing to build.
+%meson
+%meson_build
%install
-mkdir -p %{buildroot}%{_bindir}/ %{buildroot}%{_datadir}/%{name}/presets/
-install -Dpm 0755 .%{_bindir}/%{name}* %{buildroot}%{_bindir}/
-install -Dpm 0755 .%{_datadir}/%{name}/%{name}.py %{buildroot}%{_bindir}/%{name}-gtk
-install -Dpm 0644 .%{_datadir}/%{name}/presets/* %{buildroot}%{_datadir}/%{name}/presets/
-install -Dpm 0644 .%{_datadir}/applications/%{name}.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
+%meson_install
+sed -i '/^#!/s|env python3$|python3|' %{buildroot}%{_bindir}/%{name}-gtk
-%suse_update_desktop_file %{name}
-
-%if 0%{?suse_version} < 1500
-%post
-%desktop_database_post
-
-%postun
-%desktop_database_postun
-%endif
+%suse_update_desktop_file -r com.github.%{_name}.Equalizer AudioVideo Mixer GTK
%files
-%{_bindir}/%{name}*
-%{_datadir}/%{name}/
-%{_datadir}/applications/%{name}.desktop
+%license LICENSE
+%doc README.md
+%{_bindir}/%{name}
+%{_bindir}/%{name}-gtk
+%{_datadir}/%{_name}/
+%{_datadir}/applications/*%{_name}*.desktop
+%{python3_sitelib}/pulseeq/
%changelog
diff --git a/pulseaudio-equalizer_2.7.0.2.orig.tar.gz b/pulseaudio-equalizer_2.7.0.2.orig.tar.gz
deleted file mode 100644
index 1b3f143..0000000
--- a/pulseaudio-equalizer_2.7.0.2.orig.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e69fa0f0d820dad4b9333287a0ef94825998c76464182b8bbcea31dc97db3095
-size 9135