Made opus truly optional

This commit is contained in:
hydrabolt
2015-11-08 10:55:57 +00:00
parent c5fe16af5b
commit a1e92dff5c
4 changed files with 32 additions and 18 deletions

View File

@@ -3,14 +3,22 @@
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var cpoc = require("child_process");
var opus = require("node-opus");
var opus;
try {
opus = require("node-opus");
} catch (e) {
// no opus!
}
var VoicePacket = require("./VoicePacket.js");
var AudioEncoder = (function () {
function AudioEncoder() {
_classCallCheck(this, AudioEncoder);
this.opus = new opus.OpusEncoder(48000, 1);
if (opus) {
this.opus = new opus.OpusEncoder(48000, 1);
}
}
AudioEncoder.prototype.opusBuffer = function opusBuffer(buffer) {

View File

@@ -14,9 +14,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function"
var WebSocket = require("ws");
var dns = require("dns");
var udp = require("dgram");
var Opus = require('node-opus');
var fs = require("fs");
var ffmpeg = require('fluent-ffmpeg');
var AudioEncoder = require("./AudioEncoder.js");
var VoicePacket = require("./VoicePacket.js");
var StreamIntent = require("./StreamIntent.js");
@@ -29,9 +27,6 @@ var VoiceConnection = (function (_EventEmitter) {
_classCallCheck(this, VoiceConnection);
_EventEmitter.call(this);
if (!Opus) {
console.log("HEY! WATCH OUT\n\n discord.js needs node-opus, you don't have it installed.");
}
this.id = channel.id;
this.voiceChannel = channel;
this.client = client;
@@ -42,7 +37,6 @@ var VoiceConnection = (function (_EventEmitter) {
this.vWS = null; // vWS means voice websocket
this.ready = false;
this.vWSData = {};
this.opus = new Opus.OpusEncoder(48000, 1);
this.encoder = new AudioEncoder();
this.udp = null;
this.playingIntent = null;
@@ -165,7 +159,12 @@ var VoiceConnection = (function (_EventEmitter) {
var self = this;
self.playing = true;
try {
if (!self.encoder.opus) {
self.playing = false;
self.emit("error", "No Opus!");
self.emit("debug", "Tried to use node-opus, but opus not available - install it!");
return;
}
var buffer = self.encoder.opusBuffer(rawbuffer);
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
return self.sendPacket(packet, callback);

View File

@@ -1,12 +1,20 @@
"use strict";
var cpoc = require("child_process");
var opus = require("node-opus");
var opus;
try{
opus = require("node-opus");
}catch(e){
// no opus!
}
var VoicePacket = require("./VoicePacket.js");
class AudioEncoder{
constructor(){
this.opus = new opus.OpusEncoder(48000, 1);
if(opus){
this.opus = new opus.OpusEncoder(48000, 1);
}
}
opusBuffer(buffer){

View File

@@ -10,9 +10,7 @@
var WebSocket = require("ws");
var dns = require("dns");
var udp = require("dgram");
var Opus = require('node-opus');
var fs = require("fs");
var ffmpeg = require('fluent-ffmpeg');
var AudioEncoder = require("./AudioEncoder.js");
var VoicePacket = require("./VoicePacket.js");
var StreamIntent = require("./StreamIntent.js");
@@ -21,9 +19,6 @@ var EventEmitter = require("events");
class VoiceConnection extends EventEmitter {
constructor(channel, client, session, token, server, endpoint) {
super();
if (!Opus) {
console.log("HEY! WATCH OUT\n\n discord.js needs node-opus, you don't have it installed.");
}
this.id = channel.id;
this.voiceChannel = channel;
this.client = client;
@@ -34,7 +29,6 @@ class VoiceConnection extends EventEmitter {
this.vWS = null; // vWS means voice websocket
this.ready = false;
this.vWSData = {};
this.opus = new Opus.OpusEncoder(48000, 1);
this.encoder = new AudioEncoder();
this.udp = null;
this.playingIntent = null;
@@ -162,7 +156,12 @@ class VoiceConnection extends EventEmitter {
var self = this;
self.playing = true;
try {
if(!self.encoder.opus){
self.playing=false;
self.emit("error", "No Opus!");
self.emit("debug", "Tried to use node-opus, but opus not available - install it!");
return;
}
var buffer = self.encoder.opusBuffer(rawbuffer);
var packet = new VoicePacket(buffer, sequence, timestamp, self.vWSData.ssrc);
return self.sendPacket(packet, callback);