133 lines
4.9 KiB
JavaScript
133 lines
4.9 KiB
JavaScript
(function(context,$) {
|
|
|
|
"use strict";
|
|
|
|
context.JK = context.JK || {};
|
|
context.JK.TestBridgeScreen = function(app) {
|
|
var logger = context.JK.logger;
|
|
var selectors = {
|
|
clientId: '#testBridge-clientid',
|
|
tClientId: '#template-testBridge-clientid',
|
|
cSession: '#testBridge-createSession',
|
|
sessionId: '#testBridge-createdSessionId',
|
|
jSession: '#testBridge-joinSession',
|
|
testLatency: '#testBridge-TestLatency',
|
|
testLatencyResponse: '#testBridge-TestLatencyResponse',
|
|
getDevices: '#testBridge-GetDevices',
|
|
ftue: '#testBridge-GetSetFTUE'
|
|
};
|
|
|
|
function afterShow(data) {}
|
|
|
|
function loggedIn(header, payload) {
|
|
var clientId = payload.client_id;
|
|
renderClientId(clientId);
|
|
}
|
|
|
|
function renderClientId(clientId) {
|
|
var template = $(selectors.tClientId).html();
|
|
var replacements = {
|
|
clientid: clientId
|
|
};
|
|
var html = context.JK.fillTemplate(template, replacements);
|
|
$(selectors.clientId).html(html);
|
|
}
|
|
|
|
function createSessionHandler(evt) {
|
|
var prefix = $(selectors.cSession + ' input[type="text"]').val();
|
|
createTestSession(prefix);
|
|
}
|
|
|
|
function createTestSession(prefix) {
|
|
var session = {
|
|
client_id: app.clientId,
|
|
description: "Test Session " + prefix,
|
|
genres: ["african"],
|
|
fan_chat: true,
|
|
fan_access: true,
|
|
approval_required: false,
|
|
musician_access: true,
|
|
as_musician: true,
|
|
legal_terms: true,
|
|
tracks: [
|
|
{ instrument_id: "electric guitar", sound: "mono" }
|
|
]
|
|
};
|
|
var url = "/api/sessions";
|
|
$.ajax({
|
|
type: "POST",
|
|
dataType: "json",
|
|
contentType: 'application/json',
|
|
url: url,
|
|
processData:false,
|
|
data: JSON.stringify(session),
|
|
success: function(response) {
|
|
var newSessionId = response.id;
|
|
$(selectors.sessionId).html(newSessionId);
|
|
},
|
|
error: app.ajaxError
|
|
});
|
|
}
|
|
|
|
function joinSessionHandler(evt) {
|
|
var sessionId = $(selectors.jSession + ' input[type="text"]').val();
|
|
logger.debug('joinSessionHandler. ID: ' + sessionId);
|
|
context.JK.joinMusicSession(sessionId, app);
|
|
}
|
|
|
|
function testLatencyHandler(evt) {
|
|
var clientId = $(selectors.testLatency + ' input[type="text"]').val();
|
|
logger.debug('testBridge Screen: testLatencyHandler: clientId: ' + clientId);
|
|
var jsFunction = "JK.TestBridgeLatencyResponse";
|
|
context.jamClient.TestLatency(clientId, jsFunction);
|
|
}
|
|
|
|
function latencyResponse(response) {
|
|
logger.debug("latencyResponse, called from jamClient: " + response);
|
|
var latency = JSON.stringify(response);
|
|
$(selectors.testLatencyResponse).html(latency);
|
|
}
|
|
|
|
function getDevicesHandler(evt) {
|
|
var response = context.jamClient.GetASIODevices();
|
|
logger.debug(response);
|
|
$(selectors.getDevices + ' textarea').val(JSON.stringify(response));
|
|
}
|
|
|
|
function getFTUEHandler(evt) {
|
|
var response = context.jamClient.GetFTUE();
|
|
logger.debug(response);
|
|
$(selectors.ftue + ' textarea[data-what="GetFTUE"]').val(JSON.stringify(response));
|
|
}
|
|
|
|
function setFTUEHandler(evt) {
|
|
var val = Boolean($(selectors.ftue + ' form input[name="ftue"]:checked').val());
|
|
logger.debug('ftue:' + val);
|
|
logger.debug(typeof(val));
|
|
context.jamClient.SetFTUE(val);
|
|
}
|
|
|
|
function events() {
|
|
$(selectors.cSession + ' input[type="button"]').click(createSessionHandler);
|
|
$(selectors.jSession + ' input[type="button"]').click(joinSessionHandler);
|
|
$(selectors.testLatency + ' input[type="button"]').click(testLatencyHandler);
|
|
$(selectors.getDevices + ' input[type="button"]').click(getDevicesHandler);
|
|
$(selectors.ftue + ' input[type="button"][value="Get"]').click(getFTUEHandler);
|
|
$(selectors.ftue + ' input[type="button"][value="Set"]').click(setFTUEHandler);
|
|
}
|
|
|
|
function initialize() {
|
|
var screenBindings = { 'afterShow': afterShow };
|
|
app.bindScreen('testBridge', screenBindings);
|
|
events();
|
|
app.subscribe(context.JK.MessageType.LOGIN_ACK, loggedIn);
|
|
}
|
|
|
|
// Public
|
|
this.initialize = initialize;
|
|
|
|
context.JK.TestBridgeLatencyResponse = latencyResponse;
|
|
|
|
};
|
|
|
|
})(window,jQuery); |