jam-cloud/web/app/assets/javascripts/wizard/sample_rate.js

105 lines
2.6 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'
}
else if (value == 'DEVICE_DEFAULT') {
setter = 'USE_DEVICE_DEFAULT_SR'
}
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('USE_DEVICE_DEFAULT_SR').easyDropDown('select', 'USE_DEVICE_DEFAULT_SR', 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);