@jellybrick/mpris-service 2.1.4 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2244 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +314 -0
- package/dist/index.d.mts +314 -0
- package/dist/index.mjs +2244 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +46 -28
- package/.dockerignore +0 -1
- package/.idea/discord.xml +0 -7
- package/.idea/jsLibraryMappings.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/mpris-service.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.travis.yml +0 -9
- package/Dockerfile +0 -31
- package/Makefile +0 -14
- package/dist/constants.js +0 -20
- package/dist/constants.js.map +0 -1
- package/dist/index.js +0 -452
- package/dist/index.js.map +0 -1
- package/dist/interfaces/mpris-interface.js +0 -49
- package/dist/interfaces/mpris-interface.js.map +0 -1
- package/dist/interfaces/player.js +0 -406
- package/dist/interfaces/player.js.map +0 -1
- package/dist/interfaces/playlists.js +0 -139
- package/dist/interfaces/playlists.js.map +0 -1
- package/dist/interfaces/root.js +0 -216
- package/dist/interfaces/root.js.map +0 -1
- package/dist/interfaces/tracklist.js +0 -160
- package/dist/interfaces/tracklist.js.map +0 -1
- package/dist/interfaces/types.js +0 -78
- package/dist/interfaces/types.js.map +0 -1
- package/dist/logging.js +0 -14
- package/dist/logging.js.map +0 -1
- package/src/constants.js +0 -31
- package/src/index.js +0 -477
- package/src/interfaces/mpris-interface.js +0 -53
- package/src/interfaces/player.js +0 -204
- package/src/interfaces/playlists.js +0 -84
- package/src/interfaces/root.js +0 -99
- package/src/interfaces/tracklist.js +0 -85
- package/src/interfaces/types.js +0 -75
- package/src/logging.js +0 -13
|
@@ -1,406 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _decorate(decorators, factory, superClass, mixins) { var api = _getDecoratorsApi(); if (mixins) { for (var i = 0; i < mixins.length; i++) { api = mixins[i](api); } } var r = factory(function initialize(O) { api.initializeInstanceElements(O, decorated.elements); }, superClass); var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); api.initializeClassElements(r.F, decorated.elements); return api.runClassFinishers(r.F, decorated.finishers); }
|
|
4
|
-
function _getDecoratorsApi() { _getDecoratorsApi = function () { return api; }; var api = { elementsDefinitionOrder: [["method"], ["field"]], initializeInstanceElements: function (O, elements) { ["method", "field"].forEach(function (kind) { elements.forEach(function (element) { if (element.kind === kind && element.placement === "own") { this.defineClassElement(O, element); } }, this); }, this); }, initializeClassElements: function (F, elements) { var proto = F.prototype; ["method", "field"].forEach(function (kind) { elements.forEach(function (element) { var placement = element.placement; if (element.kind === kind && (placement === "static" || placement === "prototype")) { var receiver = placement === "static" ? F : proto; this.defineClassElement(receiver, element); } }, this); }, this); }, defineClassElement: function (receiver, element) { var descriptor = element.descriptor; if (element.kind === "field") { var initializer = element.initializer; descriptor = { enumerable: descriptor.enumerable, writable: descriptor.writable, configurable: descriptor.configurable, value: initializer === void 0 ? void 0 : initializer.call(receiver) }; } Object.defineProperty(receiver, element.key, descriptor); }, decorateClass: function (elements, decorators) { var newElements = []; var finishers = []; var placements = { static: [], prototype: [], own: [] }; elements.forEach(function (element) { this.addElementPlacement(element, placements); }, this); elements.forEach(function (element) { if (!_hasDecorators(element)) return newElements.push(element); var elementFinishersExtras = this.decorateElement(element, placements); newElements.push(elementFinishersExtras.element); newElements.push.apply(newElements, elementFinishersExtras.extras); finishers.push.apply(finishers, elementFinishersExtras.finishers); }, this); if (!decorators) { return { elements: newElements, finishers: finishers }; } var result = this.decorateConstructor(newElements, decorators); finishers.push.apply(finishers, result.finishers); result.finishers = finishers; return result; }, addElementPlacement: function (element, placements, silent) { var keys = placements[element.placement]; if (!silent && keys.indexOf(element.key) !== -1) { throw new TypeError("Duplicated element (" + element.key + ")"); } keys.push(element.key); }, decorateElement: function (element, placements) { var extras = []; var finishers = []; for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { var keys = placements[element.placement]; keys.splice(keys.indexOf(element.key), 1); var elementObject = this.fromElementDescriptor(element); var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); element = elementFinisherExtras.element; this.addElementPlacement(element, placements); if (elementFinisherExtras.finisher) { finishers.push(elementFinisherExtras.finisher); } var newExtras = elementFinisherExtras.extras; if (newExtras) { for (var j = 0; j < newExtras.length; j++) { this.addElementPlacement(newExtras[j], placements); } extras.push.apply(extras, newExtras); } } return { element: element, finishers: finishers, extras: extras }; }, decorateConstructor: function (elements, decorators) { var finishers = []; for (var i = decorators.length - 1; i >= 0; i--) { var obj = this.fromClassDescriptor(elements); var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); if (elementsAndFinisher.finisher !== undefined) { finishers.push(elementsAndFinisher.finisher); } if (elementsAndFinisher.elements !== undefined) { elements = elementsAndFinisher.elements; for (var j = 0; j < elements.length - 1; j++) { for (var k = j + 1; k < elements.length; k++) { if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { throw new TypeError("Duplicated element (" + elements[j].key + ")"); } } } } } return { elements: elements, finishers: finishers }; }, fromElementDescriptor: function (element) { var obj = { kind: element.kind, key: element.key, placement: element.placement, descriptor: element.descriptor }; var desc = { value: "Descriptor", configurable: true }; Object.defineProperty(obj, Symbol.toStringTag, desc); if (element.kind === "field") obj.initializer = element.initializer; return obj; }, toElementDescriptors: function (elementObjects) { if (elementObjects === undefined) return; return _toArray(elementObjects).map(function (elementObject) { var element = this.toElementDescriptor(elementObject); this.disallowProperty(elementObject, "finisher", "An element descriptor"); this.disallowProperty(elementObject, "extras", "An element descriptor"); return element; }, this); }, toElementDescriptor: function (elementObject) { var kind = String(elementObject.kind); if (kind !== "method" && kind !== "field") { throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); } var key = _toPropertyKey(elementObject.key); var placement = String(elementObject.placement); if (placement !== "static" && placement !== "prototype" && placement !== "own") { throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); } var descriptor = elementObject.descriptor; this.disallowProperty(elementObject, "elements", "An element descriptor"); var element = { kind: kind, key: key, placement: placement, descriptor: Object.assign({}, descriptor) }; if (kind !== "field") { this.disallowProperty(elementObject, "initializer", "A method descriptor"); } else { this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); element.initializer = elementObject.initializer; } return element; }, toElementFinisherExtras: function (elementObject) { var element = this.toElementDescriptor(elementObject); var finisher = _optionalCallableProperty(elementObject, "finisher"); var extras = this.toElementDescriptors(elementObject.extras); return { element: element, finisher: finisher, extras: extras }; }, fromClassDescriptor: function (elements) { var obj = { kind: "class", elements: elements.map(this.fromElementDescriptor, this) }; var desc = { value: "Descriptor", configurable: true }; Object.defineProperty(obj, Symbol.toStringTag, desc); return obj; }, toClassDescriptor: function (obj) { var kind = String(obj.kind); if (kind !== "class") { throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); } this.disallowProperty(obj, "key", "A class descriptor"); this.disallowProperty(obj, "placement", "A class descriptor"); this.disallowProperty(obj, "descriptor", "A class descriptor"); this.disallowProperty(obj, "initializer", "A class descriptor"); this.disallowProperty(obj, "extras", "A class descriptor"); var finisher = _optionalCallableProperty(obj, "finisher"); var elements = this.toElementDescriptors(obj.elements); return { elements: elements, finisher: finisher }; }, runClassFinishers: function (constructor, finishers) { for (var i = 0; i < finishers.length; i++) { var newConstructor = (0, finishers[i])(constructor); if (newConstructor !== undefined) { if (typeof newConstructor !== "function") { throw new TypeError("Finishers must return a constructor."); } constructor = newConstructor; } } return constructor; }, disallowProperty: function (obj, name, objectType) { if (obj[name] !== undefined) { throw new TypeError(objectType + " can't have a ." + name + " property."); } } }; return api; }
|
|
5
|
-
function _createElementDescriptor(def) { var key = _toPropertyKey(def.key); var descriptor; if (def.kind === "method") { descriptor = { value: def.value, writable: true, configurable: true, enumerable: false }; } else if (def.kind === "get") { descriptor = { get: def.value, configurable: true, enumerable: false }; } else if (def.kind === "set") { descriptor = { set: def.value, configurable: true, enumerable: false }; } else if (def.kind === "field") { descriptor = { configurable: true, writable: true, enumerable: true }; } var element = { kind: def.kind === "field" ? "field" : "method", key: key, placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype", descriptor: descriptor }; if (def.decorators) element.decorators = def.decorators; if (def.kind === "field") element.initializer = def.value; return element; }
|
|
6
|
-
function _coalesceGetterSetter(element, other) { if (element.descriptor.get !== undefined) { other.descriptor.get = element.descriptor.get; } else { other.descriptor.set = element.descriptor.set; } }
|
|
7
|
-
function _coalesceClassElements(elements) { var newElements = []; var isSameElement = function (other) { return other.kind === "method" && other.key === element.key && other.placement === element.placement; }; for (var i = 0; i < elements.length; i++) { var element = elements[i]; var other; if (element.kind === "method" && (other = newElements.find(isSameElement))) { if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { if (_hasDecorators(element) || _hasDecorators(other)) { throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); } other.descriptor = element.descriptor; } else { if (_hasDecorators(element)) { if (_hasDecorators(other)) { throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); } other.decorators = element.decorators; } _coalesceGetterSetter(element, other); } } else { newElements.push(element); } } return newElements; }
|
|
8
|
-
function _hasDecorators(element) { return element.decorators && element.decorators.length; }
|
|
9
|
-
function _isDataDescriptor(desc) { return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); }
|
|
10
|
-
function _optionalCallableProperty(obj, name) { var value = obj[name]; if (value !== undefined && typeof value !== "function") { throw new TypeError("Expected '" + name + "' to be a function"); } return value; }
|
|
11
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
12
|
-
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
13
|
-
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
14
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
-
const dbus = require('dbus-next');
|
|
20
|
-
const MprisInterface = require('./mpris-interface');
|
|
21
|
-
const constants = require('../constants');
|
|
22
|
-
const {
|
|
23
|
-
property,
|
|
24
|
-
method,
|
|
25
|
-
signal,
|
|
26
|
-
ACCESS_READ
|
|
27
|
-
} = dbus.interface;
|
|
28
|
-
const DBusError = dbus.DBusError;
|
|
29
|
-
let PlayerInterface = _decorate(null, function (_initialize, _MprisInterface) {
|
|
30
|
-
class PlayerInterface extends _MprisInterface {
|
|
31
|
-
constructor(player) {
|
|
32
|
-
super('org.mpris.MediaPlayer2.Player', player);
|
|
33
|
-
_initialize(this);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
F: PlayerInterface,
|
|
38
|
-
d: [{
|
|
39
|
-
kind: "field",
|
|
40
|
-
key: "_CanControl",
|
|
41
|
-
value() {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
}, {
|
|
45
|
-
kind: "field",
|
|
46
|
-
key: "_CanPause",
|
|
47
|
-
value() {
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
|
-
}, {
|
|
51
|
-
kind: "field",
|
|
52
|
-
key: "_CanPlay",
|
|
53
|
-
value() {
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
}, {
|
|
57
|
-
kind: "field",
|
|
58
|
-
key: "_CanSeek",
|
|
59
|
-
value() {
|
|
60
|
-
return true;
|
|
61
|
-
}
|
|
62
|
-
}, {
|
|
63
|
-
kind: "field",
|
|
64
|
-
key: "_CanGoNext",
|
|
65
|
-
value() {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
}, {
|
|
69
|
-
kind: "field",
|
|
70
|
-
key: "_CanGoPrevious",
|
|
71
|
-
value() {
|
|
72
|
-
return true;
|
|
73
|
-
}
|
|
74
|
-
}, {
|
|
75
|
-
kind: "field",
|
|
76
|
-
key: "_Metadata",
|
|
77
|
-
value() {
|
|
78
|
-
return {};
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
kind: "field",
|
|
82
|
-
key: "_MaximumRate",
|
|
83
|
-
value() {
|
|
84
|
-
return 1;
|
|
85
|
-
}
|
|
86
|
-
}, {
|
|
87
|
-
kind: "field",
|
|
88
|
-
key: "_MinimumRate",
|
|
89
|
-
value() {
|
|
90
|
-
return 1;
|
|
91
|
-
}
|
|
92
|
-
}, {
|
|
93
|
-
kind: "field",
|
|
94
|
-
key: "_Rate",
|
|
95
|
-
value() {
|
|
96
|
-
return 1;
|
|
97
|
-
}
|
|
98
|
-
}, {
|
|
99
|
-
kind: "field",
|
|
100
|
-
key: "_Shuffle",
|
|
101
|
-
value() {
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
}, {
|
|
105
|
-
kind: "field",
|
|
106
|
-
key: "_Volume",
|
|
107
|
-
value() {
|
|
108
|
-
return 0;
|
|
109
|
-
}
|
|
110
|
-
}, {
|
|
111
|
-
kind: "field",
|
|
112
|
-
key: "_LoopStatus",
|
|
113
|
-
value() {
|
|
114
|
-
return constants.LOOP_STATUS_NONE;
|
|
115
|
-
}
|
|
116
|
-
}, {
|
|
117
|
-
kind: "field",
|
|
118
|
-
key: "_PlaybackStatus",
|
|
119
|
-
value() {
|
|
120
|
-
return constants.PLAYBACK_STATUS_STOPPED;
|
|
121
|
-
}
|
|
122
|
-
}, {
|
|
123
|
-
kind: "get",
|
|
124
|
-
decorators: [property({
|
|
125
|
-
signature: 'b',
|
|
126
|
-
access: ACCESS_READ
|
|
127
|
-
})],
|
|
128
|
-
key: "CanControl",
|
|
129
|
-
value: function CanControl() {
|
|
130
|
-
return this._CanControl;
|
|
131
|
-
}
|
|
132
|
-
}, {
|
|
133
|
-
kind: "get",
|
|
134
|
-
decorators: [property({
|
|
135
|
-
signature: 'b',
|
|
136
|
-
access: ACCESS_READ
|
|
137
|
-
})],
|
|
138
|
-
key: "CanPause",
|
|
139
|
-
value: function CanPause() {
|
|
140
|
-
return this._CanPause;
|
|
141
|
-
}
|
|
142
|
-
}, {
|
|
143
|
-
kind: "get",
|
|
144
|
-
decorators: [property({
|
|
145
|
-
signature: 'b',
|
|
146
|
-
access: ACCESS_READ
|
|
147
|
-
})],
|
|
148
|
-
key: "CanPlay",
|
|
149
|
-
value: function CanPlay() {
|
|
150
|
-
return this._CanPlay;
|
|
151
|
-
}
|
|
152
|
-
}, {
|
|
153
|
-
kind: "get",
|
|
154
|
-
decorators: [property({
|
|
155
|
-
signature: 'b',
|
|
156
|
-
access: ACCESS_READ
|
|
157
|
-
})],
|
|
158
|
-
key: "CanSeek",
|
|
159
|
-
value: function CanSeek() {
|
|
160
|
-
return this._CanSeek;
|
|
161
|
-
}
|
|
162
|
-
}, {
|
|
163
|
-
kind: "get",
|
|
164
|
-
decorators: [property({
|
|
165
|
-
signature: 'b',
|
|
166
|
-
access: ACCESS_READ
|
|
167
|
-
})],
|
|
168
|
-
key: "CanGoNext",
|
|
169
|
-
value: function CanGoNext() {
|
|
170
|
-
return this._CanGoNext;
|
|
171
|
-
}
|
|
172
|
-
}, {
|
|
173
|
-
kind: "get",
|
|
174
|
-
decorators: [property({
|
|
175
|
-
signature: 'b',
|
|
176
|
-
access: ACCESS_READ
|
|
177
|
-
})],
|
|
178
|
-
key: "CanGoPrevious",
|
|
179
|
-
value: function CanGoPrevious() {
|
|
180
|
-
return this._CanGoPrevious;
|
|
181
|
-
}
|
|
182
|
-
}, {
|
|
183
|
-
kind: "get",
|
|
184
|
-
decorators: [property({
|
|
185
|
-
signature: 'a{sv}',
|
|
186
|
-
access: ACCESS_READ
|
|
187
|
-
})],
|
|
188
|
-
key: "Metadata",
|
|
189
|
-
value: function Metadata() {
|
|
190
|
-
return this._Metadata;
|
|
191
|
-
}
|
|
192
|
-
}, {
|
|
193
|
-
kind: "get",
|
|
194
|
-
decorators: [property({
|
|
195
|
-
signature: 'd',
|
|
196
|
-
access: ACCESS_READ
|
|
197
|
-
})],
|
|
198
|
-
key: "MaximumRate",
|
|
199
|
-
value: function MaximumRate() {
|
|
200
|
-
return this._MaximumRate;
|
|
201
|
-
}
|
|
202
|
-
}, {
|
|
203
|
-
kind: "get",
|
|
204
|
-
decorators: [property({
|
|
205
|
-
signature: 'd',
|
|
206
|
-
access: ACCESS_READ
|
|
207
|
-
})],
|
|
208
|
-
key: "MinimumRate",
|
|
209
|
-
value: function MinimumRate() {
|
|
210
|
-
return this._MinimumRate;
|
|
211
|
-
}
|
|
212
|
-
}, {
|
|
213
|
-
kind: "get",
|
|
214
|
-
decorators: [property({
|
|
215
|
-
signature: 'd'
|
|
216
|
-
})],
|
|
217
|
-
key: "Rate",
|
|
218
|
-
value: function Rate() {
|
|
219
|
-
return this._Rate;
|
|
220
|
-
}
|
|
221
|
-
}, {
|
|
222
|
-
kind: "set",
|
|
223
|
-
key: "Rate",
|
|
224
|
-
value: function Rate(value) {
|
|
225
|
-
this._setPropertyInternal('Rate', value);
|
|
226
|
-
}
|
|
227
|
-
}, {
|
|
228
|
-
kind: "get",
|
|
229
|
-
decorators: [property({
|
|
230
|
-
signature: 'b'
|
|
231
|
-
})],
|
|
232
|
-
key: "Shuffle",
|
|
233
|
-
value: function Shuffle() {
|
|
234
|
-
return this._Shuffle;
|
|
235
|
-
}
|
|
236
|
-
}, {
|
|
237
|
-
kind: "set",
|
|
238
|
-
key: "Shuffle",
|
|
239
|
-
value: function Shuffle(value) {
|
|
240
|
-
this._setPropertyInternal('Shuffle', value);
|
|
241
|
-
}
|
|
242
|
-
}, {
|
|
243
|
-
kind: "get",
|
|
244
|
-
decorators: [property({
|
|
245
|
-
signature: 'd'
|
|
246
|
-
})],
|
|
247
|
-
key: "Volume",
|
|
248
|
-
value: function Volume() {
|
|
249
|
-
return this._Volume;
|
|
250
|
-
}
|
|
251
|
-
}, {
|
|
252
|
-
kind: "set",
|
|
253
|
-
key: "Volume",
|
|
254
|
-
value: function Volume(value) {
|
|
255
|
-
this._setPropertyInternal('Volume', value);
|
|
256
|
-
}
|
|
257
|
-
}, {
|
|
258
|
-
kind: "get",
|
|
259
|
-
decorators: [property({
|
|
260
|
-
signature: 'x',
|
|
261
|
-
access: ACCESS_READ
|
|
262
|
-
})],
|
|
263
|
-
key: "Position",
|
|
264
|
-
value: function Position() {
|
|
265
|
-
let playerPosition = this.player.getPosition();
|
|
266
|
-
let position = Math.floor(playerPosition || 0);
|
|
267
|
-
if (isNaN(position)) {
|
|
268
|
-
const err = 'github.mpris_service.InvalidPositionError';
|
|
269
|
-
const message = `The player has set an invalid position: ${playerPosition}`;
|
|
270
|
-
throw new DBusError(err, message);
|
|
271
|
-
}
|
|
272
|
-
return position;
|
|
273
|
-
}
|
|
274
|
-
}, {
|
|
275
|
-
kind: "get",
|
|
276
|
-
decorators: [property({
|
|
277
|
-
signature: 's'
|
|
278
|
-
})],
|
|
279
|
-
key: "LoopStatus",
|
|
280
|
-
value: function LoopStatus() {
|
|
281
|
-
if (!constants.isLoopStatusValid(this._LoopStatus)) {
|
|
282
|
-
const err = 'github.mpris_service.InvalidLoopStatusError';
|
|
283
|
-
const message = `The player has set an invalid loop status: ${this._LoopStatus}`;
|
|
284
|
-
throw new DBusError(err, message);
|
|
285
|
-
}
|
|
286
|
-
return this._LoopStatus;
|
|
287
|
-
}
|
|
288
|
-
}, {
|
|
289
|
-
kind: "set",
|
|
290
|
-
key: "LoopStatus",
|
|
291
|
-
value: function LoopStatus(value) {
|
|
292
|
-
if (!constants.isLoopStatusValid(value)) {
|
|
293
|
-
const err = 'github.mpris_service.InvalidLoopStatusError';
|
|
294
|
-
const message = `Tried to set loop status to an invalid value: ${value}`;
|
|
295
|
-
throw new DBusError(err, message);
|
|
296
|
-
}
|
|
297
|
-
this._setPropertyInternal('LoopStatus', value);
|
|
298
|
-
}
|
|
299
|
-
}, {
|
|
300
|
-
kind: "get",
|
|
301
|
-
decorators: [property({
|
|
302
|
-
signature: 's',
|
|
303
|
-
access: ACCESS_READ
|
|
304
|
-
})],
|
|
305
|
-
key: "PlaybackStatus",
|
|
306
|
-
value: function PlaybackStatus() {
|
|
307
|
-
if (!constants.isPlaybackStatusValid(this._PlaybackStatus)) {
|
|
308
|
-
const err = 'github.mpris_service.InvalidPlaybackStatusError';
|
|
309
|
-
const message = `The player has set an invalid playback status: ${this._PlaybackStatus}`;
|
|
310
|
-
throw new DBusError(err, message);
|
|
311
|
-
}
|
|
312
|
-
return this._PlaybackStatus;
|
|
313
|
-
}
|
|
314
|
-
}, {
|
|
315
|
-
kind: "method",
|
|
316
|
-
decorators: [method({})],
|
|
317
|
-
key: "Next",
|
|
318
|
-
value: function Next() {
|
|
319
|
-
this.player.emit('next');
|
|
320
|
-
}
|
|
321
|
-
}, {
|
|
322
|
-
kind: "method",
|
|
323
|
-
decorators: [method({})],
|
|
324
|
-
key: "Previous",
|
|
325
|
-
value: function Previous() {
|
|
326
|
-
this.player.emit('previous');
|
|
327
|
-
}
|
|
328
|
-
}, {
|
|
329
|
-
kind: "method",
|
|
330
|
-
decorators: [method({})],
|
|
331
|
-
key: "Pause",
|
|
332
|
-
value: function Pause() {
|
|
333
|
-
this.player.emit('pause');
|
|
334
|
-
}
|
|
335
|
-
}, {
|
|
336
|
-
kind: "method",
|
|
337
|
-
decorators: [method({})],
|
|
338
|
-
key: "PlayPause",
|
|
339
|
-
value: function PlayPause() {
|
|
340
|
-
this.player.emit('playpause');
|
|
341
|
-
}
|
|
342
|
-
}, {
|
|
343
|
-
kind: "method",
|
|
344
|
-
decorators: [method({})],
|
|
345
|
-
key: "Stop",
|
|
346
|
-
value: function Stop() {
|
|
347
|
-
this.player.emit('stop');
|
|
348
|
-
}
|
|
349
|
-
}, {
|
|
350
|
-
kind: "method",
|
|
351
|
-
decorators: [method({})],
|
|
352
|
-
key: "Play",
|
|
353
|
-
value: function Play() {
|
|
354
|
-
this.player.emit('play');
|
|
355
|
-
}
|
|
356
|
-
}, {
|
|
357
|
-
kind: "method",
|
|
358
|
-
decorators: [method({
|
|
359
|
-
inSignature: 'x'
|
|
360
|
-
})],
|
|
361
|
-
key: "Seek",
|
|
362
|
-
value: function Seek(offset) {
|
|
363
|
-
// XXX overflow
|
|
364
|
-
offset = Number(offset);
|
|
365
|
-
this.player.emit('seek', offset);
|
|
366
|
-
}
|
|
367
|
-
}, {
|
|
368
|
-
kind: "method",
|
|
369
|
-
decorators: [method({
|
|
370
|
-
inSignature: 'ox'
|
|
371
|
-
})],
|
|
372
|
-
key: "SetPosition",
|
|
373
|
-
value: function SetPosition(trackId, position) {
|
|
374
|
-
let e = {
|
|
375
|
-
trackId: trackId,
|
|
376
|
-
// XXX overflow
|
|
377
|
-
position: Number(position)
|
|
378
|
-
};
|
|
379
|
-
this.player.emit('position', e);
|
|
380
|
-
}
|
|
381
|
-
}, {
|
|
382
|
-
kind: "method",
|
|
383
|
-
decorators: [method({
|
|
384
|
-
inSignature: 's'
|
|
385
|
-
})],
|
|
386
|
-
key: "OpenUri",
|
|
387
|
-
value: function OpenUri(uri) {
|
|
388
|
-
let e = {
|
|
389
|
-
uri
|
|
390
|
-
};
|
|
391
|
-
this.player.emit('open', e);
|
|
392
|
-
}
|
|
393
|
-
}, {
|
|
394
|
-
kind: "method",
|
|
395
|
-
decorators: [signal({
|
|
396
|
-
signature: 'x'
|
|
397
|
-
})],
|
|
398
|
-
key: "Seeked",
|
|
399
|
-
value: function Seeked(position) {
|
|
400
|
-
return position;
|
|
401
|
-
}
|
|
402
|
-
}]
|
|
403
|
-
};
|
|
404
|
-
}, MprisInterface);
|
|
405
|
-
module.exports = PlayerInterface;
|
|
406
|
-
//# sourceMappingURL=player.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","names":["dbus","require","MprisInterface","constants","property","method","signal","ACCESS_READ","interface","DBusError","PlayerInterface","_decorate","_initialize","_MprisInterface","constructor","player","F","d","kind","key","value","LOOP_STATUS_NONE","PLAYBACK_STATUS_STOPPED","decorators","signature","access","CanControl","_CanControl","CanPause","_CanPause","CanPlay","_CanPlay","CanSeek","_CanSeek","CanGoNext","_CanGoNext","CanGoPrevious","_CanGoPrevious","Metadata","_Metadata","MaximumRate","_MaximumRate","MinimumRate","_MinimumRate","Rate","_Rate","_setPropertyInternal","Shuffle","_Shuffle","Volume","_Volume","Position","playerPosition","getPosition","position","Math","floor","isNaN","err","message","LoopStatus","isLoopStatusValid","_LoopStatus","PlaybackStatus","isPlaybackStatusValid","_PlaybackStatus","Next","emit","Previous","Pause","PlayPause","Stop","Play","inSignature","Seek","offset","Number","SetPosition","trackId","e","OpenUri","uri","Seeked","module","exports"],"sourceRoot":"../../src/","sources":["interfaces/player.js"],"sourcesContent":["const dbus = require('dbus-next');\nconst MprisInterface = require('./mpris-interface');\n\nconst constants = require('../constants');\n\nconst {\n property,\n method,\n signal,\n ACCESS_READ\n} = dbus.interface;\nconst DBusError = dbus.DBusError;\n\nclass PlayerInterface extends MprisInterface {\n constructor(player) {\n super('org.mpris.MediaPlayer2.Player', player);\n }\n\n _CanControl = true;\n _CanPause = true;\n _CanPlay = true;\n _CanSeek = true;\n _CanGoNext = true;\n _CanGoPrevious = true;\n _Metadata = {};\n _MaximumRate = 1;\n _MinimumRate = 1;\n _Rate = 1;\n _Shuffle = false;\n _Volume = 0;\n _LoopStatus = constants.LOOP_STATUS_NONE;\n _PlaybackStatus = constants.PLAYBACK_STATUS_STOPPED;\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanControl() {\n return this._CanControl;\n }\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanPause() {\n return this._CanPause;\n }\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanPlay() {\n return this._CanPlay;\n }\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanSeek() {\n return this._CanSeek;\n }\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanGoNext() {\n return this._CanGoNext;\n }\n\n @property({signature: 'b', access: ACCESS_READ})\n get CanGoPrevious() {\n return this._CanGoPrevious;\n }\n\n @property({signature: 'a{sv}', access: ACCESS_READ})\n get Metadata() {\n return this._Metadata;\n }\n\n @property({signature: 'd', access: ACCESS_READ})\n get MaximumRate() {\n return this._MaximumRate;\n }\n\n @property({signature: 'd', access: ACCESS_READ})\n get MinimumRate() {\n return this._MinimumRate;\n }\n\n @property({signature: 'd'})\n get Rate() {\n return this._Rate;\n }\n set Rate(value) {\n this._setPropertyInternal('Rate', value);\n }\n\n @property({signature: 'b'})\n get Shuffle() {\n return this._Shuffle;\n }\n set Shuffle(value) {\n this._setPropertyInternal('Shuffle', value);\n }\n\n @property({signature: 'd'})\n get Volume() {\n return this._Volume;\n }\n set Volume(value) {\n this._setPropertyInternal('Volume', value);\n }\n\n @property({signature: 'x', access: ACCESS_READ})\n get Position() {\n let playerPosition = this.player.getPosition();\n let position = Math.floor(playerPosition || 0);\n if (isNaN(position)) {\n const err = 'github.mpris_service.InvalidPositionError';\n const message = `The player has set an invalid position: ${playerPosition}`;\n throw new DBusError(err, message);\n }\n return position;\n }\n\n @property({signature: 's'})\n get LoopStatus() {\n if (!constants.isLoopStatusValid(this._LoopStatus)) {\n const err = 'github.mpris_service.InvalidLoopStatusError';\n const message = `The player has set an invalid loop status: ${this._LoopStatus}`;\n throw new DBusError(err, message);\n }\n\n return this._LoopStatus;\n }\n set LoopStatus(value) {\n if (!constants.isLoopStatusValid(value)) {\n const err = 'github.mpris_service.InvalidLoopStatusError';\n const message = `Tried to set loop status to an invalid value: ${value}`;\n throw new DBusError(err, message);\n }\n this._setPropertyInternal('LoopStatus', value);\n }\n\n @property({signature: 's', access: ACCESS_READ})\n get PlaybackStatus() {\n if (!constants.isPlaybackStatusValid(this._PlaybackStatus)) {\n const err = 'github.mpris_service.InvalidPlaybackStatusError';\n const message = `The player has set an invalid playback status: ${this._PlaybackStatus}`;\n throw new DBusError(err, message);\n }\n\n return this._PlaybackStatus;\n }\n\n @method({})\n Next() {\n this.player.emit('next');\n }\n\n @method({})\n Previous() {\n this.player.emit('previous');\n }\n\n @method({})\n Pause() {\n this.player.emit('pause');\n }\n\n @method({})\n PlayPause() {\n this.player.emit('playpause');\n }\n\n @method({})\n Stop() {\n this.player.emit('stop');\n }\n\n @method({})\n Play() {\n this.player.emit('play');\n }\n\n @method({inSignature: 'x'})\n Seek(offset) {\n // XXX overflow\n offset = Number(offset);\n this.player.emit('seek', offset);\n }\n\n @method({inSignature: 'ox'})\n SetPosition(trackId, position) {\n let e = {\n trackId: trackId,\n // XXX overflow\n position: Number(position)\n };\n this.player.emit('position', e);\n }\n\n @method({inSignature: 's'})\n OpenUri(uri) {\n let e = { uri };\n this.player.emit('open', e);\n }\n\n @signal({signature: 'x'})\n Seeked(position) {\n return position;\n }\n}\n\nmodule.exports = PlayerInterface;\n"],"mappings":"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"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _decorate(decorators, factory, superClass, mixins) { var api = _getDecoratorsApi(); if (mixins) { for (var i = 0; i < mixins.length; i++) { api = mixins[i](api); } } var r = factory(function initialize(O) { api.initializeInstanceElements(O, decorated.elements); }, superClass); var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); api.initializeClassElements(r.F, decorated.elements); return api.runClassFinishers(r.F, decorated.finishers); }
|
|
4
|
-
function _getDecoratorsApi() { _getDecoratorsApi = function () { return api; }; var api = { elementsDefinitionOrder: [["method"], ["field"]], initializeInstanceElements: function (O, elements) { ["method", "field"].forEach(function (kind) { elements.forEach(function (element) { if (element.kind === kind && element.placement === "own") { this.defineClassElement(O, element); } }, this); }, this); }, initializeClassElements: function (F, elements) { var proto = F.prototype; ["method", "field"].forEach(function (kind) { elements.forEach(function (element) { var placement = element.placement; if (element.kind === kind && (placement === "static" || placement === "prototype")) { var receiver = placement === "static" ? F : proto; this.defineClassElement(receiver, element); } }, this); }, this); }, defineClassElement: function (receiver, element) { var descriptor = element.descriptor; if (element.kind === "field") { var initializer = element.initializer; descriptor = { enumerable: descriptor.enumerable, writable: descriptor.writable, configurable: descriptor.configurable, value: initializer === void 0 ? void 0 : initializer.call(receiver) }; } Object.defineProperty(receiver, element.key, descriptor); }, decorateClass: function (elements, decorators) { var newElements = []; var finishers = []; var placements = { static: [], prototype: [], own: [] }; elements.forEach(function (element) { this.addElementPlacement(element, placements); }, this); elements.forEach(function (element) { if (!_hasDecorators(element)) return newElements.push(element); var elementFinishersExtras = this.decorateElement(element, placements); newElements.push(elementFinishersExtras.element); newElements.push.apply(newElements, elementFinishersExtras.extras); finishers.push.apply(finishers, elementFinishersExtras.finishers); }, this); if (!decorators) { return { elements: newElements, finishers: finishers }; } var result = this.decorateConstructor(newElements, decorators); finishers.push.apply(finishers, result.finishers); result.finishers = finishers; return result; }, addElementPlacement: function (element, placements, silent) { var keys = placements[element.placement]; if (!silent && keys.indexOf(element.key) !== -1) { throw new TypeError("Duplicated element (" + element.key + ")"); } keys.push(element.key); }, decorateElement: function (element, placements) { var extras = []; var finishers = []; for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { var keys = placements[element.placement]; keys.splice(keys.indexOf(element.key), 1); var elementObject = this.fromElementDescriptor(element); var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); element = elementFinisherExtras.element; this.addElementPlacement(element, placements); if (elementFinisherExtras.finisher) { finishers.push(elementFinisherExtras.finisher); } var newExtras = elementFinisherExtras.extras; if (newExtras) { for (var j = 0; j < newExtras.length; j++) { this.addElementPlacement(newExtras[j], placements); } extras.push.apply(extras, newExtras); } } return { element: element, finishers: finishers, extras: extras }; }, decorateConstructor: function (elements, decorators) { var finishers = []; for (var i = decorators.length - 1; i >= 0; i--) { var obj = this.fromClassDescriptor(elements); var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); if (elementsAndFinisher.finisher !== undefined) { finishers.push(elementsAndFinisher.finisher); } if (elementsAndFinisher.elements !== undefined) { elements = elementsAndFinisher.elements; for (var j = 0; j < elements.length - 1; j++) { for (var k = j + 1; k < elements.length; k++) { if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { throw new TypeError("Duplicated element (" + elements[j].key + ")"); } } } } } return { elements: elements, finishers: finishers }; }, fromElementDescriptor: function (element) { var obj = { kind: element.kind, key: element.key, placement: element.placement, descriptor: element.descriptor }; var desc = { value: "Descriptor", configurable: true }; Object.defineProperty(obj, Symbol.toStringTag, desc); if (element.kind === "field") obj.initializer = element.initializer; return obj; }, toElementDescriptors: function (elementObjects) { if (elementObjects === undefined) return; return _toArray(elementObjects).map(function (elementObject) { var element = this.toElementDescriptor(elementObject); this.disallowProperty(elementObject, "finisher", "An element descriptor"); this.disallowProperty(elementObject, "extras", "An element descriptor"); return element; }, this); }, toElementDescriptor: function (elementObject) { var kind = String(elementObject.kind); if (kind !== "method" && kind !== "field") { throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); } var key = _toPropertyKey(elementObject.key); var placement = String(elementObject.placement); if (placement !== "static" && placement !== "prototype" && placement !== "own") { throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); } var descriptor = elementObject.descriptor; this.disallowProperty(elementObject, "elements", "An element descriptor"); var element = { kind: kind, key: key, placement: placement, descriptor: Object.assign({}, descriptor) }; if (kind !== "field") { this.disallowProperty(elementObject, "initializer", "A method descriptor"); } else { this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); element.initializer = elementObject.initializer; } return element; }, toElementFinisherExtras: function (elementObject) { var element = this.toElementDescriptor(elementObject); var finisher = _optionalCallableProperty(elementObject, "finisher"); var extras = this.toElementDescriptors(elementObject.extras); return { element: element, finisher: finisher, extras: extras }; }, fromClassDescriptor: function (elements) { var obj = { kind: "class", elements: elements.map(this.fromElementDescriptor, this) }; var desc = { value: "Descriptor", configurable: true }; Object.defineProperty(obj, Symbol.toStringTag, desc); return obj; }, toClassDescriptor: function (obj) { var kind = String(obj.kind); if (kind !== "class") { throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); } this.disallowProperty(obj, "key", "A class descriptor"); this.disallowProperty(obj, "placement", "A class descriptor"); this.disallowProperty(obj, "descriptor", "A class descriptor"); this.disallowProperty(obj, "initializer", "A class descriptor"); this.disallowProperty(obj, "extras", "A class descriptor"); var finisher = _optionalCallableProperty(obj, "finisher"); var elements = this.toElementDescriptors(obj.elements); return { elements: elements, finisher: finisher }; }, runClassFinishers: function (constructor, finishers) { for (var i = 0; i < finishers.length; i++) { var newConstructor = (0, finishers[i])(constructor); if (newConstructor !== undefined) { if (typeof newConstructor !== "function") { throw new TypeError("Finishers must return a constructor."); } constructor = newConstructor; } } return constructor; }, disallowProperty: function (obj, name, objectType) { if (obj[name] !== undefined) { throw new TypeError(objectType + " can't have a ." + name + " property."); } } }; return api; }
|
|
5
|
-
function _createElementDescriptor(def) { var key = _toPropertyKey(def.key); var descriptor; if (def.kind === "method") { descriptor = { value: def.value, writable: true, configurable: true, enumerable: false }; } else if (def.kind === "get") { descriptor = { get: def.value, configurable: true, enumerable: false }; } else if (def.kind === "set") { descriptor = { set: def.value, configurable: true, enumerable: false }; } else if (def.kind === "field") { descriptor = { configurable: true, writable: true, enumerable: true }; } var element = { kind: def.kind === "field" ? "field" : "method", key: key, placement: def.static ? "static" : def.kind === "field" ? "own" : "prototype", descriptor: descriptor }; if (def.decorators) element.decorators = def.decorators; if (def.kind === "field") element.initializer = def.value; return element; }
|
|
6
|
-
function _coalesceGetterSetter(element, other) { if (element.descriptor.get !== undefined) { other.descriptor.get = element.descriptor.get; } else { other.descriptor.set = element.descriptor.set; } }
|
|
7
|
-
function _coalesceClassElements(elements) { var newElements = []; var isSameElement = function (other) { return other.kind === "method" && other.key === element.key && other.placement === element.placement; }; for (var i = 0; i < elements.length; i++) { var element = elements[i]; var other; if (element.kind === "method" && (other = newElements.find(isSameElement))) { if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { if (_hasDecorators(element) || _hasDecorators(other)) { throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); } other.descriptor = element.descriptor; } else { if (_hasDecorators(element)) { if (_hasDecorators(other)) { throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); } other.decorators = element.decorators; } _coalesceGetterSetter(element, other); } } else { newElements.push(element); } } return newElements; }
|
|
8
|
-
function _hasDecorators(element) { return element.decorators && element.decorators.length; }
|
|
9
|
-
function _isDataDescriptor(desc) { return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); }
|
|
10
|
-
function _optionalCallableProperty(obj, name) { var value = obj[name]; if (value !== undefined && typeof value !== "function") { throw new TypeError("Expected '" + name + "' to be a function"); } return value; }
|
|
11
|
-
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
12
|
-
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
13
|
-
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
14
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
16
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
17
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
18
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
19
|
-
// TODO proper import
|
|
20
|
-
const MprisInterface = require('./mpris-interface');
|
|
21
|
-
const dbus = require('dbus-next');
|
|
22
|
-
const types = require('./types');
|
|
23
|
-
const {
|
|
24
|
-
property,
|
|
25
|
-
method,
|
|
26
|
-
signal,
|
|
27
|
-
ACCESS_READ
|
|
28
|
-
} = dbus.interface;
|
|
29
|
-
let PlaylistsInterface = _decorate(null, function (_initialize, _MprisInterface) {
|
|
30
|
-
class PlaylistsInterface extends _MprisInterface {
|
|
31
|
-
constructor(player) {
|
|
32
|
-
super('org.mpris.MediaPlayer2.Playlists', player);
|
|
33
|
-
_initialize(this);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
F: PlaylistsInterface,
|
|
38
|
-
d: [{
|
|
39
|
-
kind: "field",
|
|
40
|
-
key: "_ActivePlaylist",
|
|
41
|
-
value() {
|
|
42
|
-
return [false, types.emptyPlaylist];
|
|
43
|
-
}
|
|
44
|
-
}, {
|
|
45
|
-
kind: "field",
|
|
46
|
-
key: "_PlaylistCount",
|
|
47
|
-
value() {
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
}, {
|
|
51
|
-
kind: "get",
|
|
52
|
-
decorators: [property({
|
|
53
|
-
signature: 'u',
|
|
54
|
-
access: ACCESS_READ
|
|
55
|
-
})],
|
|
56
|
-
key: "PlaylistCount",
|
|
57
|
-
value: function PlaylistCount() {
|
|
58
|
-
return this._PlaylistCount;
|
|
59
|
-
}
|
|
60
|
-
}, {
|
|
61
|
-
kind: "get",
|
|
62
|
-
decorators: [property({
|
|
63
|
-
signature: 'as',
|
|
64
|
-
access: ACCESS_READ
|
|
65
|
-
})],
|
|
66
|
-
key: "Orderings",
|
|
67
|
-
value: function Orderings() {
|
|
68
|
-
return ['Alphabetical', 'UserDefined'];
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
kind: "get",
|
|
72
|
-
decorators: [property({
|
|
73
|
-
signature: '(b(oss))',
|
|
74
|
-
access: ACCESS_READ
|
|
75
|
-
})],
|
|
76
|
-
key: "ActivePlaylist",
|
|
77
|
-
value: function ActivePlaylist() {
|
|
78
|
-
return this._ActivePlaylist;
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
kind: "method",
|
|
82
|
-
key: "setActivePlaylistId",
|
|
83
|
-
value: function setActivePlaylistId(playlistId) {
|
|
84
|
-
let i = this.player.getPlaylistIndex(playlistId);
|
|
85
|
-
this.setProperty('ActivePlaylist', this.player.playlists[i] || null);
|
|
86
|
-
}
|
|
87
|
-
}, {
|
|
88
|
-
kind: "method",
|
|
89
|
-
decorators: [method({
|
|
90
|
-
inSignature: 'o'
|
|
91
|
-
})],
|
|
92
|
-
key: "ActivatePlaylist",
|
|
93
|
-
value: function ActivatePlaylist(playlistId) {
|
|
94
|
-
this.player.emit('activatePlaylist', playlistId);
|
|
95
|
-
}
|
|
96
|
-
}, {
|
|
97
|
-
kind: "method",
|
|
98
|
-
decorators: [method({
|
|
99
|
-
inSignature: 'uusb',
|
|
100
|
-
outSignature: 'a(oss)'
|
|
101
|
-
})],
|
|
102
|
-
key: "GetPlaylists",
|
|
103
|
-
value: function GetPlaylists(index, maxCount, order, reverseOrder) {
|
|
104
|
-
if (!this.player.playlists) {
|
|
105
|
-
return [];
|
|
106
|
-
}
|
|
107
|
-
let result = this.player.playlists.sort(function (a, b) {
|
|
108
|
-
let ret = 1;
|
|
109
|
-
switch (order) {
|
|
110
|
-
case 'Alphabetical':
|
|
111
|
-
ret = a.Name > b.Name ? 1 : -1;
|
|
112
|
-
break;
|
|
113
|
-
//case 'CreationDate':
|
|
114
|
-
//case 'ModifiedDate':
|
|
115
|
-
//case 'LastPlayDate':
|
|
116
|
-
case 'UserDefined':
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
return ret;
|
|
120
|
-
}).slice(index, maxCount + index).map(types.playlistToDbus);
|
|
121
|
-
if (reverseOrder) {
|
|
122
|
-
result.reverse();
|
|
123
|
-
}
|
|
124
|
-
return result;
|
|
125
|
-
}
|
|
126
|
-
}, {
|
|
127
|
-
kind: "method",
|
|
128
|
-
decorators: [signal({
|
|
129
|
-
signature: '(oss)'
|
|
130
|
-
})],
|
|
131
|
-
key: "PlaylistChanged",
|
|
132
|
-
value: function PlaylistChanged(playlist) {
|
|
133
|
-
return types.playlistToDbus(playlist);
|
|
134
|
-
}
|
|
135
|
-
}]
|
|
136
|
-
};
|
|
137
|
-
}, MprisInterface);
|
|
138
|
-
module.exports = PlaylistsInterface;
|
|
139
|
-
//# sourceMappingURL=playlists.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"playlists.js","names":["MprisInterface","require","dbus","types","property","method","signal","ACCESS_READ","interface","PlaylistsInterface","_decorate","_initialize","_MprisInterface","constructor","player","F","d","kind","key","value","emptyPlaylist","decorators","signature","access","PlaylistCount","_PlaylistCount","Orderings","ActivePlaylist","_ActivePlaylist","setActivePlaylistId","playlistId","i","getPlaylistIndex","setProperty","playlists","inSignature","ActivatePlaylist","emit","outSignature","GetPlaylists","index","maxCount","order","reverseOrder","result","sort","a","b","ret","Name","slice","map","playlistToDbus","reverse","PlaylistChanged","playlist","module","exports"],"sourceRoot":"../../src/","sources":["interfaces/playlists.js"],"sourcesContent":["// TODO proper import\nconst MprisInterface = require('./mpris-interface');\nconst dbus = require('dbus-next');\n\nconst types = require('./types');\n\nconst {\n property,\n method,\n signal,\n ACCESS_READ\n} = dbus.interface;\n\nclass PlaylistsInterface extends MprisInterface {\n constructor(player) {\n super('org.mpris.MediaPlayer2.Playlists', player);\n }\n\n _ActivePlaylist = [ false, types.emptyPlaylist ];\n _PlaylistCount = 0;\n\n @property({signature: 'u', access: ACCESS_READ})\n get PlaylistCount() {\n return this._PlaylistCount;\n }\n\n @property({signature: 'as', access: ACCESS_READ})\n get Orderings() {\n return ['Alphabetical', 'UserDefined'];\n }\n\n @property({signature: '(b(oss))', access: ACCESS_READ})\n get ActivePlaylist() {\n return this._ActivePlaylist;\n }\n\n setActivePlaylistId(playlistId) {\n let i = this.player.getPlaylistIndex(playlistId);\n\n this.setProperty('ActivePlaylist', this.player.playlists[i] || null);\n }\n\n @method({inSignature: 'o'})\n ActivatePlaylist(playlistId) {\n this.player.emit('activatePlaylist', playlistId);\n }\n\n @method({inSignature: 'uusb', outSignature: 'a(oss)'})\n GetPlaylists(index, maxCount, order, reverseOrder) {\n if (!this.player.playlists) {\n return [];\n }\n\n let result = this.player.playlists.sort(function(a, b) {\n let ret = 1;\n switch (order) {\n case 'Alphabetical':\n ret = (a.Name > b.Name) ? 1 : -1;\n break;\n //case 'CreationDate':\n //case 'ModifiedDate':\n //case 'LastPlayDate':\n case 'UserDefined':\n break;\n }\n return ret;\n })\n .slice(index, maxCount + index)\n .map(types.playlistToDbus);\n\n if (reverseOrder) {\n result.reverse();\n }\n\n return result;\n }\n\n @signal({signature: '(oss)'})\n PlaylistChanged(playlist) {\n return types.playlistToDbus(playlist);\n }\n}\n\nmodule.exports = PlaylistsInterface;\n"],"mappings":"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"}
|