Check sample rate on pop up
This commit is contained in:
parent
ec4e3bca02
commit
5e8f17eaf0
1 changed files with 28 additions and 19 deletions
47
extension.js
47
extension.js
|
@ -31,7 +31,9 @@ const PopupMenu = imports.ui.popupMenu;
|
||||||
|
|
||||||
const _ = ExtensionUtils.gettext;
|
const _ = ExtensionUtils.gettext;
|
||||||
|
|
||||||
allowedRateElements = [];
|
let allowedRateElements = [];
|
||||||
|
let allowedSampleRates = [];
|
||||||
|
let indicatorButton;
|
||||||
|
|
||||||
const Indicator = GObject.registerClass(
|
const Indicator = GObject.registerClass(
|
||||||
class Indicator extends PanelMenu.Button {
|
class Indicator extends PanelMenu.Button {
|
||||||
|
@ -44,35 +46,33 @@ const Indicator = GObject.registerClass(
|
||||||
}));
|
}));
|
||||||
|
|
||||||
let sampleRate = getForcedSampleRate();
|
let sampleRate = getForcedSampleRate();
|
||||||
let allowedRates = getAllowedSampleRates();
|
allowedSampleRates = getAllowedSampleRates();
|
||||||
allowedRateElements = [];
|
allowedRateElements = [];
|
||||||
|
|
||||||
for (let i = 0; i < allowedRates.length; i++) {
|
for (let i = 0; i < allowedSampleRates.length; i++) {
|
||||||
let allowedRate = new PopupMenu.PopupMenuItem(_("Sample Rate: " + allowedRates[i]));
|
let allowedRate = new PopupMenu.PopupMenuItem(_("Sample Rate: " + allowedSampleRates[i]));
|
||||||
|
|
||||||
if (allowedRates[i] == sampleRate) {
|
if (allowedSampleRates[i] == sampleRate) {
|
||||||
allowedRate.setOrnament(PopupMenu.Ornament.DOT);
|
allowedRate.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
allowedRate.connect('activate', () => {
|
allowedRate.connect('activate', () => {
|
||||||
console.log("set sample rate " + allowedRates[i]);
|
|
||||||
|
|
||||||
for (let k = 0; k < allowedRateElements.length; k++) {
|
for (let k = 0; k < allowedRateElements.length; k++) {
|
||||||
allowedRateElements[k].setOrnament(PopupMenu.Ornament.NONE);
|
allowedRateElements[k].setOrnament(PopupMenu.Ornament.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
setSampleRate(allowedRates[i]);
|
setSampleRate(allowedSampleRates[i]);
|
||||||
|
|
||||||
// sanity check sample rate
|
// sanity check sample rate
|
||||||
let forcedRate = getForcedSampleRate();
|
let forcedRate = getForcedSampleRate();
|
||||||
|
|
||||||
if (forcedRate == allowedRates[i]) {
|
if (forcedRate == allowedSampleRates[i]) {
|
||||||
allowedRate.setOrnament(PopupMenu.Ornament.DOT);
|
allowedRate.setOrnament(PopupMenu.Ornament.DOT);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this.menu.addMenuItem(allowedRate);
|
this.menu.addMenuItem(allowedRate);
|
||||||
allowedRateElements.push(allowedRate);
|
allowedRateElements.push(allowedRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -85,13 +85,26 @@ class Extension {
|
||||||
}
|
}
|
||||||
|
|
||||||
enable() {
|
enable() {
|
||||||
this._indicator = new Indicator();
|
indicatorButton = new Indicator();
|
||||||
Main.panel.addToStatusArea(this._uuid, this._indicator);
|
|
||||||
|
indicatorButton.connect('button-press-event', () => {
|
||||||
|
let sampleRate = getForcedSampleRate();
|
||||||
|
|
||||||
|
for (let k = 0; k < allowedRateElements.length; k++) {
|
||||||
|
if (allowedSampleRates[k] == sampleRate) {
|
||||||
|
allowedRateElements[k].setOrnament(PopupMenu.Ornament.DOT);
|
||||||
|
} else {
|
||||||
|
allowedRateElements[k].setOrnament(PopupMenu.Ornament.NONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Main.panel.addToStatusArea(this._uuid, indicatorButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
disable() {
|
disable() {
|
||||||
this._indicator.destroy();
|
indicatorButton.destroy();
|
||||||
this._indicator = null;
|
indicatorButton = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,16 +123,12 @@ function getForcedSampleRate() {
|
||||||
|
|
||||||
for (let i = 0; i < lines.length; i++) {
|
for (let i = 0; i < lines.length; i++) {
|
||||||
if (lines[i].includes('clock.force-rate')) {
|
if (lines[i].includes('clock.force-rate')) {
|
||||||
console.log("found current force rate setting");
|
|
||||||
|
|
||||||
let phrases = lines[i].split(" ");
|
let phrases = lines[i].split(" ");
|
||||||
|
|
||||||
for (let j = 0; j < phrases.length; j++) {
|
for (let j = 0; j < phrases.length; j++) {
|
||||||
if (phrases[j].includes("value")) {
|
if (phrases[j].includes("value")) {
|
||||||
let value = phrases[j].slice(7, -1);
|
let value = phrases[j].slice(7, -1);
|
||||||
|
|
||||||
console.log("with current value " + value);
|
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue