102 lines
2.5 KiB
JavaScript
102 lines
2.5 KiB
JavaScript
(function (context, $) {
|
|
|
|
"use strict";
|
|
|
|
context.JK = context.JK || {};
|
|
context.JK.SampleRate = function (app) {
|
|
|
|
var $sampleRate = null;
|
|
var $self = $(this);
|
|
var logger = context.JK.logger;
|
|
var lastSelectedDevice = null;
|
|
|
|
var SAMPLERATE_CHANGED = 'sample_rate.sample_rate_changed';
|
|
|
|
var BACKEND_SAMPLE_RATES = {
|
|
JAMKAZAM_AUTO_SR: 0,
|
|
USE_DEVICE_DEFAULT_SR: 1,
|
|
PREFER_44: 2,
|
|
PREFER_48: 3,
|
|
PREFER_96: 4,
|
|
PREFER_88: 5
|
|
}
|
|
|
|
function setLastSelectedDevice(_lastSelectedDevice) {
|
|
lastSelectedDevice = _lastSelectedDevice;
|
|
}
|
|
|
|
function getLastSelectedDevice() {
|
|
return lastSelectedDevice;
|
|
}
|
|
|
|
function selectedSampleRate() {
|
|
|
|
return BACKEND_SAMPLE_RATES[$sampleRate.val()];
|
|
}
|
|
|
|
function selectSampleRate(value) {
|
|
|
|
var setter = 'PREFER_44'
|
|
if(value == 44100) {
|
|
setter = 'PREFER_44'
|
|
}
|
|
else if(value == 48000) {
|
|
setter = 'PREFER_48'
|
|
}
|
|
else if(value == 96000) {
|
|
setter = 'PREFER_96'
|
|
}
|
|
console.log("SELECT SAMPLE RATE" + value, setter);
|
|
context.JK.dropdown($sampleRate.val(setter).easyDropDown('select', setter.toString(), true))
|
|
}
|
|
|
|
function render() {
|
|
context.JK.dropdown($sampleRate);
|
|
}
|
|
|
|
function disable() {
|
|
$sampleRate.attr("disabled", "disabled").easyDropDown('disable');
|
|
}
|
|
|
|
function enable() {
|
|
$sampleRate.removeAttr("disabled").easyDropDown('enable');
|
|
}
|
|
|
|
function resetValues() {
|
|
$sampleRate.val('PREFER_44').easyDropDown('select', 'PREFER_44', true)
|
|
|
|
}
|
|
|
|
function events() {
|
|
$sampleRate.unbind('change').change(function () {
|
|
$self.triggerHandler(SAMPLERATE_CHANGED, {value: selectedSampleRate()});
|
|
});
|
|
}
|
|
|
|
function initialize(_$sampleRate) {
|
|
|
|
$sampleRate = _$sampleRate;
|
|
if(!_$sampleRate.is('.select-sample-rate')) {
|
|
throw "$sampleRate != .select-sample-rate"
|
|
}
|
|
|
|
events();
|
|
render();
|
|
}
|
|
|
|
this.SAMPLERATE_CHANGED = SAMPLERATE_CHANGED;
|
|
this.initialize = initialize;
|
|
this.selectedSampleRate = selectedSampleRate;
|
|
this.selectSampleRate = selectSampleRate;
|
|
this.render = render;
|
|
this.enable = enable;
|
|
this.disable = disable;
|
|
this.resetValues = resetValues;
|
|
this.getLastSelectedDevice = getLastSelectedDevice;
|
|
this.setLastSelectedDevice = setLastSelectedDevice;
|
|
|
|
return this;
|
|
}
|
|
|
|
|
|
})(window, jQuery); |