114 lines
3.2 KiB
JavaScript
114 lines
3.2 KiB
JavaScript
|
ProgressBar = function(el) {
|
||
|
this.$el = $(el);
|
||
|
this.$innerText = this.$el.find('.openwebrx-progressbar-text');
|
||
|
this.$innerBar = this.$el.find('.openwebrx-progressbar-bar');
|
||
|
this.$innerBar.css('width', '0%');
|
||
|
};
|
||
|
|
||
|
ProgressBar.prototype.set = function(val, text, over) {
|
||
|
this.setValue(val);
|
||
|
this.setText(text);
|
||
|
this.setOver(over);
|
||
|
};
|
||
|
|
||
|
ProgressBar.prototype.setValue = function(val) {
|
||
|
if (val < 0) val = 0;
|
||
|
if (val > 1) val = 1;
|
||
|
this.$innerBar.stop().animate({width: val * 100 + '%'}, 700);
|
||
|
};
|
||
|
|
||
|
ProgressBar.prototype.setText = function(text) {
|
||
|
this.$innerText.html(text);
|
||
|
};
|
||
|
|
||
|
ProgressBar.prototype.setOver = function(over) {
|
||
|
this.$innerBar.css('backgroundColor', (over) ? "#ff6262" : "#00aba6");
|
||
|
};
|
||
|
|
||
|
AudioBufferProgressBar = function(el, sampleRate) {
|
||
|
ProgressBar.call(this, el);
|
||
|
this.sampleRate = sampleRate;
|
||
|
};
|
||
|
|
||
|
AudioBufferProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
AudioBufferProgressBar.prototype.setBuffersize = function(buffersize) {
|
||
|
var audio_buffer_value = buffersize / this.sampleRate;
|
||
|
var overrun = audio_buffer_value > audio_buffer_maximal_length_sec;
|
||
|
var underrun = audio_buffer_value === 0;
|
||
|
var text = "buffer";
|
||
|
if (overrun) {
|
||
|
text = "overrun";
|
||
|
}
|
||
|
if (underrun) {
|
||
|
text = "underrun";
|
||
|
}
|
||
|
this.set(audio_buffer_value, "Audio " + text + " [" + (audio_buffer_value).toFixed(1) + " s]", overrun || underrun);
|
||
|
};
|
||
|
|
||
|
|
||
|
NetworkSpeedProgressBar = function(el) {
|
||
|
ProgressBar.call(this, el);
|
||
|
};
|
||
|
|
||
|
NetworkSpeedProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
NetworkSpeedProgressBar.prototype.setSpeed = function(speed) {
|
||
|
this.set(speed * 8 / 2000, "Network usage [" + (speed * 8).toFixed(1) + " kbps]", false);
|
||
|
};
|
||
|
|
||
|
AudioSpeedProgressBar = function(el) {
|
||
|
ProgressBar.call(this, el);
|
||
|
};
|
||
|
|
||
|
AudioSpeedProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
AudioSpeedProgressBar.prototype.setSpeed = function(speed) {
|
||
|
this.set(speed / 500000, "Audio stream [" + (speed / 1000).toFixed(0) + " kbps]", false);
|
||
|
};
|
||
|
|
||
|
AudioOutputProgressBar = function(el, sampleRate) {
|
||
|
ProgressBar.call(this, el);
|
||
|
this.maxRate = sampleRate * 1.25;
|
||
|
this.minRate = sampleRate * .25;
|
||
|
};
|
||
|
|
||
|
AudioOutputProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
AudioOutputProgressBar.prototype.setAudioRate = function(audioRate) {
|
||
|
this.set(audioRate / this.maxRate, "Audio output [" + (audioRate / 1000).toFixed(1) + " ksps]", audioRate > this.maxRate || audioRate < this.minRate);
|
||
|
};
|
||
|
|
||
|
ClientsProgressBar = function(el) {
|
||
|
ProgressBar.call(this, el);
|
||
|
this.clients = 0;
|
||
|
this.maxClients = 0;
|
||
|
};
|
||
|
|
||
|
ClientsProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
ClientsProgressBar.prototype.setClients = function(clients) {
|
||
|
this.clients = clients;
|
||
|
this.render();
|
||
|
};
|
||
|
|
||
|
ClientsProgressBar.prototype.setMaxClients = function(maxClients) {
|
||
|
this.maxClients = maxClients;
|
||
|
this.render();
|
||
|
};
|
||
|
|
||
|
ClientsProgressBar.prototype.render = function() {
|
||
|
console.info(this);
|
||
|
this.set(this.clients / this.maxClients, "Clients [" + this.clients + "]", this.clients > this.maxClients * 0.85);
|
||
|
};
|
||
|
|
||
|
CpuProgressBar = function(el) {
|
||
|
ProgressBar.call(this, el);
|
||
|
};
|
||
|
|
||
|
CpuProgressBar.prototype = new ProgressBar();
|
||
|
|
||
|
CpuProgressBar.prototype.setUsage = function(usage) {
|
||
|
this.set(usage, "Server CPU [" + Math.round(usage * 100) + "%]", usage > .85);
|
||
|
};
|