@tmigone/pulseaudio
Version:
A TypeScript based client library for PulseAudio.
57 lines • 2.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PATag = exports.PATagType = void 0;
var PATagType;
(function (PATagType) {
PATagType[PATagType["PA_TAG_INVALID"] = 0] = "PA_TAG_INVALID";
PATagType["PA_TAG_STRING"] = "t";
PATagType["PA_TAG_STRING_NULL"] = "N";
PATagType["PA_TAG_U32"] = "L";
PATagType["PA_TAG_U8"] = "B";
PATagType["PA_TAG_U64"] = "R";
PATagType["PA_TAG_S64"] = "r";
PATagType["PA_TAG_SAMPLE_SPEC"] = "a";
PATagType["PA_TAG_ARBITRARY"] = "x";
PATagType["PA_TAG_BOOLEAN_TRUE"] = "1";
PATagType["PA_TAG_BOOLEAN_FALSE"] = "0";
PATagType["PA_TAG_BOOLEAN"] = "1";
PATagType["PA_TAG_TIMEVAL"] = "T";
PATagType["PA_TAG_USEC"] = "U";
PATagType["PA_TAG_CHANNEL_MAP"] = "m";
PATagType["PA_TAG_CVOLUME"] = "v";
PATagType["PA_TAG_PROPLIST"] = "P";
PATagType["PA_TAG_VOLUME"] = "V";
PATagType["PA_TAG_FORMAT_INFO"] = "f";
PATagType["PA_TAG_PROP"] = "p";
})(PATagType = exports.PATagType || (exports.PATagType = {}));
class PATag {
constructor(init) {
if (init instanceof Buffer && this.isTagBuffer(init)) {
if (this.isValidBuffer(init)) {
this.tag = Buffer.from(this.sanitizeBuffer(init));
this.value = this.fromTagBuffer(this.tag);
}
else {
throw new Error('Error parsing buffer. Incorrect tag type!');
}
}
else {
this.value = init;
this.tag = Buffer.from(this.toTagBuffer(this.value));
}
this.size = this.tag.length;
}
isKnownTagType(tagType) {
return Object.values(PATagType).includes(String.fromCharCode(tagType));
}
static toObject(tags, keyNames) {
const values = tags.map(t => t.value);
return new Array(Math.floor(values.length / keyNames.length))
.fill(0)
.map(() => values.splice(0, keyNames.length))
.map(pv => keyNames.map((p, i) => [p, pv[i]]))
.map(pv => Object.fromEntries(pv));
}
}
exports.PATag = PATag;
//# sourceMappingURL=common.js.map