Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let MixerControl = null;
- let isConnected = false;
- const MixerAudio = new Lang.Class({
- Name: 'MixerAudio',
- _init: function () {
- Lib.TalkativeLog('mixer _init');
- MixerControl = this._getMixerControl();
- if (MixerControl) {
- isConnected = true;
- MixerControl.connect("state-changed", Lang.bind(this, this._onChangeStatePAC));
- } else {
- Lib.TalkativeLog('Error lib pulse NOT present or NOT respond');
- }
- },
- _getMixerControl: function () {
- var _mixerTmp;
- if (MixerControl) {
- Lib.TalkativeLog('mixer exist -> ' + MixerControl +
- ' state -> ' + MixerControl.get_state());
- return MixerControl;
- } else {
- Lib.TalkativeLog('mixer create');
- _mixerTmp = new Gvc.MixerControl({
- name: 'ESC Mixer Control'
- });
- _mixerTmp.open();
- return _mixerTmp;
- }
- },
- _onChangeStatePAC: function () {
- Lib.TalkativeLog('mixer state changed');
- switch (MixerControl.get_state()) {
- case Gvc.MixerControlState.CLOSED:
- Lib.TalkativeLog('mixer close');
- isConnected = false;
- break;
- case Gvc.MixerControlState.CONNECTING:
- Lib.TalkativeLog('mixer connecting');
- isConnected = false;
- break;
- case Gvc.MixerControlState.FAILED:
- Lib.TalkativeLog('mixer failed');
- isConnected = false;
- break;
- case Gvc.MixerControlState.READY:
- Lib.TalkativeLog('mixer ready');
- isConnected = true;
- var tmp = MixerControl.get_cards();
- Lib.TalkativeLog('mixer cards -> ' + tmp.length);
- for (let x in tmp) {
- Lib.TalkativeLog('_card index: ' + tmp[x].index);
- Lib.TalkativeLog('_card name: ' + tmp[x].name);
- Lib.TalkativeLog('_card icon: ' + tmp[x].icon_name);
- Lib.TalkativeLog('_card profile: ' + tmp[x].profile);
- Lib.TalkativeLog('_card human profile: ' + tmp[x].human_profile);
- }
- tmp = MixerControl.get_sources();
- Lib.TalkativeLog('mixer sources -> ' + tmp.length);
- for (let x in tmp) {
- Lib.TalkativeLog('_source index: ' + tmp[x].index);
- Lib.TalkativeLog('_source name: ' + tmp[x].name);
- Lib.TalkativeLog('_source icon: ' + tmp[x].icon_name);
- Lib.TalkativeLog('_source description: ' + tmp[x].description);
- }
- tmp = MixerControl.get_source_outputs();
- Lib.TalkativeLog('mixer source output -> ' + tmp.length);
- for (let x in tmp) {
- Lib.TalkativeLog('_sourceouput index: ' + tmp[x].index);
- Lib.TalkativeLog('_sourceouput name: ' + tmp[x].name);
- Lib.TalkativeLog('_sourceoutput icon: ' + tmp[x].icon_name);
- Lib.TalkativeLog('_sourceoutput description: ' + tmp[x].description);
- }
- tmp = MixerControl.get_sink_inputs();
- Lib.TalkativeLog('mixer sink input -> ' + tmp.length);
- for (let x in tmp) {
- Lib.TalkativeLog('_sink index: ' + tmp[x].index);
- Lib.TalkativeLog('_sink name: ' + tmp[x].name);
- Lib.TalkativeLog('_sink icon: ' + tmp[x].icon_name);
- Lib.TalkativeLog('_sink description: ' + tmp[x].description);
- }
- tmp = MixerControl.get_streams();
- Lib.TalkativeLog('mixer stream -> ' + tmp.length);
- for (let x in tmp) {
- Lib.TalkativeLog('_stream index: ' + tmp[x].index);
- Lib.TalkativeLog('_stream name: ' + tmp[x].name);
- Lib.TalkativeLog('_stream icon: ' + tmp[x].icon_name);
- Lib.TalkativeLog('_stream description: ' + tmp[x].description);;
- }
- break;
- default:
- Lib.TalkativeLog('mixer UNK');
- isConnected = false;
- break;
- }
- },
- checkPulseAudio: function () {
- Lib.TalkativeLog('check pulseaudio lib presence: ' + isConnected);
- return isConnected;
- },
- destroy: function () {
- this.destroy();
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement