57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
(function(context,$) {
|
|
|
|
"use strict";
|
|
|
|
context.JK = context.JK || {};
|
|
|
|
context.JK.joinMusicSession = function(session_id, app) {
|
|
var logger = context.JK.logger;
|
|
var server = context.JK.JamServer;
|
|
var client = context.jamClient;
|
|
|
|
if (!server.signedIn)
|
|
{
|
|
logger.log("Can't join a session because the client is not connected.");
|
|
return;
|
|
}
|
|
|
|
logger.log("Joining session: " + session_id);
|
|
|
|
|
|
// FIXME. Setting tracks for join session. Only looking at profile
|
|
// for now. Needs to check jamClient instruments and if set, use those
|
|
// as first preference.
|
|
var track = { instrument_id: "electric guitar", sound: "stereo" };
|
|
if (context.JK.userMe.instruments.length) {
|
|
track = {
|
|
instrument_id: context.JK.userMe.instruments[0].instrument_id,
|
|
sound: "stereo"
|
|
};
|
|
}
|
|
|
|
var data = {
|
|
client_id: server.clientID,
|
|
ip_address: server.publicIP,
|
|
as_musician: true,
|
|
tracks: [ track ]
|
|
};
|
|
var url = "/api/sessions/" + session_id + "/participants";
|
|
$.ajax({
|
|
type: "POST",
|
|
dataType: "json",
|
|
contentType: 'application/json',
|
|
url: url,
|
|
data: JSON.stringify(data),
|
|
processData:false,
|
|
success: function(response) {
|
|
context.JK.Sessions.JoinSession(session_id);
|
|
if (client !== undefined) {
|
|
client.JoinSession({ sessionID: session_id });
|
|
}
|
|
context.JK.refreshMusicSession(session_id);
|
|
},
|
|
error: app.ajaxError
|
|
});
|
|
};
|
|
|
|
})(window,jQuery); |