a few changes
This commit is contained in:
parent
8c0693f810
commit
25ecd01890
|
@ -6,8 +6,9 @@ vimix-kde-git
|
||||||
vimix-gtk-themes-git
|
vimix-gtk-themes-git
|
||||||
kvantum-theme-vimix-git
|
kvantum-theme-vimix-git
|
||||||
imageburner
|
imageburner
|
||||||
feathernotes-git
|
|
||||||
bitmask
|
bitmask
|
||||||
|
gnome-fuzzy-app-search-git
|
||||||
|
openrgb
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -88,6 +89,9 @@ dconf-editor
|
||||||
dmidecode
|
dmidecode
|
||||||
gdm
|
gdm
|
||||||
gedit
|
gedit
|
||||||
|
|
||||||
|
feathernotes
|
||||||
|
|
||||||
gtksourceview-pkgbuild #highlight for PKGBUILD
|
gtksourceview-pkgbuild #highlight for PKGBUILD
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
gnome-control-center
|
gnome-control-center
|
||||||
|
@ -102,7 +106,6 @@ gnome-settings-daemon
|
||||||
gnome-shell
|
gnome-shell
|
||||||
gnome-system-log
|
gnome-system-log
|
||||||
gnome-system-monitor
|
gnome-system-monitor
|
||||||
gnome-terminal
|
|
||||||
gnome-themes-standard
|
gnome-themes-standard
|
||||||
gnome-user-docs
|
gnome-user-docs
|
||||||
gnome-tweaks
|
gnome-tweaks
|
||||||
|
@ -130,6 +133,7 @@ inxi
|
||||||
kernel-alive
|
kernel-alive
|
||||||
pacui
|
pacui
|
||||||
mc
|
mc
|
||||||
|
|
||||||
########
|
########
|
||||||
manjaro-alsa
|
manjaro-alsa
|
||||||
manjaro-hotfixes
|
manjaro-hotfixes
|
||||||
|
@ -165,7 +169,6 @@ avahi
|
||||||
networkmanager
|
networkmanager
|
||||||
ntp
|
ntp
|
||||||
openssh
|
openssh
|
||||||
terminus-font-otb
|
|
||||||
tracker
|
tracker
|
||||||
tracker-miners
|
tracker-miners
|
||||||
qgnomeplatform
|
qgnomeplatform
|
||||||
|
|
|
@ -4,6 +4,7 @@ autoReplace=false
|
||||||
autoSave=1
|
autoSave=1
|
||||||
noIndent=false
|
noIndent=false
|
||||||
noWrap=false
|
noWrap=false
|
||||||
|
openLastFile=true
|
||||||
scrollJumpWorkaround=false
|
scrollJumpWorkaround=false
|
||||||
|
|
||||||
[window]
|
[window]
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const VolumeMenu = imports.ui.status.volume;
|
const VolumeMenu = imports.ui.status.volume;
|
||||||
const {Atk, St, GObject, GLib} = imports.gi;
|
const { Atk, St, GObject, GLib } = imports.gi;
|
||||||
|
|
||||||
const Gvc = imports.gi.Gvc;
|
const Gvc = imports.gi.Gvc;
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
@ -29,14 +29,16 @@ const _d = Lib._log;
|
||||||
const Prefs = Me.imports.prefs;
|
const Prefs = Me.imports.prefs;
|
||||||
const SignalManager = Lib.SignalManager;
|
const SignalManager = Lib.SignalManager;
|
||||||
|
|
||||||
|
let maxId = -1;
|
||||||
|
|
||||||
var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
var SoundDeviceChooserBase = class SoundDeviceChooserBase {
|
||||||
|
|
||||||
constructor(deviceType) {
|
constructor(deviceType) {
|
||||||
_d("SDC: init");
|
_d("SDC: init");
|
||||||
this.menuItem = new PopupMenu.PopupSubMenuMenuItem ('Extension initialising...', true);
|
this.menuItem = new PopupMenu.PopupSubMenuMenuItem('Extension initialising...', true);
|
||||||
this.deviceType = deviceType;
|
this.deviceType = deviceType;
|
||||||
this._devices = {};
|
this._devices = {};
|
||||||
|
this._cards = [];
|
||||||
this._availableDevicesIds = {};
|
this._availableDevicesIds = {};
|
||||||
this._control = VolumeMenu.getMixerControl();
|
this._control = VolumeMenu.getMixerControl();
|
||||||
this._settings = Lib.getSettings(Prefs.SETTINGS_SCHEMA);
|
this._settings = Lib.getSettings(Prefs.SETTINGS_SCHEMA);
|
||||||
|
@ -44,9 +46,9 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
this._setLog();
|
this._setLog();
|
||||||
this._signalManager = new SignalManager();
|
this._signalManager = new SignalManager();
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.ENABLE_LOG, this._setLog.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.ENABLE_LOG, this._setLog.bind(this));
|
||||||
|
|
||||||
if(this._control.get_state() == Gvc.MixerControlState.READY) {
|
if (this._control.get_state() == Gvc.MixerControlState.READY) {
|
||||||
this._onControlStateChanged();
|
this._onControlStateChanged();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -54,28 +56,31 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_setLog(){ Lib.setLog(this._settings.get_boolean(Prefs.ENABLE_LOG));}
|
_setLog() { Lib.setLog(this._settings.get_boolean(Prefs.ENABLE_LOG)); }
|
||||||
|
|
||||||
_onControlStateChanged() {
|
_onControlStateChanged() {
|
||||||
if(this._control.get_state() == Gvc.MixerControlState.READY) {
|
if (this._control.get_state() == Gvc.MixerControlState.READY) {
|
||||||
if(!this._initialised) {
|
if (!this._initialised) {
|
||||||
this._initialised = true;
|
this._initialised = true;
|
||||||
|
|
||||||
this._signalManager.addSignal(this._control, this.deviceType + "-added", this._deviceAdded.bind(this));
|
this._signalManager.addSignal(this._control, this.deviceType + "-added", this._deviceAdded.bind(this));
|
||||||
this._signalManager.addSignal(this._control, this.deviceType + "-removed", this._deviceRemoved.bind(this));
|
this._signalManager.addSignal(this._control, this.deviceType + "-removed", this._deviceRemoved.bind(this));
|
||||||
this._signalManager.addSignal(this._control, "active-" + this.deviceType + "-update", this._deviceActivated.bind(this));
|
this._signalManager.addSignal(this._control, "active-" + this.deviceType + "-update", this._deviceActivated.bind(this));
|
||||||
|
this._signalManager.addSignal(this._control, "card-removed", this._updateCards.bind(this));
|
||||||
|
this._signalManager.addSignal(this._control, "card-added", this._updateCards.bind(this));
|
||||||
|
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.HIDE_ON_SINGLE_DEVICE,this._setChooserVisibility.bind(this) );
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.HIDE_ON_SINGLE_DEVICE, this._setChooserVisibility.bind(this));
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.SHOW_PROFILES , this._setProfileVisibility.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.SHOW_PROFILES, this._setProfileVisibility.bind(this));
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.ICON_THEME , this._setIcons.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.ICON_THEME, this._setIcons.bind(this));
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.HIDE_MENU_ICONS , this._setIcons.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.HIDE_MENU_ICONS, this._setIcons.bind(this));
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + Prefs.PORT_SETTINGS , this._resetDevices.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + Prefs.PORT_SETTINGS, this._resetDevices.bind(this));
|
||||||
|
|
||||||
this._show_device_signal = Prefs["SHOW_" + this.deviceType.toUpperCase() + "_DEVICES"];
|
this._show_device_signal = Prefs["SHOW_" + this.deviceType.toUpperCase() + "_DEVICES"];
|
||||||
|
|
||||||
this._signalManager.addSignal(this._settings,"changed::" + this._show_device_signal, this._setVisibility.bind(this));
|
this._signalManager.addSignal(this._settings, "changed::" + this._show_device_signal, this._setVisibility.bind(this));
|
||||||
|
|
||||||
this._portsSettings = JSON.parse(this._settings.get_string(Prefs.PORT_SETTINGS));
|
//this._portsSettings = JSON.parse(this._settings.get_string(Prefs.PORT_SETTINGS));
|
||||||
|
this._portsSettings = Prefs.getPortsFromSettings(this._settings);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* There is no direct way to get all the UI devices from
|
* There is no direct way to get all the UI devices from
|
||||||
|
@ -86,33 +91,35 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let id = 0;
|
let id = 0;
|
||||||
let maxId = -1;
|
if (maxId < 0) {
|
||||||
let dummyDevice = new Gvc.MixerUIDevice();
|
let dummyDevice = new Gvc.MixerUIDevice();
|
||||||
maxId = dummyDevice.get_id();
|
maxId = dummyDevice.get_id();
|
||||||
|
}
|
||||||
_d("Max Id:" + maxId);
|
_d("Max Id:" + maxId);
|
||||||
|
|
||||||
let defaultDevice = this.getDefaultDevice();
|
let defaultDevice = this.getDefaultDevice();
|
||||||
while(++id < maxId) {
|
while (++id < maxId) {
|
||||||
let uidevice = this._deviceAdded(this._control, id);
|
let uidevice = this._deviceAdded(this._control, id);
|
||||||
if(uidevice) {
|
if (uidevice) {
|
||||||
let stream = this._control.get_stream_from_device(uidevice);
|
let stream = this._control.get_stream_from_device(uidevice);
|
||||||
if(stream) {
|
if (stream) {
|
||||||
let stream_port = stream.get_port();
|
let stream_port = stream.get_port();
|
||||||
let uidevice_port = uidevice.get_port();
|
let uidevice_port = uidevice.get_port();
|
||||||
|
|
||||||
if(((!stream_port && !uidevice_port) ||
|
if (((!stream_port && !uidevice_port) ||
|
||||||
(stream_port && stream_port.port === uidevice_port)) &&
|
(stream_port && stream_port.port === uidevice_port)) &&
|
||||||
stream == defaultDevice) {
|
stream == defaultDevice) {
|
||||||
this._deviceActivated(this._control, id);
|
this._deviceActivated(this._control, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//We dont have any way to understand that the profile has changed in the settings
|
||||||
|
//Just an useless workaround and potentially crashes shell
|
||||||
|
this.activeProfileTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000,
|
||||||
|
this._setActiveProfile.bind(this));
|
||||||
|
|
||||||
this.activeProfileTimeout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1000,
|
if (this._controlStateChangeSignal) {
|
||||||
this._setActiveProfile.bind(this));
|
|
||||||
|
|
||||||
if(this._controlStateChangeSignal) {
|
|
||||||
this._controlStateChangeSignal.disconnect();
|
this._controlStateChangeSignal.disconnect();
|
||||||
delete this._controlStateChangeSignal;
|
delete this._controlStateChangeSignal;
|
||||||
}
|
}
|
||||||
|
@ -121,20 +128,30 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_updateCards(control, cardId) {
|
||||||
|
this._cards = [];
|
||||||
|
let cards = this._control.get_cards();
|
||||||
|
for (let card of cards) {
|
||||||
|
this._cards.push(card.index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_deviceAdded(control, id, dontcheck) {
|
_deviceAdded(control, id, dontcheck) {
|
||||||
let obj = this._devices[id];
|
let obj = this._devices[id];
|
||||||
let uidevice = null;
|
let uidevice = null;
|
||||||
|
|
||||||
if(!obj) {
|
if (!obj) {
|
||||||
uidevice = this.lookupDeviceById(id);
|
uidevice = this.lookupDeviceById(id);
|
||||||
if(!uidevice) {
|
if (!uidevice || !uidevice.port_name || uidevice.description.match(/Dummy\s+(Output|Input)/gi)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
obj = new Object();
|
obj = new Object();
|
||||||
|
obj.id = id;
|
||||||
obj.uidevice = uidevice;
|
obj.uidevice = uidevice;
|
||||||
obj.text = uidevice.description;
|
obj.text = uidevice.description;
|
||||||
if(uidevice.origin != "")
|
if (uidevice.origin != "")
|
||||||
obj.text += " (" + uidevice.origin + ")";
|
obj.text += " - " + uidevice.origin;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* obj.item = this.menu.addAction( obj.text, function() {
|
* obj.item = this.menu.addAction( obj.text, function() {
|
||||||
|
@ -146,19 +163,20 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
let icon = uidevice.get_icon_name();
|
let icon = uidevice.get_icon_name();
|
||||||
if(icon == null || icon.trim() == "")
|
if (icon == null || icon.trim() == "")
|
||||||
icon = this.getDefaultIcon();
|
icon = this.getDefaultIcon();
|
||||||
let icon_name = this._getIcon(icon);
|
let icon_name = this._getIcon(icon);
|
||||||
|
|
||||||
obj.item = this.menuItem.menu.addAction( obj.text, function() {
|
obj.item = this.menuItem.menu.addAction(obj.text, function() {
|
||||||
|
_d("Device Change request");
|
||||||
this.changeDevice(uidevice);
|
this.changeDevice(uidevice);
|
||||||
}.bind(this), icon_name);
|
}.bind(this), icon_name);
|
||||||
|
|
||||||
if(!obj.profiles) {
|
if (!obj.profiles) {
|
||||||
obj.profiles = Lib.getProfiles(control, uidevice);
|
obj.profiles = Lib.getProfiles(control, uidevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!obj.profilesitems) {
|
if (!obj.profilesitems) {
|
||||||
obj.profilesitems = [];
|
obj.profilesitems = [];
|
||||||
}
|
}
|
||||||
this._devices[id] = obj;
|
this._devices[id] = obj;
|
||||||
|
@ -175,27 +193,38 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(obj.active) {
|
if (obj.active) {
|
||||||
return uidevice;
|
return uidevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
_d("Added: " + id + ":" + uidevice.description + ":" + uidevice.port_name);
|
_d("Added: " + id + ":" + uidevice.description + ":" + uidevice.port_name + ":" + obj.uidevice.origin);
|
||||||
if(!this._availableDevicesIds[id]){
|
if (!this._availableDevicesIds[id]) {
|
||||||
this._availableDevicesIds[id] = 0;
|
this._availableDevicesIds[id] = 0;
|
||||||
}
|
}
|
||||||
this._availableDevicesIds[id] ++;
|
this._availableDevicesIds[id]++;
|
||||||
|
|
||||||
obj.active = true;
|
obj.active = true;
|
||||||
obj.activeProfile = uidevice.get_active_profile();
|
let stream = this._control.get_stream_from_device(uidevice);
|
||||||
let showProfiles = this._settings.get_boolean(Prefs.SHOW_PROFILES);
|
if (stream) {
|
||||||
|
obj.activeProfile = uidevice.get_active_profile();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
obj.activeProfile = "";
|
||||||
|
}
|
||||||
|
//let showProfiles = this._settings.get_boolean(Prefs.SHOW_PROFILES);
|
||||||
if (obj.profiles) {
|
if (obj.profiles) {
|
||||||
for (let profile of obj.profiles) {
|
for (let profile of obj.profiles) {
|
||||||
let profileItem = obj.profilesitems[profile.name];
|
let profileItem = obj.profilesitems[profile.name];
|
||||||
if(!profileItem) {
|
if (!profileItem) {
|
||||||
let profileName = profile.name;
|
let profileName = profile.name;
|
||||||
profileItem = this.menuItem.menu.addAction( "Profile: " + profile.human_name, function() {
|
profileItem = this.menuItem.menu.addAction("Profile: " + profile.human_name, function() {
|
||||||
_d("i am setting profile, " + profile.human_name + ":" + uidevice.description + ":" + uidevice.port_name);
|
_d("i am setting profile, " + profile.human_name + ":" + uidevice.description + ":" + uidevice.port_name);
|
||||||
if(this._activeDevice && this._activeDevice.uidevice !== uidevice) {
|
let stream = this._control.get_stream_from_device(uidevice);
|
||||||
|
//No Active stream probably inactive port
|
||||||
|
if (!stream) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this._activeDevice && this._activeDevice.uidevice !== uidevice) {
|
||||||
_d("Changing active device to " + uidevice.description + ":" + uidevice.port_name);
|
_d("Changing active device to " + uidevice.description + ":" + uidevice.port_name);
|
||||||
this.changeDevice(uidevice);
|
this.changeDevice(uidevice);
|
||||||
}
|
}
|
||||||
|
@ -205,10 +234,10 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
obj.profilesitems[profileName] = profileItem;
|
obj.profilesitems[profileName] = profileItem;
|
||||||
profileItem.setProfileActive = function(active) {
|
profileItem.setProfileActive = function(active) {
|
||||||
if(active) {
|
if (active) {
|
||||||
// this._ornamentLabel.text = "\u2727";
|
// this._ornamentLabel.text = "\u2727";
|
||||||
this._ornamentLabel.text = "\u266A";
|
this._ornamentLabel.text = "\u266A";
|
||||||
if(this.add_style_pseudo_class) {
|
if (this.add_style_pseudo_class) {
|
||||||
this.add_style_pseudo_class('checked');
|
this.add_style_pseudo_class('checked');
|
||||||
this.remove_style_pseudo_class('insensitive');
|
this.remove_style_pseudo_class('insensitive');
|
||||||
}
|
}
|
||||||
|
@ -219,7 +248,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this._ornamentLabel.text = "";
|
this._ornamentLabel.text = "";
|
||||||
if(this.add_style_pseudo_class) {
|
if (this.add_style_pseudo_class) {
|
||||||
this.remove_style_pseudo_class('checked');
|
this.remove_style_pseudo_class('checked');
|
||||||
this.add_style_pseudo_class('insensitive');
|
this.add_style_pseudo_class('insensitive');
|
||||||
}
|
}
|
||||||
|
@ -235,7 +264,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
profileItem.setProfileActive(obj.activeProfile == profile.name);
|
profileItem.setProfileActive(obj.activeProfile == profile.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!dontcheck && !this._canShowDevice(uidevice, uidevice.port_available)) {
|
if (!dontcheck && !this._canShowDevice(uidevice, uidevice.port_available)) {
|
||||||
this._deviceRemoved(control, id, true);
|
this._deviceRemoved(control, id, true);
|
||||||
}
|
}
|
||||||
this._setChooserVisibility();
|
this._setChooserVisibility();
|
||||||
|
@ -245,25 +274,26 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
_deviceRemoved(control, id, dontcheck) {
|
_deviceRemoved(control, id, dontcheck) {
|
||||||
let obj = this._devices[id];
|
let obj = this._devices[id];
|
||||||
if(obj && obj.active) {
|
//delete this._devices[id];
|
||||||
_d("Removed: " + id);
|
if (obj && obj.active) {
|
||||||
if(!dontcheck && this._canShowDevice(obj.uidevice, false)) {
|
_d("Removed: " + id + ":" + obj.uidevice.description + ":" + obj.uidevice.port_name + ":" + obj.uidevice.origin);
|
||||||
|
if (!dontcheck && this._canShowDevice(obj.uidevice, false)) {
|
||||||
_d('Device removed, but not hiding as its set to be shown always');
|
_d('Device removed, but not hiding as its set to be shown always');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete this._availableDevicesIds[id] ;
|
delete this._availableDevicesIds[id];
|
||||||
obj.item.actor.visible = false;
|
obj.item.actor.visible = false;
|
||||||
obj.active = false;
|
obj.active = false;
|
||||||
if (obj.profiles) {
|
if (obj.profiles) {
|
||||||
for (let profile of obj.profiles) {
|
for (let profile of obj.profiles) {
|
||||||
let profileItem = obj.profilesitems[profile.name];
|
let profileItem = obj.profilesitems[profile.name];
|
||||||
if(profileItem) {
|
if (profileItem) {
|
||||||
profileItem.actor.visible = false;
|
profileItem.actor.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.deviceRemovedTimout) {
|
if (this.deviceRemovedTimout) {
|
||||||
GLib.source_remove(this.deviceRemovedTimout);
|
GLib.source_remove(this.deviceRemovedTimout);
|
||||||
this.deviceRemovedTimout = null;
|
this.deviceRemovedTimout = null;
|
||||||
}
|
}
|
||||||
|
@ -273,11 +303,12 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
* when the uidevice is removed, Speakers are automatically
|
* when the uidevice is removed, Speakers are automatically
|
||||||
* activated. So, lets wait for sometime before activating.
|
* activated. So, lets wait for sometime before activating.
|
||||||
*/
|
*/
|
||||||
this.deviceRemovedTimout = GLib.timeout_add(GLib.PRIORITY_DEFAULT,1500, function() {
|
this.deviceRemovedTimout = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 1500, function() {
|
||||||
|
_d("Device Removed timeout");
|
||||||
if (obj === this._activeDevice) {
|
if (obj === this._activeDevice) {
|
||||||
for ( let id in this._devices) {
|
for (let id in this._devices) {
|
||||||
let device = this._devices[id];
|
let device = this._devices[id];
|
||||||
if(device.active == true) {
|
if (device.active == true) {
|
||||||
this.changeDevice(device.uidevice);
|
this.changeDevice(device.uidevice);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -293,11 +324,11 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
_deviceActivated(control, id) {
|
_deviceActivated(control, id) {
|
||||||
let obj = this._devices[id];
|
let obj = this._devices[id];
|
||||||
if(obj && obj !== this._activeDevice) {
|
if (obj && obj !== this._activeDevice) {
|
||||||
_d("Activated: " + id);
|
_d("Activated: " + id + ":" + obj.uidevice.description + ":" + obj.uidevice.port_name + ":" + obj.uidevice.origin);
|
||||||
if(this._activeDevice) {
|
if (this._activeDevice) {
|
||||||
this._activeDevice.item.setOrnament(PopupMenu.Ornament.NONE);
|
this._activeDevice.item.setOrnament(PopupMenu.Ornament.NONE);
|
||||||
if(this._activeDevice.item.remove_style_pseudo_class) {
|
if (this._activeDevice.item.remove_style_pseudo_class) {
|
||||||
this._activeDevice.item.remove_style_pseudo_class('checked');
|
this._activeDevice.item.remove_style_pseudo_class('checked');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -306,7 +337,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
this._activeDevice = obj;
|
this._activeDevice = obj;
|
||||||
obj.item.setOrnament(PopupMenu.Ornament.CHECK);
|
obj.item.setOrnament(PopupMenu.Ornament.CHECK);
|
||||||
if(obj.item.add_style_pseudo_class) {
|
if (obj.item.add_style_pseudo_class) {
|
||||||
obj.item.add_style_pseudo_class('checked');
|
obj.item.add_style_pseudo_class('checked');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -318,7 +349,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
if (!this._settings.get_boolean(Prefs.HIDE_MENU_ICONS)) {
|
if (!this._settings.get_boolean(Prefs.HIDE_MENU_ICONS)) {
|
||||||
let icon = obj.uidevice.get_icon_name();
|
let icon = obj.uidevice.get_icon_name();
|
||||||
if(icon == null || icon.trim() == "")
|
if (icon == null || icon.trim() == "")
|
||||||
icon = this.getDefaultIcon();
|
icon = this.getDefaultIcon();
|
||||||
this.menuItem.icon.icon_name = this._getIcon(icon);
|
this.menuItem.icon.icon_name = this._getIcon(icon);
|
||||||
} else {
|
} else {
|
||||||
|
@ -328,21 +359,27 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
|
|
||||||
_setActiveProfile() {
|
_setActiveProfile() {
|
||||||
for (let id in this._devices) {
|
//_d("Setting Active Profile");
|
||||||
|
/*for (let id in this._devices) {
|
||||||
let device = this._devices[id];
|
let device = this._devices[id];
|
||||||
if(device.active) {
|
if (device.active) {
|
||||||
this._setDeviceActiveProfile(device);
|
this._setDeviceActiveProfile(device);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
this._setDeviceActiveProfile(this._activeDevice);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_setDeviceActiveProfile(device) {
|
_setDeviceActiveProfile(device) {
|
||||||
if (!device.uidevice.port_name) {
|
if (!device.uidevice.port_name || !this._availableDevicesIds[device.id]) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let stream = this._control.get_stream_from_device(device.uidevice);
|
||||||
|
if (stream) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let activeProfile = device.uidevice.get_active_profile();
|
let activeProfile = device.uidevice.get_active_profile();
|
||||||
if(activeProfile && device.activeProfile != activeProfile) {
|
if (activeProfile && device.activeProfile != activeProfile) {
|
||||||
device.activeProfile = activeProfile;
|
device.activeProfile = activeProfile;
|
||||||
for (let profile of device.profiles) {
|
for (let profile of device.profiles) {
|
||||||
device.profilesitems[profile.name].setProfileActive(profile.name == device.activeProfile);
|
device.profilesitems[profile.name].setProfileActive(profile.name == device.activeProfile);
|
||||||
|
@ -373,7 +410,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
let visibility = this._settings.get_boolean(Prefs.SHOW_PROFILES);
|
let visibility = this._settings.get_boolean(Prefs.SHOW_PROFILES);
|
||||||
for (let id in this._availableDevicesIds) {
|
for (let id in this._availableDevicesIds) {
|
||||||
let device = this._devices[id];
|
let device = this._devices[id];
|
||||||
if ( device.profiles ) {
|
if (device.profiles) {
|
||||||
for (let profile of device.profiles) {
|
for (let profile of device.profiles) {
|
||||||
device.profilesitems[profile.name].actor.visible =
|
device.profilesitems[profile.name].actor.visible =
|
||||||
(visibility && device.item.actor.visible && Object.keys(device.profilesitems).length > 1);
|
(visibility && device.item.actor.visible && Object.keys(device.profilesitems).length > 1);
|
||||||
|
@ -385,12 +422,12 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
_getIcon(name) {
|
_getIcon(name) {
|
||||||
let iconsType = this._settings.get_string(Prefs.ICON_THEME);
|
let iconsType = this._settings.get_string(Prefs.ICON_THEME);
|
||||||
switch (iconsType) {
|
switch (iconsType) {
|
||||||
case Prefs.ICON_THEME_COLORED:
|
case Prefs.ICON_THEME_COLORED:
|
||||||
return name;
|
return name;
|
||||||
case Prefs.ICON_THEME_MONOCHROME:
|
case Prefs.ICON_THEME_MONOCHROME:
|
||||||
return name + "-symbolic";
|
return name + "-symbolic";
|
||||||
default:
|
default:
|
||||||
return "none";
|
return "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,7 +436,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
for (let id in this._devices) {
|
for (let id in this._devices) {
|
||||||
let device = this._devices[id];
|
let device = this._devices[id];
|
||||||
let icon = device.uidevice.get_icon_name();
|
let icon = device.uidevice.get_icon_name();
|
||||||
if(icon == null || icon.trim() == "")
|
if (icon == null || icon.trim() == "")
|
||||||
icon = this.getDefaultIcon();
|
icon = this.getDefaultIcon();
|
||||||
// device.item._icon.icon_name = this._getIcon(icon);
|
// device.item._icon.icon_name = this._getIcon(icon);
|
||||||
device.item.setIcon(this._getIcon(icon));
|
device.item.setIcon(this._getIcon(icon));
|
||||||
|
@ -409,7 +446,7 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
// Gnome menu, not in the list.
|
// Gnome menu, not in the list.
|
||||||
if (!this._settings.get_boolean(Prefs.HIDE_MENU_ICONS)) {
|
if (!this._settings.get_boolean(Prefs.HIDE_MENU_ICONS)) {
|
||||||
let icon = this._activeDevice.uidevice.get_icon_name();
|
let icon = this._activeDevice.uidevice.get_icon_name();
|
||||||
if(icon == null || icon.trim() == "")
|
if (icon == null || icon.trim() == "")
|
||||||
icon = this.getDefaultIcon();
|
icon = this.getDefaultIcon();
|
||||||
|
|
||||||
this.menuItem.icon.icon_name = this._getIcon(icon);
|
this.menuItem.icon.icon_name = this._getIcon(icon);
|
||||||
|
@ -420,21 +457,39 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
|
|
||||||
_canShowDevice(uidevice, defaultValue) {
|
_canShowDevice(uidevice, defaultValue) {
|
||||||
if(!uidevice || !this._portsSettings || uidevice.port_name == null || uidevice.description == null) {
|
if (!uidevice || !this._portsSettings || uidevice.port_name == null || uidevice.description == null) {
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
let stream = this._control.get_stream_from_device(uidevice);
|
||||||
|
let cardName = null;
|
||||||
|
if (stream) {
|
||||||
|
let cardId = stream.get_card_index();
|
||||||
|
if (cardId != null) {
|
||||||
|
_d("Card Index" + cardId);
|
||||||
|
let _card = Lib.getCard(cardId);
|
||||||
|
if (_card) {
|
||||||
|
cardName = _card.name;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//card id found, but not available in list
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_d("Card Name" + cardName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (let port of this._portsSettings) {
|
for (let port of this._portsSettings) {
|
||||||
if(port && port.name == uidevice.port_name && port.human_name == uidevice.description) {
|
//_d("P" + port.name + "==" + uidevice.port_name + "==" + port.human_name + "==" + uidevice.description + "==" + cardName + "==" + port.card_name)
|
||||||
switch(port.display_option) {
|
if (port && port.name == uidevice.port_name && port.human_name == uidevice.description && (!cardName || cardName == port.card_name)) {
|
||||||
case 1:
|
switch (port.display_option) {
|
||||||
return true;
|
case 1:
|
||||||
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -442,25 +497,26 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
}
|
}
|
||||||
|
|
||||||
_resetDevices() {
|
_resetDevices() {
|
||||||
this._portsSettings = JSON.parse(this._settings.get_string(Prefs.PORT_SETTINGS));
|
//this._portsSettings = JSON.parse(this._settings.get_string(Prefs.PORT_SETTINGS));
|
||||||
|
this._portsSettings = Prefs.getPortsFromSettings(this._settings);
|
||||||
for (let id in this._devices) {
|
for (let id in this._devices) {
|
||||||
let device = this._devices[id];
|
let device = this._devices[id];
|
||||||
let uidevice = device.uidevice;
|
let uidevice = device.uidevice;
|
||||||
if(uidevice.port_name == null || uidevice.description == null) {
|
if (uidevice.port_name == null || uidevice.description == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
switch(this._canShowDevice(uidevice, uidevice.port_available)) {
|
switch (this._canShowDevice(uidevice, uidevice.port_available)) {
|
||||||
case true:
|
case true:
|
||||||
this._deviceAdded(this._control, uidevice.get_id(), true);
|
this._deviceAdded(this._control, uidevice.get_id(), true);
|
||||||
break;
|
break;
|
||||||
case false:
|
case false:
|
||||||
this._deviceRemoved(this._control, uidevice.get_id(), true);
|
this._deviceRemoved(this._control, uidevice.get_id(), true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_setVisibility () {
|
_setVisibility() {
|
||||||
if (!this._settings.get_boolean(this._show_device_signal))
|
if (!this._settings.get_boolean(this._show_device_signal))
|
||||||
this.menuItem.actor.visible = false;
|
this.menuItem.actor.visible = false;
|
||||||
else
|
else
|
||||||
|
@ -471,11 +527,11 @@ var SoundDeviceChooserBase = class SoundDeviceChooserBase{
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
this._signalManager.disconnectAll();
|
this._signalManager.disconnectAll();
|
||||||
if(this.deviceRemovedTimout) {
|
if (this.deviceRemovedTimout) {
|
||||||
GLib.source_remove(this.deviceRemovedTimout);
|
GLib.source_remove(this.deviceRemovedTimout);
|
||||||
this.deviceRemovedTimout = null;
|
this.deviceRemovedTimout = null;
|
||||||
}
|
}
|
||||||
if(this.activeProfileTimeout) {
|
if (this.activeProfileTimeout) {
|
||||||
GLib.source_remove(this.activeProfileTimeout);
|
GLib.source_remove(this.activeProfileTimeout);
|
||||||
this.activeProfileTimeout = null;
|
this.activeProfileTimeout = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,11 +27,11 @@ const Prefs = Me.imports.prefs;
|
||||||
var DEBUG = false;
|
var DEBUG = false;
|
||||||
|
|
||||||
var logWrap;
|
var logWrap;
|
||||||
if(log != undefined){
|
if (log != undefined) {
|
||||||
logWrap = log;
|
logWrap = log;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
logWrap = global.log
|
logWrap = global.log
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,42 +57,48 @@ function getSettings(schema) {
|
||||||
let schemaDir = Me.dir.get_child('schemas');
|
let schemaDir = Me.dir.get_child('schemas');
|
||||||
let schemaSource;
|
let schemaSource;
|
||||||
if (schemaDir.query_exists(null))
|
if (schemaDir.query_exists(null))
|
||||||
schemaSource = GioSSS.new_from_directory(schemaDir.get_path(),GioSSS.get_default(),false);
|
schemaSource = GioSSS.new_from_directory(schemaDir.get_path(), GioSSS.get_default(), false);
|
||||||
else
|
else
|
||||||
schemaSource = GioSSS.get_default();
|
schemaSource = GioSSS.get_default();
|
||||||
|
|
||||||
let schemaObj = schemaSource.lookup(schema, true);
|
let schemaObj = schemaSource.lookup(schema, true);
|
||||||
if (!schemaObj)
|
if (!schemaObj)
|
||||||
throw new Error('Schema ' + schema + ' could not be found for extension '
|
throw new Error('Schema ' + schema + ' could not be found for extension '
|
||||||
+ Me.metadata.uuid + '. Please check your installation.');
|
+ Me.metadata.uuid + '. Please check your installation.');
|
||||||
|
|
||||||
let _settings = new Gio.Settings({ settings_schema: schemaObj });
|
let _settings = new Gio.Settings({ settings_schema: schemaObj });
|
||||||
return _settings;
|
return _settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
let cards;
|
let cards;
|
||||||
function getProfiles(control, uidevice)
|
|
||||||
{
|
function getCard(card_index) {
|
||||||
|
if (!cards || Object.keys(cards).length == 0) {
|
||||||
|
refreshCards();
|
||||||
|
}
|
||||||
|
return cards[card_index];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getProfiles(control, uidevice) {
|
||||||
let stream = control.lookup_stream_id(uidevice.get_stream_id());
|
let stream = control.lookup_stream_id(uidevice.get_stream_id());
|
||||||
if(stream) {
|
if (stream) {
|
||||||
if(!cards || Object.keys(cards).length == 0 || !cards[stream.card_index]) {
|
if (!cards || Object.keys(cards).length == 0 || !cards[stream.card_index]) {
|
||||||
refreshCards();
|
refreshCards();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cards && cards[stream.card_index]) {
|
if (cards && cards[stream.card_index]) {
|
||||||
_log("Getting profile form stream id " + uidevice.port_name );
|
_log("Getting profile form stream id " + uidevice.port_name);
|
||||||
return getProfilesForPort(uidevice.port_name, cards[stream.card_index]);
|
return getProfilesForPort(uidevice.port_name, cards[stream.card_index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
/* Device is not active device, lets try match with port name */
|
/* Device is not active device, lets try match with port name */
|
||||||
refreshCards();
|
refreshCards();
|
||||||
for (let id in cards) {
|
for (let id in cards) {
|
||||||
let profiles;
|
let profiles;
|
||||||
_log("Getting profile from cards " + uidevice.port_name + " for card id " + id);
|
_log("Getting profile from cards " + uidevice.port_name + " for card id " + id);
|
||||||
if((profiles = getProfilesForPort(uidevice.port_name, cards[id])))
|
if ((profiles = getProfilesForPort(uidevice.port_name, cards[id]))) {
|
||||||
{
|
|
||||||
return profiles;
|
return profiles;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -103,20 +109,20 @@ function getProfiles(control, uidevice)
|
||||||
|
|
||||||
let ports;
|
let ports;
|
||||||
function getPorts(refresh) {
|
function getPorts(refresh) {
|
||||||
if(!ports || ports.length == 0 || refresh) {
|
if (!ports || ports.length == 0 || refresh) {
|
||||||
refreshCards();
|
refreshCards();
|
||||||
}
|
}
|
||||||
return ports;
|
return ports;
|
||||||
}
|
}
|
||||||
|
|
||||||
function isCmdFound(cmd){
|
function isCmdFound(cmd) {
|
||||||
try {
|
try {
|
||||||
let [result, out, err, exit_code] = GLib.spawn_command_line_sync(cmd);
|
let [result, out, err, exit_code] = GLib.spawn_command_line_sync(cmd);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch (e) {
|
||||||
_log('ERROR: '+ cmd +' execution failed. ' + e);
|
_log('ERROR: ' + cmd + ' execution failed. ' + e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,27 +132,28 @@ function refreshCards() {
|
||||||
// if(_settings == null) {getSettings(Prefs.SETTINGS_SCHEMA);}
|
// if(_settings == null) {getSettings(Prefs.SETTINGS_SCHEMA);}
|
||||||
let _settings = getSettings(Prefs.SETTINGS_SCHEMA);
|
let _settings = getSettings(Prefs.SETTINGS_SCHEMA);
|
||||||
let error = false;
|
let error = false;
|
||||||
if(_settings.get_boolean(Prefs.NEW_PROFILE_ID)) {
|
let newProfLogic = _settings.get_boolean(Prefs.NEW_PROFILE_ID);
|
||||||
|
if (newProfLogic) {
|
||||||
_log("New logic");
|
_log("New logic");
|
||||||
let pyLocation = Me.dir.get_child('utils/pa_helper.py').get_path();
|
let pyLocation = Me.dir.get_child('utils/pa_helper.py').get_path();
|
||||||
let pythonExec = 'python';
|
let pythonExec = 'python';
|
||||||
let pyVer = 3;
|
let pyVer = 3;
|
||||||
while(!isCmdFound(pythonExec) && pyVer >=2){
|
while (!isCmdFound(pythonExec) && pyVer >= 2) {
|
||||||
_log(pythonExec + " is not found. Try next");
|
_log(pythonExec + " is not found. Try next");
|
||||||
pythonExec = 'python' + pyVer--;
|
pythonExec = 'python' + pyVer--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pyVer <= 1) {
|
if (pyVer <= 1) {
|
||||||
_log('ERROR: Python not found. fallback to default mode' + e);
|
_log('ERROR: Python not found. fallback to default mode' + e);
|
||||||
_settings.set_boolean(Prefs.NEW_PROFILE_ID, false);
|
_settings.set_boolean(Prefs.NEW_PROFILE_ID, false);
|
||||||
Gio.Settings.sync();
|
Gio.Settings.sync();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
let [result, out, err, exit_code] = GLib.spawn_command_line_sync(pythonExec+ ' ' + pyLocation);
|
let [result, out, err, exit_code] = GLib.spawn_command_line_sync(pythonExec + ' ' + pyLocation);
|
||||||
// _log("result" + result +" out"+out + " exit_code" +
|
// _log("result" + result +" out"+out + " exit_code" +
|
||||||
// exit_code + "err" +err);
|
// exit_code + "err" +err);
|
||||||
if(result && !exit_code) {
|
if (result && !exit_code) {
|
||||||
if (out instanceof Uint8Array) {
|
if (out instanceof Uint8Array) {
|
||||||
out = ByteArray.toString(out);
|
out = ByteArray.toString(out);
|
||||||
}
|
}
|
||||||
|
@ -155,7 +162,7 @@ function refreshCards() {
|
||||||
ports = obj['ports'];
|
ports = obj['ports'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch (e) {
|
||||||
error = true;
|
error = true;
|
||||||
_log('ERROR: Python execution failed. fallback to default mode' + e);
|
_log('ERROR: Python execution failed. fallback to default mode' + e);
|
||||||
_settings.set_boolean(Prefs.NEW_PROFILE_ID, false);
|
_settings.set_boolean(Prefs.NEW_PROFILE_ID, false);
|
||||||
|
@ -163,21 +170,22 @@ function refreshCards() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//error = true;
|
||||||
if(!_settings.get_boolean(Prefs.NEW_PROFILE_ID) || error){
|
if (!newProfLogic || error) {
|
||||||
try {
|
try {
|
||||||
let [result, out, err, exit_code] = GLib.spawn_command_line_sync('pactl list cards');
|
let [result, out, err, exit_code] = GLib.spawn_command_line_sync('pactl list cards');
|
||||||
if(result && !exit_code) {
|
if (result && !exit_code) {
|
||||||
parseOutput(out);
|
parseOutput(out);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(e) {
|
catch (e) {
|
||||||
_log('ERROR: pactl execution failed. No ports/profiles will be displayed');
|
_log('ERROR: pactl execution failed. No ports/profiles will be displayed');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// _log(JSON.stringify(cards));
|
//_log(Array.isArray(cards));
|
||||||
// _log(JSON.stringify(ports));
|
//_log(JSON.stringify(cards));
|
||||||
|
//_log(Array.isArray(ports));
|
||||||
|
//_log(JSON.stringify(ports));
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseOutput(out) {
|
function parseOutput(out) {
|
||||||
|
@ -193,40 +201,55 @@ function parseOutput(out) {
|
||||||
let port;
|
let port;
|
||||||
let matches;
|
let matches;
|
||||||
// _log("Unmatched line:" + out);
|
// _log("Unmatched line:" + out);
|
||||||
while(lines.length > 0) {
|
while (lines.length > 0) {
|
||||||
let line = lines.shift();
|
let line = lines.shift();
|
||||||
|
|
||||||
if( (matches = /^Card\s#(\d+)$/.exec(line) )) {
|
if ((matches = /^Card\s#(\d+)$/.exec(line))) {
|
||||||
cardIndex = matches[1];
|
cardIndex = matches[1];
|
||||||
if(!cards[cardIndex]) {
|
if (!cards[cardIndex]) {
|
||||||
cards[cardIndex] = {'index':cardIndex,'profiles':[], 'ports':[]};
|
cards[cardIndex] = { 'index': cardIndex, 'profiles': [], 'ports': [] };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (line.match(/^\t*Profiles:$/) ) {
|
else if ((matches = /^\t*Name:\s+(.*?)$/.exec(line)) && cards[cardIndex]) {
|
||||||
|
cards[cardIndex].name = matches[1];
|
||||||
|
parseSection = "CARDS"
|
||||||
|
}
|
||||||
|
else if (line.match(/^\tProperties:$/) && parseSection == "CARDS") {
|
||||||
|
parseSection = "PROPS";
|
||||||
|
}
|
||||||
|
else if (line.match(/^\t*Profiles:$/)) {
|
||||||
parseSection = "PROFILES";
|
parseSection = "PROFILES";
|
||||||
}
|
}
|
||||||
else if (line.match(/^\t*Ports:$/)) {
|
else if (line.match(/^\t*Ports:$/)) {
|
||||||
parseSection = "PORTS";
|
parseSection = "PORTS";
|
||||||
}
|
}
|
||||||
else if(cards[cardIndex]) {
|
else if (cards[cardIndex]) {
|
||||||
switch(parseSection) {
|
switch (parseSection) {
|
||||||
case "PROFILES":
|
case "PROPS":
|
||||||
if((matches = /.*?((?:output|input)[^+]*?):\s(.*?)\s\(sinks:/.exec(line))) {
|
if ((matches = /alsa\.card_name\s+=\s+"(.*?)"/.exec(line))) {
|
||||||
cards[cardIndex].profiles.push({'name': matches[1], 'human_name': matches[2]});
|
cards[cardIndex].alsa_name = matches[1];
|
||||||
}
|
}
|
||||||
break;
|
else if((matches = /device\.description\s+=\s+"(.*?)"/.exec(line))) {
|
||||||
case "PORTS":
|
cards[cardIndex].card_description = matches[1];
|
||||||
if((matches = /\t*(.*?):\s(.*?)\s\(priority:/.exec(line))) {
|
}
|
||||||
port = {'name' : matches[1], 'human_name' : matches[2]};
|
break;
|
||||||
cards[cardIndex].ports.push(port);
|
case "PROFILES":
|
||||||
ports.push({'name' : matches[1], 'human_name' : matches[2]});
|
if ((matches = /.*?((?:output|input)[^+]*?):\s(.*?)\s\(sinks:/.exec(line))) {
|
||||||
}
|
cards[cardIndex].profiles.push({ 'name': matches[1], 'human_name': matches[2] });
|
||||||
else if( port && (matches = /\t*Part of profile\(s\):\s(.*)/.exec(line))) {
|
}
|
||||||
let profileStr = matches[1];
|
break;
|
||||||
port.profiles = profileStr.split(', ');
|
case "PORTS":
|
||||||
port = null;
|
if ((matches = /\t*(.*?):\s(.*?)\s\(.*?priority:/.exec(line))) {
|
||||||
}
|
port = { 'name': matches[1], 'human_name': matches[2], 'card_name': cards[cardIndex].name, 'card_description' : cards[cardIndex].card_description };
|
||||||
break;
|
cards[cardIndex].ports.push(port);
|
||||||
|
ports.push(port);
|
||||||
|
}
|
||||||
|
else if (port && (matches = /\t*Part of profile\(s\):\s(.*)/.exec(line))) {
|
||||||
|
let profileStr = matches[1];
|
||||||
|
port.profiles = profileStr.split(', ');
|
||||||
|
port = null;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -245,7 +268,7 @@ var Signal = class Signal {
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
if(this._signalId) {
|
if (this._signalId) {
|
||||||
this._signalSource.disconnect(this._signalId);
|
this._signalSource.disconnect(this._signalId);
|
||||||
this._signalId = null;
|
this._signalId = null;
|
||||||
}
|
}
|
||||||
|
@ -260,12 +283,12 @@ var SignalManager = class SignalManager {
|
||||||
|
|
||||||
addSignal(signalSource, signalName, callback) {
|
addSignal(signalSource, signalName, callback) {
|
||||||
let obj = null;
|
let obj = null;
|
||||||
if(signalSource && signalName && callback) {
|
if (signalSource && signalName && callback) {
|
||||||
obj = new Signal(signalSource, signalName, callback);
|
obj = new Signal(signalSource, signalName, callback);
|
||||||
obj.connect();
|
obj.connect();
|
||||||
this._signals.push(obj);
|
this._signals.push(obj);
|
||||||
let sourceSignals = this._signalsBySource[signalSource]
|
let sourceSignals = this._signalsBySource[signalSource]
|
||||||
if(!sourceSignals) {
|
if (!sourceSignals) {
|
||||||
sourceSignals = [];
|
sourceSignals = [];
|
||||||
this._signalsBySource[signalSource] = sourceSignals;
|
this._signalsBySource[signalSource] = sourceSignals;
|
||||||
}
|
}
|
||||||
|
@ -276,13 +299,13 @@ var SignalManager = class SignalManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnectAll() {
|
disconnectAll() {
|
||||||
for (let signal of this._signals){
|
for (let signal of this._signals) {
|
||||||
signal.disconnect();
|
signal.disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnectBySource(signalSource) {
|
disconnectBySource(signalSource) {
|
||||||
if(this._signalsBySource[signalSource]) {
|
if (this._signalsBySource[signalSource]) {
|
||||||
for (let signal of this._signalsBySource[signalSource]) {
|
for (let signal of this._signalsBySource[signalSource]) {
|
||||||
signal.disconnect();
|
signal.disconnect();
|
||||||
}
|
}
|
||||||
|
@ -292,15 +315,15 @@ var SignalManager = class SignalManager {
|
||||||
|
|
||||||
|
|
||||||
function getProfilesForPort(portName, card) {
|
function getProfilesForPort(portName, card) {
|
||||||
if(card.ports) {
|
if (card.ports) {
|
||||||
for (let port of card.ports) {
|
for (let port of card.ports) {
|
||||||
if(portName === port.name) {
|
if (portName === port.name) {
|
||||||
let profiles = [];
|
let profiles = [];
|
||||||
if (port.profiles) {
|
if (port.profiles) {
|
||||||
for (let profile of port.profiles) {
|
for (let profile of port.profiles) {
|
||||||
if(profile.indexOf('+input:') == -1) {
|
if (profile.indexOf('+input:') == -1) {
|
||||||
for (let cardProfile of card.profiles) {
|
for (let cardProfile of card.profiles) {
|
||||||
if(profile === cardProfile.name) {
|
if (profile === cardProfile.name) {
|
||||||
profiles.push(cardProfile);
|
profiles.push(cardProfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -319,7 +342,7 @@ function setLog(value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _log(msg) {
|
function _log(msg) {
|
||||||
if ( DEBUG == true ) {
|
if (DEBUG == true) {
|
||||||
// global.log("SDC Debug: " + msg);
|
// global.log("SDC Debug: " + msg);
|
||||||
logWrap("SDC Debug: " + msg);
|
logWrap("SDC Debug: " + msg);
|
||||||
}
|
}
|
||||||
|
@ -327,11 +350,11 @@ function _log(msg) {
|
||||||
|
|
||||||
function dump(obj) {
|
function dump(obj) {
|
||||||
var propValue;
|
var propValue;
|
||||||
for(var propName in obj) {
|
for (var propName in obj) {
|
||||||
try{
|
try {
|
||||||
propValue = obj[propName];
|
propValue = obj[propName];
|
||||||
_log(propName + propValue);
|
_log(propName + "=" + propValue);
|
||||||
}
|
}
|
||||||
catch(e){_log(propName + "!!!Error!!!");}
|
catch (e) { _log(propName + "!!!Error!!!"); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2019-09-24 23:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2020-09-02 18:22+0200\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
|
"Last-Translator: Heimen Stoffels <vistausss@outlook.com>\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"Language: nl\n"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:15
|
||||||
|
msgid "Monochrome"
|
||||||
|
msgstr "Monochroom"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:19
|
||||||
|
msgid "Colored"
|
||||||
|
msgstr "Gekleurd"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:23
|
||||||
|
msgid "None"
|
||||||
|
msgstr "Geen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:100
|
||||||
|
msgid "Hide selector if there's only one device"
|
||||||
|
msgstr "Keuzemenu verbergen als er slechts één apparaat is"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:142
|
||||||
|
msgid "Display audio profiles for selection"
|
||||||
|
msgstr "Audioprofielen tonen in keuzemenu"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:175
|
||||||
|
msgid "General Settings"
|
||||||
|
msgstr "Algemene instellingen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:220
|
||||||
|
msgid "Show output devices"
|
||||||
|
msgstr "Uitvoerapparaten tonen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:253
|
||||||
|
msgid "Output Devices"
|
||||||
|
msgstr "Uitvoerapparaten"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:300
|
||||||
|
msgid "Show input devices"
|
||||||
|
msgstr "Invoerapparaten tonen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:343
|
||||||
|
msgid "Show volume control for default device"
|
||||||
|
msgstr "Volumebediening van standaardapparaat tonen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:376
|
||||||
|
msgid "Input Devices"
|
||||||
|
msgstr "Invoerapparaten"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:422
|
||||||
|
msgid "Icon Theme"
|
||||||
|
msgstr "Pictogramthema"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:472
|
||||||
|
msgid "Display icons only in selection list"
|
||||||
|
msgstr "Alleen pictogrammen tonen in keuzelijst"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:504
|
||||||
|
msgid "Icons"
|
||||||
|
msgstr "Pictogrammen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:549
|
||||||
|
msgid "Enable Log messages"
|
||||||
|
msgstr "Logboek bijhouden"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:588
|
||||||
|
msgid "Enable new profile identification "
|
||||||
|
msgstr "Nieuwe profielidentificatie inschakelen "
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:620
|
||||||
|
msgid "Miscellaneous"
|
||||||
|
msgstr "Overig"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:688
|
||||||
|
msgid "Name"
|
||||||
|
msgstr "Naam"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:702
|
||||||
|
msgid "Show"
|
||||||
|
msgstr "Tonen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:716
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr "Verbergen"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:730
|
||||||
|
msgid "Default"
|
||||||
|
msgstr "Standaard"
|
||||||
|
|
||||||
|
#: prefs-dialog.gtkbuilder:756
|
||||||
|
msgid "Port Settings"
|
||||||
|
msgstr "Poortinstellingen"
|
|
@ -11,5 +11,5 @@
|
||||||
],
|
],
|
||||||
"url": "https://github.com/kgshank/gse-sound-output-device-chooser",
|
"url": "https://github.com/kgshank/gse-sound-output-device-chooser",
|
||||||
"uuid": "sound-output-device-chooser@kgshank.net",
|
"uuid": "sound-output-device-chooser@kgshank.net",
|
||||||
"version": 32
|
"version": 33
|
||||||
}
|
}
|
|
@ -48,7 +48,55 @@ var ICON_THEME_COLORED = "colored";
|
||||||
var ICON_THEME_MONOCHROME = "monochrome";
|
var ICON_THEME_MONOCHROME = "monochrome";
|
||||||
var ICON_THEME_NONE = "none";
|
var ICON_THEME_NONE = "none";
|
||||||
|
|
||||||
function init(){}
|
const PORT_SETTINGS_VERSION = 2;
|
||||||
|
|
||||||
|
function init() { }
|
||||||
|
|
||||||
|
function getPortsFromSettings(_settings) {
|
||||||
|
let obj = JSON.parse(_settings.get_string(PORT_SETTINGS));
|
||||||
|
let currentSettingsVersion = PORT_SETTINGS_VERSION;
|
||||||
|
if (Array.isArray(obj)) {
|
||||||
|
currentSettingsVersion = 1;
|
||||||
|
}
|
||||||
|
if (currentSettingsVersion < PORT_SETTINGS_VERSION) {
|
||||||
|
obj = migratePortSettings(currentSettingsVersion, obj, _settings);
|
||||||
|
}
|
||||||
|
return obj.ports;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPortsSettings(ports,_settings) {
|
||||||
|
let settingsObj = { 'version': PORT_SETTINGS_VERSION };
|
||||||
|
settingsObj.ports = ports;
|
||||||
|
_d(JSON.stringify(settingsObj));
|
||||||
|
_settings.set_string(PORT_SETTINGS, JSON.stringify(settingsObj));
|
||||||
|
return settingsObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPortDisplayName(port) {
|
||||||
|
return port.card_description + " - " + port.human_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
function migratePortSettings(currVersion, currSettings, _settings) {
|
||||||
|
let ports = [];
|
||||||
|
switch (currVersion) {
|
||||||
|
case 1:
|
||||||
|
let _lPorts = Lib.getPorts(true).slice();
|
||||||
|
for (let port of currSettings) {
|
||||||
|
for (var i = 0; i < _lPorts.length; i++) {
|
||||||
|
let _lPort = _lPorts[i];
|
||||||
|
if (port.human_name == _lPort.human_name && port.name == _lPort.name) {
|
||||||
|
port.card_name = _lPort.card_name;
|
||||||
|
port.display_name = getPortDisplayName(_lPort);
|
||||||
|
_lPorts.splice(i, 1);
|
||||||
|
ports.push(port);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return setPortsSettings(ports,_settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const SDCSettingsWidget = new GObject.Class({
|
const SDCSettingsWidget = new GObject.Class({
|
||||||
|
@ -69,7 +117,7 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
// creates the ui builder and add the main resource file
|
// creates the ui builder and add the main resource file
|
||||||
let uiFilePath = Me.path + "/ui/prefs-dialog.gtkbuilder";
|
let uiFilePath = Me.path + "/ui/prefs-dialog.gtkbuilder";
|
||||||
let builder = new Gtk.Builder();
|
let builder = new Gtk.Builder();
|
||||||
builder.set_translation_domain('sound-output-device-chooser');
|
builder.set_translation_domain('sound-output-device-chooser');
|
||||||
|
|
||||||
if (builder.add_from_file(uiFilePath) == 0) {
|
if (builder.add_from_file(uiFilePath) == 0) {
|
||||||
_d("JS LOG: could not load the ui file: %s".format(uiFilePath));
|
_d("JS LOG: could not load the ui file: %s".format(uiFilePath));
|
||||||
|
@ -81,7 +129,7 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
|
|
||||||
this.pack_start(label, true, true, 0);
|
this.pack_start(label, true, true, 0);
|
||||||
} else {
|
} else {
|
||||||
_d('JS LOG:_UI file receive and load: '+uiFilePath);
|
_d('JS LOG:_UI file receive and load: ' + uiFilePath);
|
||||||
|
|
||||||
let mainContainer = builder.get_object("main-container");
|
let mainContainer = builder.get_object("main-container");
|
||||||
|
|
||||||
|
@ -111,7 +159,7 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
this._settings.bind(NEW_PROFILE_ID, newProfileIdSwitch, "active", Gio.SettingsBindFlags.DEFAULT);
|
this._settings.bind(NEW_PROFILE_ID, newProfileIdSwitch, "active", Gio.SettingsBindFlags.DEFAULT);
|
||||||
this._settings.bind(ICON_THEME, iconThemeCombo, "active-id", Gio.SettingsBindFlags.DEFAULT);
|
this._settings.bind(ICON_THEME, iconThemeCombo, "active-id", Gio.SettingsBindFlags.DEFAULT);
|
||||||
|
|
||||||
|
//Show always is not working always, hidden in the UI directly
|
||||||
let showAlwaysToggleRender = builder.get_object("ShowAlwaysToggleRender");
|
let showAlwaysToggleRender = builder.get_object("ShowAlwaysToggleRender");
|
||||||
let hideAlwaysToggleRender = builder.get_object("HideAlwaysToggleRender");
|
let hideAlwaysToggleRender = builder.get_object("HideAlwaysToggleRender");
|
||||||
let showActiveToggleRender = builder.get_object("ShowActiveToggleRender");
|
let showActiveToggleRender = builder.get_object("ShowActiveToggleRender");
|
||||||
|
@ -127,11 +175,10 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_populatePorts: function (){
|
_populatePorts: function() {
|
||||||
let ports = Lib.getPorts(true);
|
let ports = Lib.getPorts(true);
|
||||||
for (let port of ports)
|
for (let port of ports) {
|
||||||
{
|
this._portsStore.set(this._portsStore.append(), [0, 1, 2, 3, 4, 5, 6, 7], [port.human_name, false, false, true, port.name, 3, port.card_name, getPortDisplayName(port)]);
|
||||||
this._portsStore.set(this._portsStore.append(),[0,1,2,3,4,5],[port.human_name, false, false, true, port.name,3]);
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -149,18 +196,22 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
|
|
||||||
_toggleCallback: function(widget, path, activeCol, inactiveCols) {
|
_toggleCallback: function(widget, path, activeCol, inactiveCols) {
|
||||||
let active = !widget.active;
|
let active = !widget.active;
|
||||||
if(!active)
|
if (!active) {
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let [success, iter] = this._portsStore.get_iter_from_string(path);
|
let [success, iter] = this._portsStore.get_iter_from_string(path);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*Dont support non-pci cards for show always*/
|
||||||
|
let card_name = this._portsStore.get_value(iter, 6);
|
||||||
|
if(!/\.pci-/.exec(card_name) && activeCol == 1){
|
||||||
|
this._toggleCallback(widget, path, 3, [1, 2]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
this._portsStore.set_value(iter, activeCol, active);
|
this._portsStore.set_value(iter, activeCol, active);
|
||||||
this._portsStore.set_value(iter, 5, activeCol);
|
this._portsStore.set_value(iter, 5, activeCol);
|
||||||
for (let col of inactiveCols)
|
for (let col of inactiveCols) {
|
||||||
{
|
|
||||||
this._portsStore.set_value(iter, col, !active);
|
this._portsStore.set_value(iter, col, !active);
|
||||||
}
|
}
|
||||||
this._commitSettings();
|
this._commitSettings();
|
||||||
|
@ -171,21 +222,23 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
let [success, iter] = this._portsStore.get_iter_first();
|
let [success, iter] = this._portsStore.get_iter_first();
|
||||||
|
|
||||||
while (iter && success) {
|
while (iter && success) {
|
||||||
if(!this._portsStore.get_value(iter,3)) {
|
if (!this._portsStore.get_value(iter, 3)) {
|
||||||
ports.push({
|
ports.push({
|
||||||
human_name: this._portsStore.get_value(iter, 0),
|
human_name: this._portsStore.get_value(iter, 0),
|
||||||
name: this._portsStore.get_value(iter, 4),
|
name: this._portsStore.get_value(iter, 4),
|
||||||
display_option: this._portsStore.get_value(iter, 5)
|
display_option: this._portsStore.get_value(iter, 5),
|
||||||
|
card_name: this._portsStore.get_value(iter, 6),
|
||||||
|
display_name: this._portsStore.get_value(iter, 7)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
success = this._portsStore.iter_next(iter);
|
success = this._portsStore.iter_next(iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._settings.set_string(PORT_SETTINGS, JSON.stringify(ports));
|
setPortsSettings(ports, this._settings);
|
||||||
},
|
},
|
||||||
|
|
||||||
_restorePortsFromSettings: function() {
|
_restorePortsFromSettings: function() {
|
||||||
let ports = JSON.parse(this._settings.get_string(PORT_SETTINGS));
|
let ports = getPortsFromSettings(this._settings);
|
||||||
|
|
||||||
let found;
|
let found;
|
||||||
for (let port of ports) {
|
for (let port of ports) {
|
||||||
|
@ -199,8 +252,9 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
while (iter && success) {
|
while (iter && success) {
|
||||||
let human_name = this._portsStore.get_value(iter, 0);
|
let human_name = this._portsStore.get_value(iter, 0);
|
||||||
let name = this._portsStore.get_value(iter, 4);
|
let name = this._portsStore.get_value(iter, 4);
|
||||||
|
let card_name = this._portsStore.get_value(iter, 6);
|
||||||
|
|
||||||
if(port.name == name && port.human_name == human_name) {
|
if (port.name == name && port.human_name == human_name && port.card_name == card_name) {
|
||||||
this._portsStore.set_value(iter, 3, false);
|
this._portsStore.set_value(iter, 3, false);
|
||||||
this._portsStore.set_value(iter, port.display_option, true);
|
this._portsStore.set_value(iter, port.display_option, true);
|
||||||
this._portsStore.set_value(iter, 5, port.display_option);
|
this._portsStore.set_value(iter, 5, port.display_option);
|
||||||
|
@ -210,10 +264,10 @@ const SDCSettingsWidget = new GObject.Class({
|
||||||
success = this._portsStore.iter_next(iter);
|
success = this._portsStore.iter_next(iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!found){
|
if (!found) {
|
||||||
iter = this._portsStore.append();
|
iter = this._portsStore.append();
|
||||||
this._portsStore.set(iter, [0,1,2,3,4,5],
|
this._portsStore.set(iter, [0, 1, 2, 3, 4, 5, 6, 7],
|
||||||
[port.human_name, false, false, false, port.name,port.display_option]);
|
[port.human_name, false, false, false, port.name, port.display_option, port.card_name, port.display_name]);
|
||||||
this._portsStore.set_value(iter, port.display_option, true);
|
this._portsStore.set_value(iter, port.display_option, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!-- Generated with glade 3.22.1 -->
|
<!-- Generated with glade 3.38.2 -->
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.16"/>
|
<requires lib="gtk+" version="3.16"/>
|
||||||
<object class="GtkListStore" id="icon-theme-store">
|
<object class="GtkListStore" id="icon-theme-store">
|
||||||
|
@ -38,65 +38,69 @@
|
||||||
<column type="gchararray"/>
|
<column type="gchararray"/>
|
||||||
<!-- column-name SelectedColumn -->
|
<!-- column-name SelectedColumn -->
|
||||||
<column type="gint"/>
|
<column type="gint"/>
|
||||||
|
<!-- column-name CardName -->
|
||||||
|
<column type="gchararray"/>
|
||||||
|
<!-- column-name DisplayName -->
|
||||||
|
<column type="gchararray"/>
|
||||||
</columns>
|
</columns>
|
||||||
</object>
|
</object>
|
||||||
<object class="GtkBox" id="main-container">
|
<object class="GtkBox" id="main-container">
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_left">6</property>
|
<property name="margin-left">6</property>
|
||||||
<property name="margin_right">6</property>
|
<property name="margin-right">6</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="spacing">2</property>
|
<property name="spacing">2</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="homogeneous">True</property>
|
<property name="homogeneous">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_left">12</property>
|
<property name="margin-left">12</property>
|
||||||
<property name="margin_right">6</property>
|
<property name="margin-right">6</property>
|
||||||
<property name="margin_top">12</property>
|
<property name="margin-top">12</property>
|
||||||
<property name="margin_bottom">12</property>
|
<property name="margin-bottom">12</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<property name="spacing">12</property>
|
<property name="spacing">12</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">out</property>
|
<property name="shadow-type">out</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkAlignment">
|
<object class="GtkAlignment">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBox">
|
<object class="GtkListBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="selection_mode">none</property>
|
<property name="selection-mode">none</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Hide selector if there's only one device</property>
|
<property name="label" translatable="yes">Hide selector if there's only one device</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -108,9 +112,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="single-device">
|
<object class="GtkSwitch" id="single-device">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -124,21 +128,21 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Display audio profiles for selection</property>
|
<property name="label" translatable="yes">Display audio profiles for selection</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -150,9 +154,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="show-profile">
|
<object class="GtkSwitch" id="show-profile">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -166,22 +170,22 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="margin_right">20</property>
|
<property name="margin-right">20</property>
|
||||||
<property name="label" translatable="yes">Extend Volume Menu to fit device names</property>
|
<property name="label" translatable="yes">Extend Volume Menu to fit device names</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -193,9 +197,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="expand-volume-menu">
|
<object class="GtkSwitch" id="expand-volume-menu">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -214,7 +218,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">General Settings</property>
|
<property name="label" translatable="yes">General Settings</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
@ -231,35 +235,35 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">out</property>
|
<property name="shadow-type">out</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkAlignment">
|
<object class="GtkAlignment">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBox">
|
<object class="GtkListBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="valign">center</property>
|
<property name="valign">center</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Show output devices</property>
|
<property name="label" translatable="yes">Show output devices</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -271,9 +275,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="show-output-devices">
|
<object class="GtkSwitch" id="show-output-devices">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -292,7 +296,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">Output Devices</property>
|
<property name="label" translatable="yes">Output Devices</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
@ -309,37 +313,37 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">out</property>
|
<property name="shadow-type">out</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkAlignment">
|
<object class="GtkAlignment">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBox">
|
<object class="GtkListBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="selection_mode">none</property>
|
<property name="selection-mode">none</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="valign">center</property>
|
<property name="valign">center</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Show input devices</property>
|
<property name="label" translatable="yes">Show input devices</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -351,9 +355,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="show-input-devices">
|
<object class="GtkSwitch" id="show-input-devices">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -367,22 +371,22 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="valign">center</property>
|
<property name="valign">center</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Show volume control for default device</property>
|
<property name="label" translatable="yes">Show volume control for default device</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -394,9 +398,9 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="show-input-slider">
|
<object class="GtkSwitch" id="show-input-slider">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="halign">end</property>
|
<property name="halign">end</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -415,7 +419,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">Input Devices</property>
|
<property name="label" translatable="yes">Input Devices</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
@ -432,36 +436,36 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow-type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkAlignment">
|
<object class="GtkAlignment">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBox">
|
<object class="GtkListBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="selection_mode">none</property>
|
<property name="selection-mode">none</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="name">6</property>
|
<property name="name">6</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Icon Theme</property>
|
<property name="label" translatable="yes">Icon Theme</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -472,12 +476,12 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkComboBox" id="icon-theme">
|
<object class="GtkComboBox" id="icon-theme">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
<property name="model">icon-theme-store</property>
|
<property name="model">icon-theme-store</property>
|
||||||
<property name="id_column">0</property>
|
<property name="id-column">0</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkCellRendererText" id="Text"/>
|
<object class="GtkCellRendererText" id="Text"/>
|
||||||
<attributes>
|
<attributes>
|
||||||
|
@ -497,21 +501,21 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Display icons only in selection list</property>
|
<property name="label" translatable="yes">Display icons only in selection list</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -523,8 +527,8 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="hide-menu-icons">
|
<object class="GtkSwitch" id="hide-menu-icons">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="margin_right">5</property>
|
<property name="margin-right">5</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -543,7 +547,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">Icons</property>
|
<property name="label" translatable="yes">Icons</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
@ -560,36 +564,36 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow-type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkAlignment">
|
<object class="GtkAlignment">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBox">
|
<object class="GtkListBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="selection_mode">none</property>
|
<property name="selection-mode">none</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="name">6</property>
|
<property name="name">6</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Enable Log messages</property>
|
<property name="label" translatable="yes">Enable Log messages</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -601,7 +605,7 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="enable-log">
|
<object class="GtkSwitch" id="enable-log">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
|
@ -615,21 +619,21 @@
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkListBoxRow">
|
<object class="GtkListBoxRow">
|
||||||
<property name="width_request">100</property>
|
<property name="width-request">100</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_top">6</property>
|
<property name="margin-top">6</property>
|
||||||
<property name="margin_bottom">6</property>
|
<property name="margin-bottom">6</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="halign">start</property>
|
<property name="halign">start</property>
|
||||||
<property name="margin_left">5</property>
|
<property name="margin-left">5</property>
|
||||||
<property name="label" translatable="yes">Enable new profile identification </property>
|
<property name="label" translatable="yes">Enable new profile identification </property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -641,7 +645,7 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSwitch" id="new-profile-identification">
|
<object class="GtkSwitch" id="new-profile-identification">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="active">True</property>
|
<property name="active">True</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
|
@ -661,7 +665,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">Miscellaneous</property>
|
<property name="label" translatable="yes">Miscellaneous</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
@ -685,41 +689,42 @@
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_left">6</property>
|
<property name="margin-left">6</property>
|
||||||
<property name="margin_right">12</property>
|
<property name="margin-right">12</property>
|
||||||
<property name="margin_top">12</property>
|
<property name="margin-top">12</property>
|
||||||
<property name="margin_bottom">12</property>
|
<property name="margin-bottom">12</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame">
|
<object class="GtkFrame">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="label_xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow_type">out</property>
|
<property name="shadow-type">out</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin_left">4</property>
|
<property name="margin-left">4</property>
|
||||||
<property name="margin_right">4</property>
|
<property name="margin-right">4</property>
|
||||||
<property name="margin_bottom">4</property>
|
<property name="margin-bottom">4</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="opacity">0.99999999865889544</property>
|
<property name="opacity">0.9999999986588954</property>
|
||||||
<property name="hexpand">True</property>
|
<property name="hexpand">True</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="resize_mode">queue</property>
|
<property name="resize-mode">queue</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow-type">in</property>
|
||||||
|
<property name="min-content-width">500</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeView" id="port-treeview">
|
<object class="GtkTreeView" id="port-treeview">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="vexpand">True</property>
|
<property name="vexpand">True</property>
|
||||||
<property name="model">ports-store</property>
|
<property name="model">ports-store</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
|
@ -729,20 +734,21 @@
|
||||||
<object class="GtkTreeViewColumn" id="PortNameColumn">
|
<object class="GtkTreeViewColumn" id="PortNameColumn">
|
||||||
<property name="resizable">True</property>
|
<property name="resizable">True</property>
|
||||||
<property name="sizing">autosize</property>
|
<property name="sizing">autosize</property>
|
||||||
<property name="min_width">100</property>
|
<property name="min-width">100</property>
|
||||||
<property name="title" translatable="yes">Name</property>
|
<property name="title" translatable="yes">Name</property>
|
||||||
<property name="expand">True</property>
|
<property name="expand">True</property>
|
||||||
<property name="sort_order">descending</property>
|
<property name="sort-order">descending</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkCellRendererText" id="PortNameRenderer"/>
|
<object class="GtkCellRendererText" id="PortNameRenderer"/>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="text">0</attribute>
|
<attribute name="text">7</attribute>
|
||||||
</attributes>
|
</attributes>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeViewColumn" id="ShowAlwaysColumn">
|
<object class="GtkTreeViewColumn" id="ShowAlwaysColumn">
|
||||||
|
<property name="visible">False</property>
|
||||||
<property name="sizing">autosize</property>
|
<property name="sizing">autosize</property>
|
||||||
<property name="title" translatable="yes">Show</property>
|
<property name="title" translatable="yes">Show</property>
|
||||||
<child>
|
<child>
|
||||||
|
@ -797,7 +803,7 @@
|
||||||
<child type="label">
|
<child type="label">
|
||||||
<object class="GtkLabel">
|
<object class="GtkLabel">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="label" translatable="yes">Port Settings</property>
|
<property name="label" translatable="yes">Port Settings</property>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="weight" value="bold"/>
|
<attribute name="weight" value="bold"/>
|
||||||
|
|
Binary file not shown.
|
@ -2,6 +2,7 @@
|
||||||
# '/usr/include/pulse/introspect.h' '/usr/include/pulse/mainloop.h' '/usr/include/pulse/context.h'
|
# '/usr/include/pulse/introspect.h' '/usr/include/pulse/mainloop.h' '/usr/include/pulse/context.h'
|
||||||
# Refer additional licensing requirements for the files included
|
# Refer additional licensing requirements for the files included
|
||||||
# sample commands used
|
# sample commands used
|
||||||
|
# python3 /usr/bin/clang2py --clang-args="-I/usr/include/clang/6.0/include -I/usr/include/pulse" -l /usr/lib/libpulse.so '/usr/include/pulse/introspect.h' '/usr/include/pulse/mainloop.h' '/usr/include/pulse/proplist.h'
|
||||||
# python3 /usr/local/bin/clang2py --clang-args="-I/usr/include/clang/6.0/include -I/usr/include/pulse" -l /usr/lib/x86_64-linux-gnu/libpulse.so '/usr/include/pulse/introspect.h' '/usr/include/pulse/mainloop.h'
|
# python3 /usr/local/bin/clang2py --clang-args="-I/usr/include/clang/6.0/include -I/usr/include/pulse" -l /usr/lib/x86_64-linux-gnu/libpulse.so '/usr/include/pulse/introspect.h' '/usr/include/pulse/mainloop.h'
|
||||||
# python3 /usr/local/bin/clang2py --clang-args="-I/usr/include/clang/6.0/include -I/usr/include/pulse" -l /usr/lib/x86_64-linux-gnu/libpulse.so '/usr/include/pulse/context.h'
|
# python3 /usr/local/bin/clang2py --clang-args="-I/usr/include/clang/6.0/include -I/usr/include/pulse" -l /usr/lib/x86_64-linux-gnu/libpulse.so '/usr/include/pulse/context.h'
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -490,6 +491,16 @@ pa_operation_unref.argtypes = [POINTER_T(struct_pa_operation)]
|
||||||
# ('tv_usec', ctypes.c_int64),
|
# ('tv_usec', ctypes.c_int64),
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
|
pa_proplist_to_string = _libraries['libpulse.so'].pa_proplist_to_string
|
||||||
|
pa_proplist_to_string.restype = POINTER_T(ctypes.c_char)
|
||||||
|
pa_proplist_to_string.argtypes = [POINTER_T(struct_pa_proplist)]
|
||||||
|
|
||||||
|
pa_proplist_gets = _libraries['libpulse.so'].pa_proplist_gets
|
||||||
|
pa_proplist_gets.restype = POINTER_T(ctypes.c_char)
|
||||||
|
pa_proplist_gets.argtypes = [POINTER_T(struct_pa_proplist), POINTER_T(ctypes.c_char)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = \
|
__all__ = \
|
||||||
['PA_CONTEXT_AUTHORIZING', 'PA_CONTEXT_CONNECTING',
|
['PA_CONTEXT_AUTHORIZING', 'PA_CONTEXT_CONNECTING',
|
||||||
'PA_CONTEXT_FAILED', 'PA_CONTEXT_NOAUTOSPAWN',
|
'PA_CONTEXT_FAILED', 'PA_CONTEXT_NOAUTOSPAWN',
|
||||||
|
@ -534,4 +545,4 @@ __all__ = \
|
||||||
'struct_pa_mainloop_api', 'struct_pa_operation',
|
'struct_pa_mainloop_api', 'struct_pa_operation',
|
||||||
'struct_pa_proplist', 'struct_pa_sample_spec',
|
'struct_pa_proplist', 'struct_pa_sample_spec',
|
||||||
'struct_pa_spawn_api', 'struct_pa_time_event', 'struct_pollfd',
|
'struct_pa_spawn_api', 'struct_pa_time_event', 'struct_pollfd',
|
||||||
'struct_timeval', 'uint32_t']
|
'struct_timeval', 'uint32_t','pa_proplist_to_string','pa_proplist_gets']
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import libpulse_introspect as pa
|
import libpulse_introspect as pa
|
||||||
import sys
|
import sys
|
||||||
from ctypes import c_int,byref
|
from ctypes import c_int,byref, c_char_p, cast
|
||||||
import time
|
import time
|
||||||
from json import dumps
|
from json import dumps
|
||||||
|
|
||||||
|
@ -58,8 +58,8 @@ class PAHelper():
|
||||||
|
|
||||||
pa.pa_mainloop_iterate(self.mainloop, 0, byref(retVal))
|
pa.pa_mainloop_iterate(self.mainloop, 0, byref(retVal))
|
||||||
|
|
||||||
# print(dumps(self._ports, indent = 5))
|
|
||||||
print(dumps({'cards': self._cards, 'ports':self._ports}, indent = 5))
|
print(dumps({'cards': self._cards, 'ports':self._ports}, indent = 5))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if operation:
|
if operation:
|
||||||
|
@ -82,6 +82,13 @@ class PAHelper():
|
||||||
card_obj['index'] = str(card.index)
|
card_obj['index'] = str(card.index)
|
||||||
self._cards[card.index] = card_obj
|
self._cards[card.index] = card_obj
|
||||||
card_obj['profiles'] = []
|
card_obj['profiles'] = []
|
||||||
|
|
||||||
|
card_name = cast(pa.pa_proplist_gets(card.proplist,c_char_p(b'alsa.card_name')),c_char_p)
|
||||||
|
card_obj['alsa_name'] = card_name.value.decode('utf8') if card_name else ''
|
||||||
|
description = cast(pa.pa_proplist_gets(card.proplist,c_char_p(b'device.description')),c_char_p)
|
||||||
|
card_obj['card_description'] = description.value.decode('utf8') if description else ''
|
||||||
|
|
||||||
|
card_obj['name'] = card.name.decode('utf8') if card.name else ''
|
||||||
for k in range(0, card.n_profiles):
|
for k in range(0, card.n_profiles):
|
||||||
if(card.profiles2[k]):
|
if(card.profiles2[k]):
|
||||||
profile = card.profiles2[k].contents
|
profile = card.profiles2[k].contents
|
||||||
|
@ -102,6 +109,7 @@ class PAHelper():
|
||||||
obj['available'] = port.available
|
obj['available'] = port.available
|
||||||
obj['n_profiles'] = port.n_profiles
|
obj['n_profiles'] = port.n_profiles
|
||||||
obj['profiles'] = []
|
obj['profiles'] = []
|
||||||
|
obj['card_name'] = card_obj['name']
|
||||||
for j in range(0, port.n_profiles):
|
for j in range(0, port.n_profiles):
|
||||||
if(port.profiles2[j]):
|
if(port.profiles2[j]):
|
||||||
profile = port.profiles2[j].contents
|
profile = port.profiles2[j].contents
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
raw.githubusercontent.com:HSTS 0 18617 1640101514058,1,0,2
|
|
Binary file not shown.
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"version":1,"listeners":{"remote-settings/monitor_changes":{"version":"\"1608559052107\"","sourceInfo":{"moduleURI":"resource://services-settings/remote-settings.js","symbolName":"remoteSettingsBroadcastHandler"}}}}
|
{"version":1,"listeners":{"remote-settings/monitor_changes":{"version":"\"1611086252115\"","sourceInfo":{"moduleURI":"resource://services-settings/remote-settings.js","symbolName":"remoteSettingsBroadcastHandler"}}}}
|
|
@ -1,5 +1,5 @@
|
||||||
[Compatibility]
|
[Compatibility]
|
||||||
LastVersion=84.0_20201215210116/20201215210116
|
LastVersion=84.0.2_20210107154745/20210107154745
|
||||||
LastOSABI=Linux_x86_64-gcc3
|
LastOSABI=Linux_x86_64-gcc3
|
||||||
LastPlatformDir=/usr/lib/firefox
|
LastPlatformDir=/usr/lib/firefox
|
||||||
LastAppDir=/usr/lib/firefox/browser
|
LastAppDir=/usr/lib/firefox/browser
|
||||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -14,20 +14,22 @@ user_pref("app.normandy.first_run", false);
|
||||||
user_pref("app.normandy.migrationsApplied", 10);
|
user_pref("app.normandy.migrationsApplied", 10);
|
||||||
user_pref("app.normandy.startupExperimentPrefs.dom.push.alwaysConnect", true);
|
user_pref("app.normandy.startupExperimentPrefs.dom.push.alwaysConnect", true);
|
||||||
user_pref("app.normandy.startupRolloutPrefs.app.normandy.onsync_skew_sec", 3300);
|
user_pref("app.normandy.startupRolloutPrefs.app.normandy.onsync_skew_sec", 3300);
|
||||||
|
user_pref("app.normandy.startupRolloutPrefs.browser.toolbars.bookmarks.2h2020", true);
|
||||||
user_pref("app.normandy.startupRolloutPrefs.doh-rollout.enabled", true);
|
user_pref("app.normandy.startupRolloutPrefs.doh-rollout.enabled", true);
|
||||||
user_pref("app.normandy.startupRolloutPrefs.doh-rollout.profileCreationThreshold", "1896163212345");
|
user_pref("app.normandy.startupRolloutPrefs.doh-rollout.profileCreationThreshold", "1896163212345");
|
||||||
|
user_pref("app.normandy.startupRolloutPrefs.network.preload", true);
|
||||||
user_pref("app.normandy.startupRolloutPrefs.services.sync.bookmarks.buffer.enabled", true);
|
user_pref("app.normandy.startupRolloutPrefs.services.sync.bookmarks.buffer.enabled", true);
|
||||||
user_pref("app.normandy.user_id", "f6151ad0-fece-4d81-9d5c-67449843ccf0");
|
user_pref("app.normandy.user_id", "f6151ad0-fece-4d81-9d5c-67449843ccf0");
|
||||||
user_pref("app.shield.optoutstudies.enabled", false);
|
user_pref("app.shield.optoutstudies.enabled", false);
|
||||||
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1606946507);
|
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 1611097648);
|
||||||
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1588540518);
|
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 1588540518);
|
||||||
user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1608565237);
|
user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 1611097888);
|
||||||
user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1608565211);
|
user_pref("app.update.lastUpdateTime.recipe-client-addon-run", 1611098008);
|
||||||
user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1608565076);
|
user_pref("app.update.lastUpdateTime.rs-experiment-loader-timer", 1608565076);
|
||||||
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1608565357);
|
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 1608565357);
|
||||||
user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1608565477);
|
user_pref("app.update.lastUpdateTime.services-settings-poll-changes", 1608565477);
|
||||||
user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1573002408);
|
user_pref("app.update.lastUpdateTime.telemetry_modules_ping", 1573002408);
|
||||||
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1606946627);
|
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 1611097768);
|
||||||
user_pref("browser.bookmarks.defaultLocation", "unfiled");
|
user_pref("browser.bookmarks.defaultLocation", "unfiled");
|
||||||
user_pref("browser.bookmarks.restore_default_bookmarks", false);
|
user_pref("browser.bookmarks.restore_default_bookmarks", false);
|
||||||
user_pref("browser.cache.disk.amount_written", 1754406);
|
user_pref("browser.cache.disk.amount_written", 1754406);
|
||||||
|
@ -58,26 +60,24 @@ user_pref("browser.newtabpage.pinned", "[{\"url\":\"https://google.com\",\"label
|
||||||
user_pref("browser.newtabpage.storageVersion", 1);
|
user_pref("browser.newtabpage.storageVersion", 1);
|
||||||
user_pref("browser.pageActions.persistedActions", "{\"version\":1,\"ids\":[\"bookmark\",\"bookmarkSeparator\",\"copyURL\",\"emailLink\",\"addSearchEngine\",\"screenshots_mozilla_org\",\"pinTab\"],\"idsInUrlbar\":[\"bookmark\"]}");
|
user_pref("browser.pageActions.persistedActions", "{\"version\":1,\"ids\":[\"bookmark\",\"bookmarkSeparator\",\"copyURL\",\"emailLink\",\"addSearchEngine\",\"screenshots_mozilla_org\",\"pinTab\"],\"idsInUrlbar\":[\"bookmark\"]}");
|
||||||
user_pref("browser.pagethumbnails.storage_version", 3);
|
user_pref("browser.pagethumbnails.storage_version", 3);
|
||||||
user_pref("browser.region.update.first-seen", 1608565077);
|
|
||||||
user_pref("browser.region.update.region", "DE");
|
|
||||||
user_pref("browser.rights.3.shown", true);
|
user_pref("browser.rights.3.shown", true);
|
||||||
user_pref("browser.safebrowsing.provider.google4.lastupdatetime", "1608565082888");
|
user_pref("browser.safebrowsing.provider.google4.lastupdatetime", "1611099419825");
|
||||||
user_pref("browser.safebrowsing.provider.google4.nextupdatetime", "1608566904888");
|
user_pref("browser.safebrowsing.provider.google4.nextupdatetime", "1611101199825");
|
||||||
user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1608565088092");
|
user_pref("browser.safebrowsing.provider.mozilla.lastupdatetime", "1611097630263");
|
||||||
user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1608586688092");
|
user_pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1611119230263");
|
||||||
user_pref("browser.search.region", "ES");
|
user_pref("browser.search.region", "ES");
|
||||||
user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20201215210116");
|
user_pref("browser.sessionstore.upgradeBackup.latestBuildID", "20210107154745");
|
||||||
user_pref("browser.shell.checkDefaultBrowser", true);
|
user_pref("browser.shell.checkDefaultBrowser", true);
|
||||||
user_pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", true);
|
user_pref("browser.shell.didSkipDefaultBrowserCheckOnFirstRun", true);
|
||||||
user_pref("browser.shell.mostRecentDateSetAsDefault", "1608565208");
|
user_pref("browser.shell.mostRecentDateSetAsDefault", "1611097620");
|
||||||
user_pref("browser.slowStartup.averageTime", 2223);
|
user_pref("browser.slowStartup.averageTime", 0);
|
||||||
user_pref("browser.slowStartup.samples", 4);
|
user_pref("browser.slowStartup.samples", 0);
|
||||||
user_pref("browser.startup.homepage", "moz-extension://f393b4c4-359a-4d1e-b377-fd4b41112e16/index.html");
|
user_pref("browser.startup.homepage", "moz-extension://f393b4c4-359a-4d1e-b377-fd4b41112e16/index.html");
|
||||||
user_pref("browser.startup.homepage_override.buildID", "20201215210116");
|
user_pref("browser.startup.homepage_override.buildID", "20210107154745");
|
||||||
user_pref("browser.startup.homepage_override.extensionControlled", true);
|
user_pref("browser.startup.homepage_override.extensionControlled", true);
|
||||||
user_pref("browser.startup.homepage_override.mstone", "84.0");
|
user_pref("browser.startup.homepage_override.mstone", "84.0.2");
|
||||||
user_pref("browser.startup.homepage_override.privateAllowed", true);
|
user_pref("browser.startup.homepage_override.privateAllowed", true);
|
||||||
user_pref("browser.startup.lastColdStartupCheck", 1608565208);
|
user_pref("browser.startup.lastColdStartupCheck", 1611097619);
|
||||||
user_pref("browser.startup.page", 3);
|
user_pref("browser.startup.page", 3);
|
||||||
user_pref("browser.tabs.drawInTitlebar", false);
|
user_pref("browser.tabs.drawInTitlebar", false);
|
||||||
user_pref("browser.tabs.extraDragSpace", true);
|
user_pref("browser.tabs.extraDragSpace", true);
|
||||||
|
@ -99,7 +99,7 @@ user_pref("devtools.toolsidebar-width.inspector.splitsidebar", 350);
|
||||||
user_pref("devtools.webextensions.https-everywhere@eff.org.enabled", true);
|
user_pref("devtools.webextensions.https-everywhere@eff.org.enabled", true);
|
||||||
user_pref("distribution.Manjaro.bookmarksProcessed", true);
|
user_pref("distribution.Manjaro.bookmarksProcessed", true);
|
||||||
user_pref("distribution.archlinux.bookmarksProcessed", true);
|
user_pref("distribution.archlinux.bookmarksProcessed", true);
|
||||||
user_pref("distribution.iniFile.exists.appversion", "84.0");
|
user_pref("distribution.iniFile.exists.appversion", "84.0.2");
|
||||||
user_pref("distribution.iniFile.exists.value", true);
|
user_pref("distribution.iniFile.exists.value", true);
|
||||||
user_pref("distribution.manjaro.bookmarksProcessed", true);
|
user_pref("distribution.manjaro.bookmarksProcessed", true);
|
||||||
user_pref("doh-rollout.balrog-migration-done", true);
|
user_pref("doh-rollout.balrog-migration-done", true);
|
||||||
|
@ -107,7 +107,7 @@ user_pref("doh-rollout.doneFirstRun", true);
|
||||||
user_pref("doh-rollout.doorhanger-decision", "UIOk");
|
user_pref("doh-rollout.doorhanger-decision", "UIOk");
|
||||||
user_pref("doh-rollout.mode", 2);
|
user_pref("doh-rollout.mode", 2);
|
||||||
user_pref("doh-rollout.self-enabled", true);
|
user_pref("doh-rollout.self-enabled", true);
|
||||||
user_pref("dom.push.userAgentID", "a50879c3826e4b92a407b2c491a9f9b9");
|
user_pref("dom.push.userAgentID", "f5abd17aff1a4d769a270e8ed28f9a91");
|
||||||
user_pref("dom.security.https_only_mode", true);
|
user_pref("dom.security.https_only_mode", true);
|
||||||
user_pref("dom.security.https_only_mode_ever_enabled", true);
|
user_pref("dom.security.https_only_mode_ever_enabled", true);
|
||||||
user_pref("extensions.activeThemeID", "default-theme@mozilla.org");
|
user_pref("extensions.activeThemeID", "default-theme@mozilla.org");
|
||||||
|
@ -115,13 +115,13 @@ user_pref("extensions.blocklist.lastModified", "Sat, 09 Nov 2019 17:49:50 GMT");
|
||||||
user_pref("extensions.blocklist.pingCountTotal", 34);
|
user_pref("extensions.blocklist.pingCountTotal", 34);
|
||||||
user_pref("extensions.blocklist.pingCountVersion", -1);
|
user_pref("extensions.blocklist.pingCountVersion", -1);
|
||||||
user_pref("extensions.databaseSchema", 33);
|
user_pref("extensions.databaseSchema", 33);
|
||||||
user_pref("extensions.getAddons.cache.lastUpdate", 1606946508);
|
user_pref("extensions.getAddons.cache.lastUpdate", 1611097649);
|
||||||
user_pref("extensions.getAddons.databaseSchema", 6);
|
user_pref("extensions.getAddons.databaseSchema", 6);
|
||||||
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
user_pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||||
user_pref("extensions.incognito.migrated", true);
|
user_pref("extensions.incognito.migrated", true);
|
||||||
user_pref("extensions.lastAppBuildId", "20201126174332");
|
user_pref("extensions.lastAppBuildId", "20201126174332");
|
||||||
user_pref("extensions.lastAppVersion", "84.0");
|
user_pref("extensions.lastAppVersion", "84.0.2");
|
||||||
user_pref("extensions.lastPlatformVersion", "84.0");
|
user_pref("extensions.lastPlatformVersion", "84.0.2");
|
||||||
user_pref("extensions.pendingOperations", false);
|
user_pref("extensions.pendingOperations", false);
|
||||||
user_pref("extensions.pocket.enabled", false);
|
user_pref("extensions.pocket.enabled", false);
|
||||||
user_pref("extensions.pocket.settings.test.panelSignUp", "control");
|
user_pref("extensions.pocket.settings.test.panelSignUp", "control");
|
||||||
|
@ -154,15 +154,15 @@ user_pref("gfx.blacklist.layers.opengl", 4);
|
||||||
user_pref("gfx.blacklist.layers.opengl.failureid", "FEATURE_FAILURE_SOFTWARE_GL");
|
user_pref("gfx.blacklist.layers.opengl.failureid", "FEATURE_FAILURE_SOFTWARE_GL");
|
||||||
user_pref("identity.fxaccounts.enabled", false);
|
user_pref("identity.fxaccounts.enabled", false);
|
||||||
user_pref("identity.fxaccounts.toolbar.accessed", true);
|
user_pref("identity.fxaccounts.toolbar.accessed", true);
|
||||||
user_pref("idle.lastDailyNotification", 1608565394);
|
user_pref("idle.lastDailyNotification", 1611097763);
|
||||||
user_pref("lightweightThemes.usedThemes", "[]");
|
user_pref("lightweightThemes.usedThemes", "[]");
|
||||||
user_pref("media.benchmark.vp9.fps", 102);
|
user_pref("media.benchmark.vp9.fps", 102);
|
||||||
user_pref("media.benchmark.vp9.versioncheck", 5);
|
user_pref("media.benchmark.vp9.versioncheck", 5);
|
||||||
user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3");
|
user_pref("media.gmp-gmpopenh264.abi", "x86_64-gcc3");
|
||||||
user_pref("media.gmp-gmpopenh264.lastUpdate", 1572996640);
|
user_pref("media.gmp-gmpopenh264.lastUpdate", 1572996640);
|
||||||
user_pref("media.gmp-gmpopenh264.version", "1.8.1.1");
|
user_pref("media.gmp-gmpopenh264.version", "1.8.1.1");
|
||||||
user_pref("media.gmp-manager.buildID", "20201215210116");
|
user_pref("media.gmp-manager.buildID", "20210107154745");
|
||||||
user_pref("media.gmp-manager.lastCheck", 1608565323);
|
user_pref("media.gmp-manager.lastCheck", 1611097723);
|
||||||
user_pref("media.gmp.storage.version.observed", 1);
|
user_pref("media.gmp.storage.version.observed", 1);
|
||||||
user_pref("network.dns.disablePrefetch", true);
|
user_pref("network.dns.disablePrefetch", true);
|
||||||
user_pref("network.http.speculative-parallel-limit", 0);
|
user_pref("network.http.speculative-parallel-limit", 0);
|
||||||
|
@ -174,13 +174,13 @@ user_pref("pdfjs.enabledCache.state", true);
|
||||||
user_pref("pdfjs.migrationVersion", 2);
|
user_pref("pdfjs.migrationVersion", 2);
|
||||||
user_pref("pdfjs.previousHandler.alwaysAskBeforeHandling", true);
|
user_pref("pdfjs.previousHandler.alwaysAskBeforeHandling", true);
|
||||||
user_pref("pdfjs.previousHandler.preferredAction", 4);
|
user_pref("pdfjs.previousHandler.preferredAction", 4);
|
||||||
user_pref("places.database.lastMaintenance", 1608565394);
|
user_pref("places.database.lastMaintenance", 1611097763);
|
||||||
user_pref("places.history.expiration.transient_current_max_pages", 112348);
|
user_pref("places.history.expiration.transient_current_max_pages", 84803);
|
||||||
user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf");
|
user_pref("plugin.disable_full_page_plugin_for_types", "application/pdf");
|
||||||
user_pref("privacy.cpd.offlineApps", true);
|
user_pref("privacy.cpd.offlineApps", true);
|
||||||
user_pref("privacy.cpd.siteSettings", true);
|
user_pref("privacy.cpd.siteSettings", true);
|
||||||
user_pref("privacy.purge_trackers.date_in_cookie_database", "0");
|
user_pref("privacy.purge_trackers.date_in_cookie_database", "0");
|
||||||
user_pref("privacy.purge_trackers.last_purge", "1608565394568");
|
user_pref("privacy.purge_trackers.last_purge", "1611097763522");
|
||||||
user_pref("privacy.sanitize.pending", "[]");
|
user_pref("privacy.sanitize.pending", "[]");
|
||||||
user_pref("privacy.sanitize.timeSpan", 0);
|
user_pref("privacy.sanitize.timeSpan", 0);
|
||||||
user_pref("privacy.trackingprotection.enabled", true);
|
user_pref("privacy.trackingprotection.enabled", true);
|
||||||
|
@ -189,40 +189,40 @@ user_pref("security.remote_settings.crlite_filters.checked", 1608567143);
|
||||||
user_pref("security.remote_settings.intermediates.checked", 1608567143);
|
user_pref("security.remote_settings.intermediates.checked", 1608567143);
|
||||||
user_pref("security.sandbox.content.tempDirSuffix", "62ec57d4-3516-41bf-957e-19cd307d5b61");
|
user_pref("security.sandbox.content.tempDirSuffix", "62ec57d4-3516-41bf-957e-19cd307d5b61");
|
||||||
user_pref("security.sandbox.plugin.tempDirSuffix", "851284ee-3855-4de7-86af-976adc3a2c11");
|
user_pref("security.sandbox.plugin.tempDirSuffix", "851284ee-3855-4de7-86af-976adc3a2c11");
|
||||||
user_pref("services.blocklist.addons-mlbf.checked", 1608567143);
|
user_pref("services.blocklist.addons-mlbf.checked", 1611097622);
|
||||||
user_pref("services.blocklist.addons.checked", 1598664411);
|
user_pref("services.blocklist.addons.checked", 1598664411);
|
||||||
user_pref("services.blocklist.gfx.checked", 1608567143);
|
user_pref("services.blocklist.gfx.checked", 1611097622);
|
||||||
user_pref("services.blocklist.onecrl.checked", 1565793602);
|
user_pref("services.blocklist.onecrl.checked", 1565793602);
|
||||||
user_pref("services.blocklist.pinning.checked", 1608567143);
|
user_pref("services.blocklist.pinning.checked", 1608567143);
|
||||||
user_pref("services.blocklist.plugins.checked", 1608567143);
|
user_pref("services.blocklist.plugins.checked", 1611097622);
|
||||||
user_pref("services.settings.clock_skew_seconds", -1666);
|
user_pref("services.settings.clock_skew_seconds", -1);
|
||||||
user_pref("services.settings.last_etag", "\"1608559052107\"");
|
user_pref("services.settings.last_etag", "\"1611086252115\"");
|
||||||
user_pref("services.settings.last_update_seconds", 1608567143);
|
user_pref("services.settings.last_update_seconds", 1611097622);
|
||||||
user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1608567143);
|
user_pref("services.settings.main.anti-tracking-url-decoration.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.cfr-fxa.last_check", 1608567143);
|
user_pref("services.settings.main.cfr-fxa.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.cfr.last_check", 1608567143);
|
user_pref("services.settings.main.cfr.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.fxmonitor-breaches.last_check", 1608567143);
|
user_pref("services.settings.main.fxmonitor-breaches.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.hijack-blocklists.last_check", 1608567143);
|
user_pref("services.settings.main.hijack-blocklists.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.language-dictionaries.last_check", 1608567143);
|
user_pref("services.settings.main.language-dictionaries.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.message-groups.last_check", 1608567143);
|
user_pref("services.settings.main.message-groups.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.messaging-experiments.last_check", 1604995344);
|
user_pref("services.settings.main.messaging-experiments.last_check", 1604995344);
|
||||||
user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1608567143);
|
user_pref("services.settings.main.nimbus-desktop-experiments.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1608567143);
|
user_pref("services.settings.main.normandy-recipes-capabilities.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.normandy-recipes.last_check", 1573409021);
|
user_pref("services.settings.main.normandy-recipes.last_check", 1573409021);
|
||||||
user_pref("services.settings.main.onboarding.last_check", 1565793602);
|
user_pref("services.settings.main.onboarding.last_check", 1565793602);
|
||||||
user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1608567143);
|
user_pref("services.settings.main.partitioning-exempt-urls.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.password-recipes.last_check", 1608567143);
|
user_pref("services.settings.main.password-recipes.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1608567143);
|
user_pref("services.settings.main.pioneer-study-addons-v1.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.pioneer-study-addons.last_check", 1608567143);
|
user_pref("services.settings.main.pioneer-study-addons.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.public-suffix-list.last_check", 1608567143);
|
user_pref("services.settings.main.public-suffix-list.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.search-config.last_check", 1608567143);
|
user_pref("services.settings.main.search-config.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.search-default-override-allowlist.last_check", 1608567143);
|
user_pref("services.settings.main.search-default-override-allowlist.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.search-telemetry.last_check", 1608567143);
|
user_pref("services.settings.main.search-telemetry.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.sites-classification.last_check", 1608567143);
|
user_pref("services.settings.main.sites-classification.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.tippytop.last_check", 1608567143);
|
user_pref("services.settings.main.tippytop.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.top-sites.last_check", 1608567143);
|
user_pref("services.settings.main.top-sites.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1608567143);
|
user_pref("services.settings.main.url-classifier-skip-urls.last_check", 1611097622);
|
||||||
user_pref("services.settings.main.whats-new-panel.last_check", 1608567143);
|
user_pref("services.settings.main.whats-new-panel.last_check", 1611097622);
|
||||||
user_pref("services.settings.security.onecrl.checked", 1608567143);
|
user_pref("services.settings.security.onecrl.checked", 1608567143);
|
||||||
user_pref("services.sync.clients.lastSync", "0");
|
user_pref("services.sync.clients.lastSync", "0");
|
||||||
user_pref("services.sync.declinedEngines", "");
|
user_pref("services.sync.declinedEngines", "");
|
||||||
|
@ -231,9 +231,9 @@ user_pref("services.sync.nextSync", 0);
|
||||||
user_pref("services.sync.tabs.lastSync", "0");
|
user_pref("services.sync.tabs.lastSync", "0");
|
||||||
user_pref("signon.importedFromSqlite", true);
|
user_pref("signon.importedFromSqlite", true);
|
||||||
user_pref("signon.usage.hasEntry", false);
|
user_pref("signon.usage.hasEntry", false);
|
||||||
user_pref("storage.vacuum.last.index", 0);
|
user_pref("storage.vacuum.last.index", 1);
|
||||||
user_pref("storage.vacuum.last.places.sqlite", 1608565394);
|
user_pref("storage.vacuum.last.places.sqlite", 1608565394);
|
||||||
user_pref("toolkit.startup.last_success", 1608565206);
|
user_pref("toolkit.startup.last_success", 1611097615);
|
||||||
user_pref("toolkit.telemetry.archive.enabled", false);
|
user_pref("toolkit.telemetry.archive.enabled", false);
|
||||||
user_pref("toolkit.telemetry.bhrPing.enabled", false);
|
user_pref("toolkit.telemetry.bhrPing.enabled", false);
|
||||||
user_pref("toolkit.telemetry.cachedClientID", "c0ffeec0-ffee-c0ff-eec0-ffeec0ffeec0");
|
user_pref("toolkit.telemetry.cachedClientID", "c0ffeec0-ffee-c0ff-eec0-ffeec0ffeec0");
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user