Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fix saving and deleting and make the gain indicators change when a pr…
…eset is applied
  • Loading branch information
freaktechnik committed Jun 7, 2014
1 parent 0b1fb0f commit cbad1be
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 41 deletions.
4 changes: 3 additions & 1 deletion app/content/bindings/eqBandSlider.xml
Expand Up @@ -138,6 +138,8 @@
} catch (err) {
dump("bandSlider.xml - onRemoteGainChange - " + err + "\n");
}
if (this.onchange != null)
this.onchange(this.bandIndex);
]]>
</body>
</method>
Expand Down Expand Up @@ -174,4 +176,4 @@

</binding>

</bindings>
</bindings>
56 changes: 29 additions & 27 deletions app/content/bindings/eqPresetList.xml
Expand Up @@ -55,6 +55,8 @@
<implementation>
<field name="_observer">null</field>
<field name="_presetList">document.getAnonymousElementByAttribute(this, "anonid", "eq-preset-list")</field>
<field name="_pName">null</field>
<field name="_mode">false</field>
<property name="_preset">
<getter>
<![CDATA[
Expand Down Expand Up @@ -122,19 +124,15 @@
this._presetList.label = this._mm.equalizer.currentPresetName;
this._commandListener = function(e) {
Components.utils.reportError("onCommand");
that.onCommand(e);
};
this._saveListener = function(e) {
Components.utils.reportError("onSave");
that.onSave(e);
};
this._deleteListener = function(e) {
Components.utils.reportError("onDelete");
that.onDelete(e);
};
this._textFieldListener = function(e) {
Components.utils.reportError("keys!");
that.onFieldChange(e);
}
this._presetList.addEventListener("command", this._commandListener, false);
Expand All @@ -145,7 +143,6 @@
document.getAnonymousElementByAttribute(this, "anonid", "eq-preset-reset")
.addEventListener("command", this._deleteListener, false);
this._presetList.inputField.addEventListener("input", this._textFieldListener, false);
Components.utils.reportError("construction done");
]]>
</constructor>
<destructor>
Expand All @@ -165,12 +162,18 @@
<method name="loadPresets">
<body>
<![CDATA[
var presets = this.ArrayConverter.JSArray(this._pm.presets);
var presets = this.ArrayConverter.JSArray(this._pm.presets),
lastPresetIndex = presets.length - 1;
presets.forEach(function(preset) {
this._presetList.appendItem(preset
.QueryInterface(Components.interfaces.ngIEqualizerPreset)
.name);
presets.forEach(function(preset, i, array) {
var name = preset.QueryInterface(Components.interfaces.ngIEqualizerPreset)
.name;
this._presetList.appendItem(name);
if(i == lastPresetIndex && this._mode) {
this._mode = false;
this.onPresetChange(that._pName, true);
}
}, this);
]]>
</body>
Expand All @@ -187,10 +190,7 @@
<parameter name="preset" />
<parameter name="updateBackend" />
<body>
<![CDATA[
Components.utils.reportError("onPresetChange");
this._presetList.select(preset);
<![CDATA[
var deleteButton = document.getAnonymousElementByAttribute(this, "anonid", "eq-preset-delete");
var resetButton = document.getAnonymousElementByAttribute(this, "anonid", "eq-preset-reset");
var mpCollection = this._mp.QueryInterface(Components.interfaces.ngIEqualizerPresetCollection);
Expand All @@ -213,8 +213,9 @@
resetButton.setAttribute("disabled", true);
}
this._presetList.select(preset);
if(updateBackend) {
Components.utils.reportError("Telling EQ to change to "+preset);
this._mm.equalizer.currentPresetName = preset;
}
]]>
Expand All @@ -224,7 +225,6 @@
<parameter name="event" />
<body>
<![CDATA[
Components.utils.reportError("Changing preset");
this.onPresetChange(this._preset, true);
]]>
</body>
Expand All @@ -233,29 +233,31 @@
<parameter name="event" />
<body>
<![CDATA[
var name = this._preset,
values = [],
existed = this._pm.QueryInterface(Components.interfaces.ngIEqualizerPresetCollection)
.hasPresetNamed(name);
var values = [],
Ci = Components.interfaces;
this._mode = true;
this._pName = this._preset;
for(var i = 0; i < 10; ++i) { // can't use bandCount here either.
var double = Components.classes["@mozilla.org/supports-double;1"]
.createInstance(Components.interfaces.nsISupportsDouble);
double.data = this._mm.equalizer.getBand(i).gain;
.createInstance(Ci.nsISupportsDouble);
double.data = this._mm.equalizer.getBand(i)
.QueryInterface(Ci.sbIMediacoreEqualizerBand).gain;
values.push(double);
}
this._mp.savePreset(name, this.ArrayConverter.nsIArray(values));
if(!existed)
this.onPresetChange(name, true);
this._mp.savePreset(this._pName, this.ArrayConverter.nsIArray(values));
]]>
</body>
</method>
<method name="onDelete">
<parameter name="event" />
<body>
<![CDATA[
this._mp.deletePreset(this._preset);
this._mode = true;
this._pName = this._preset;
this._mp.deletePreset(this._pName);
]]>
</body>
</method>
Expand Down
23 changes: 10 additions & 13 deletions components/mediacore/base/src/sbBaseMediacoreMultibandEqualizer.cpp
Expand Up @@ -410,26 +410,23 @@ sbBaseMediacoreMultibandEqualizer::SetCurrentPresetName(const nsAString& aCurren

nsresult rv;

if(aCurrentPresetName == mCurrentPresetName)
{
return NS_OK;
}

NS_ENSURE_TRUE(mPrefs, NS_ERROR_NOT_INITIALIZED);
NS_ENSURE_TRUE(mPresets, NS_ERROR_NOT_INITIALIZED);

/* Not sure if this is needed and even works (->GetBands instatiates its own mon)
NS_ENSURE_TRUE(mMonitor, NS_ERROR_NOT_INITIALIZED);
nsAutoMonitor mon(mMonitor);*/

LOG(("Updating currentPreset pref"));
nsCOMPtr<nsISupportsString> data (do_CreateInstance("@mozilla.org/supports-string;1", &rv));
NS_ENSURE_SUCCESS(rv, rv);
rv = data->SetData(mCurrentPresetName);
NS_ENSURE_SUCCESS(rv, rv);
rv = mPrefs->SetComplexValue(SB_EQ_PRESET_PREF, NS_GET_IID(nsISupportsString), data);
NS_ENSURE_SUCCESS(rv, rv);
if(mCurrentPresetName != aCurrentPresetName)
{
LOG(("Updating currentPreset pref"));
nsCOMPtr<nsISupportsString> data (do_CreateInstance("@mozilla.org/supports-string;1", &rv));
NS_ENSURE_SUCCESS(rv, rv);
rv = data->SetData(mCurrentPresetName);
NS_ENSURE_SUCCESS(rv, rv);
rv = mPrefs->SetComplexValue(SB_EQ_PRESET_PREF, NS_GET_IID(nsISupportsString), data);
NS_ENSURE_SUCCESS(rv, rv);
}

// don't continue to apply a preset if we've no preset to apply.
// In theory this shortcut shouldn't be needed, but it for sure is
Expand Down

0 comments on commit cbad1be

Please sign in to comment.