* wip
This commit is contained in:
parent
15f9c6196a
commit
f520b889e5
|
|
@ -112,10 +112,14 @@
|
|||
$voiceChatTabSelector.click(function () {
|
||||
// validate audio settings
|
||||
if (validateAudioSettings()) {
|
||||
logger.debug("initializing voice chat helper")
|
||||
configureTracksHelper.reset();
|
||||
voiceChatHelper.reset();
|
||||
showVoiceChatPanel();
|
||||
}
|
||||
else {
|
||||
logger.debug("invalid audio settings; ignoring")
|
||||
}
|
||||
});
|
||||
|
||||
$btnCancel.click(function() {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
(function(context,$) {
|
||||
|
||||
context.JK = context.JK || {};
|
||||
context.JK.SessionSettingsDialog = function(app, sessionScreen) {
|
||||
context.JK.SessionSettingsDialog = function(app) {
|
||||
var logger = context.JK.logger;
|
||||
var gearUtils = context.JK.GearUtilsInstance;
|
||||
var $dialog;
|
||||
|
|
|
|||
|
|
@ -334,6 +334,25 @@
|
|||
"MetronomeGroup": 16
|
||||
};
|
||||
|
||||
context.JK.ChannelGroupLookup = {
|
||||
0: "MasterGroup",
|
||||
1: "MonitorGroup",
|
||||
2: "MasterCatGroup",
|
||||
3: "MonitorCatGroup",
|
||||
4: "AudioInputMusicGroup",
|
||||
5: "AudioInputChatGroup",
|
||||
6: "MediaTrackGroup",
|
||||
7: "StreamOutMusicGroup",
|
||||
8: "StreamOutChatGroup",
|
||||
9: "StreamOutMediaGroup",
|
||||
10: "UserMusicInputGroup",
|
||||
11: "UserChatInputGroup",
|
||||
12: "UserMediaInputGroup",
|
||||
13: "PeerAudioInputMusicGroup",
|
||||
14: "PeerMediaTrackGroup",
|
||||
15: "JamTrackGroup",
|
||||
16: "MetronomeGroup"
|
||||
}
|
||||
context.JK.CategoryGroupIds = {
|
||||
"AudioInputMusic" : "AudioInputMusic",
|
||||
"AudioInputChat" : "AudioInputChat",
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ MixerActions = @MixerActions
|
|||
<div className="track-controls">
|
||||
<SessionTrackVU orientation="horizontal" lightCount={4} lightWidth={17} lightHeight={3} side="best" mixers={mixers} />
|
||||
<div className="track-buttons">
|
||||
<div className="track-instrument"><img height="24" src={this.props.instrumentIcon} width="24" /></div>
|
||||
<div className="track-icon-pan" style={panStyle}/>
|
||||
<div className={classes} data-control="mute" data-mixer-id={muteMixerId} onClick={this.handleMute}/>
|
||||
</div>
|
||||
<div className="track-instrument"><img height="24" src={this.props.instrumentIcon} width="24" /></div>
|
||||
<br className="clearall"/>
|
||||
</div>
|
||||
<br className="clearall"/>
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ MixerActions = @MixerActions
|
|||
<div className="track-controls">
|
||||
<SessionTrackVU orientation="horizontal" lightCount={4} lightWidth={17} lightHeight={3} side="best" mixers={mixers} />
|
||||
<div className="track-buttons">
|
||||
<div className="track-instrument"><img height="24" src={this.props.instrumentIcon} width="24" /></div>
|
||||
<div className="track-icon-pan" style={panStyle}/>
|
||||
<div className={classes} data-control="mute" data-mixer-id={muteMixerId} onClick={this.handleMute}/>
|
||||
</div>
|
||||
<div className="track-instrument"><img height="24" src={this.props.instrumentIcon} width="24" /></div>
|
||||
<br className="clearall"/>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,11 @@ MixerActions = @MixerActions
|
|||
|
||||
mixins: [Reflux.listenTo(@SessionMyTracksStore,"onInputsChanged")]
|
||||
|
||||
closeHover: (e) ->
|
||||
e.preventDefault()
|
||||
$container = $(this.getDOMNode()).closest('.react-holder')
|
||||
$container.data('bt').btOff()
|
||||
|
||||
onInputsChanged: (sessionMixers) ->
|
||||
|
||||
mixers = sessionMixers.mixers
|
||||
|
|
@ -115,6 +120,10 @@ MixerActions = @MixerActions
|
|||
<p>This will not affect the volume for other musicians in the session.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="close-window">
|
||||
<a onClick={this.closeHover}>close</a>
|
||||
</div>
|
||||
</div>`
|
||||
|
||||
componentDidMount: () ->
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ MixerActions = @MixerActions
|
|||
|
||||
mixins: [Reflux.listenTo(@SessionMyTracksStore, "onInputsChanged")]
|
||||
|
||||
closeHover: (e) ->
|
||||
e.preventDefault()
|
||||
$container = $(this.getDOMNode()).closest('.react-holder')
|
||||
$container.data('bt').btOff()
|
||||
|
||||
onInputsChanged: (sessionMixers) ->
|
||||
mixers = sessionMixers.mixers
|
||||
newMixers = mixers.refreshMixer(@state.mixers)
|
||||
|
|
@ -30,6 +35,9 @@ MixerActions = @MixerActions
|
|||
<div className="session-pan">
|
||||
<SessionTrackPan mixers={this.state.mixers} />
|
||||
</div>
|
||||
<div className="close-window">
|
||||
<a onClick={this.closeHover}>close</a>
|
||||
</div>
|
||||
</div>`
|
||||
|
||||
componentWillUpdate: (nextProps, nextState) ->
|
||||
|
|
|
|||
|
|
@ -64,9 +64,9 @@ ptrCount = 0
|
|||
$root = $(this.getDOMNode())
|
||||
|
||||
if mixerChanged
|
||||
logger.debug("re-registering VU")
|
||||
logger.debug("re-registering VU #{context.JK.groupIdDisplay(mixer)}", mixer)
|
||||
else
|
||||
logger.debug("registered VU")
|
||||
logger.debug("registered VU #{context.JK.groupIdDisplay(mixer)}", mixer)
|
||||
|
||||
context.JK.VuHelpers.registerVU(@props.side, mixer, @state.ptr, @props.orientation == 'horizontal', @props.lightCount, $root.find('td'))
|
||||
|
||||
|
|
@ -81,7 +81,7 @@ ptrCount = 0
|
|||
|
||||
componentWillUnmount: () ->
|
||||
if @state.registered?
|
||||
logger.debug("unregistered VU")
|
||||
logger.debug("unregistered VU #{context.JK.groupIdDisplay(@state.registered.mixer)}")
|
||||
context.JK.VuHelpers.unregisterVU(@state.registered.mixer, @state.registered.ptr)
|
||||
|
||||
})
|
||||
|
|
@ -5,9 +5,13 @@ ptrCount = 0
|
|||
|
||||
@SessionTrackVolumeHover = React.createClass({
|
||||
|
||||
btElement: null
|
||||
mixins: [Reflux.listenTo(@SessionMyTracksStore,"onInputsChanged")]
|
||||
|
||||
closeHover: (e) ->
|
||||
e.preventDefault()
|
||||
$container = $(this.getDOMNode()).closest('.react-holder')
|
||||
$container.data('bt').btOff()
|
||||
|
||||
onInputsChanged: (sessionMixers) ->
|
||||
|
||||
mixers = sessionMixers.mixers
|
||||
|
|
@ -75,6 +79,10 @@ ptrCount = 0
|
|||
<p>This will not affect the volume of this track for other musicians in the session.</p>
|
||||
<p>To adjust master levels for all musicians for recordings and broadcasts, use Mixer button in the toolbar.</p>
|
||||
</div>
|
||||
|
||||
<div className="close-window">
|
||||
<a onClick={this.closeHover}>close</a>
|
||||
</div>
|
||||
</div>`
|
||||
|
||||
componentDidMount: () ->
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
context = window
|
||||
|
||||
logger = context.JK.logger
|
||||
ChannelGroupIds = context.JK.ChannelGroupIds
|
||||
CategoryGroupIds = context.JK.CategoryGroupIds
|
||||
MIX_MODES = context.JK.MIX_MODES;
|
||||
|
|
@ -20,6 +21,8 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
ChannelGroupIds.MetronomeGroup]
|
||||
@muteBothMasterAndPersonalGroups = [ChannelGroupIds.AudioInputMusicGroup, ChannelGroupIds.MediaTrackGroup,
|
||||
ChannelGroupIds.JamTrackGroup, ChannelGroupIds.MetronomeGroup]
|
||||
@vuStats = {}
|
||||
@shouldCollectVuStats = false
|
||||
@organize()
|
||||
|
||||
organize: () ->
|
||||
|
|
@ -745,10 +748,27 @@ MIX_MODES = context.JK.MIX_MODES;
|
|||
@currentMixerRangeMax = mixer.range_high;
|
||||
mixer
|
||||
|
||||
collectStats: (mixer) ->
|
||||
mixerStats = @vuStats[mixer.id]
|
||||
|
||||
unless mixerStats?
|
||||
mixerStats = {count: 0, group_name: context.JK.groupIdDisplay(mixer)}
|
||||
@vuStats[mixer.id] = mixerStats
|
||||
|
||||
mixerStats.count++
|
||||
|
||||
dumpVUStats: () ->
|
||||
|
||||
# to use: check MixerStore for setInterval in cstr
|
||||
logger.debug("VU STAT DUMP")
|
||||
for mixerId, mixerStat of @vuStats
|
||||
logger.debug("VU STAT: #{mixerState.group_name} count=#{mixerStat.count}")
|
||||
|
||||
updateVU: (mixerId, mode, leftValue, leftClipping, rightValue, rightClipping) ->
|
||||
mixer = @getMixer(mixerId, mode)
|
||||
|
||||
if mixer?
|
||||
@collectStats(mixer) if @shouldCollectVuStats
|
||||
context.JK.VuHelpers.updateVU3(mixer, leftValue, leftClipping, rightValue, rightClipping)
|
||||
|
||||
###
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ context = window
|
|||
|
||||
|
||||
else
|
||||
logger.debug("SessionMyTracks: unable to find participant")
|
||||
logger.warn("SessionMyTracks: unable to find participant")
|
||||
|
||||
this.setState(tracks: tracks, session:session, chat: chat)
|
||||
}
|
||||
|
|
@ -40,6 +40,10 @@ rest = context.JK.Rest()
|
|||
context.JK.HandleBridgeCallback2 = @handleBridgeCallback
|
||||
context.JK.HandleBackingTrackSelectedCallback2 = @handleBackingTrackSelectedCallback
|
||||
|
||||
#setInterval(@dumpVUStats, 5000)
|
||||
|
||||
dumpVUStats: () ->
|
||||
@mixers.dumpVUStats() if @mixers?
|
||||
|
||||
issueChange: () ->
|
||||
@trigger({session: @session, mixers: @mixers})
|
||||
|
|
|
|||
|
|
@ -3265,6 +3265,7 @@
|
|||
$metronomePlaybackSelect.metronomePlaybackMode().on(EVENTS.METRONOME_PLAYBACK_MODE_SELECTED, metronomePlaybackModeChanged)
|
||||
context.JK.helpBubble($metronomePlaybackHelp, 'metromone-playback-modes', {} , {offsetParent: $screen, width:'400px'});
|
||||
$(document).on('layout_resized', function() {
|
||||
console.log("RESIZE FLUID")
|
||||
resizeFluid();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -340,6 +340,15 @@
|
|||
|
||||
}
|
||||
|
||||
context.JK.groupIdDisplay = function(mixer) {
|
||||
if(mixer && mixer.group_id) {
|
||||
return context.JK.ChannelGroupLookup[mixer.group_id]
|
||||
}
|
||||
else {
|
||||
return "?group?"
|
||||
}
|
||||
}
|
||||
|
||||
context.JK.bindProfileClickEvents = function($parent, dialogsToClose) {
|
||||
if (!$parent) {
|
||||
$parent = $('body');
|
||||
|
|
|
|||
|
|
@ -336,14 +336,15 @@
|
|||
|
||||
// renders volumes based on what the backend says
|
||||
function renderVolumes() {
|
||||
var $fader = $voiceChatFader.find('[control="fader"]');
|
||||
var $fader = $voiceChatFader.find('[data-control="fader"]');
|
||||
var db = context.jamClient.FTUEGetChatInputVolume();
|
||||
var faderPct = db + 80;
|
||||
console.log("SET HANDLE POSITION", $fader, db)
|
||||
context.JK.FaderHelpers.setHandlePosition($fader, faderPct);
|
||||
}
|
||||
|
||||
function renderNoVolume() {
|
||||
var $fader = $voiceChatFader.find('[control="fader"]');
|
||||
var $fader = $voiceChatFader.find('[data-control="fader"]');
|
||||
context.JK.FaderHelpers.setHandlePosition($fader, 50);
|
||||
context.JK.VuHelpers.updateVU($voiceChatVuLeft, 0);
|
||||
context.JK.VuHelpers.updateVU($voiceChatVuRight, 0);
|
||||
|
|
@ -384,7 +385,7 @@
|
|||
renderVolumes();
|
||||
|
||||
uniqueCallbackName = 'voiceChatHelperChatInputVUCallback' + caller;
|
||||
context.JK[uniqueCallbackName] = function(dbValue) {
|
||||
context.JK[uniqueCallbackName] = function(dbValue, leftClip, rightClip) {
|
||||
context.JK.ftueVUCallback(dbValue, $voiceChatVuLeft);
|
||||
context.JK.ftueVUCallback(dbValue, $voiceChatVuRight);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,13 +217,13 @@
|
|||
function renderVolumes() {
|
||||
|
||||
// input
|
||||
var $inputFader = $audioInputFader.find('[control="fader"]');
|
||||
var $inputFader = $audioInputFader.find('[data-control="fader"]');
|
||||
var db = context.jamClient.FTUEGetInputVolume();
|
||||
var faderPct = db + 80;
|
||||
context.JK.FaderHelpers.setHandlePosition($inputFader, faderPct);
|
||||
|
||||
// output
|
||||
var $outputFader = $audioOutputFader.find('[control="fader"]');
|
||||
var $outputFader = $audioOutputFader.find('[data-control="fader"]');
|
||||
var db = context.jamClient.FTUEGetOutputVolume();
|
||||
var faderPct = db + 80;
|
||||
context.JK.FaderHelpers.setHandlePosition($outputFader, faderPct);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
@import 'client/common';
|
||||
|
||||
$session-screen-divider: 1415px;
|
||||
$session-screen-divider: 1190px;
|
||||
@mixin session-small {
|
||||
@media (max-width: #{$session-screen-divider - 1px}) {
|
||||
@content;
|
||||
|
|
@ -14,25 +14,43 @@ $session-screen-divider: 1415px;
|
|||
|
||||
#session-screen2 {
|
||||
|
||||
.session-container {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.session-track {
|
||||
@include session-small {
|
||||
max-width: 120px;
|
||||
}
|
||||
|
||||
&.jam-track {
|
||||
&.metronome, &.jam-track, &.recorded-track, &.backing-track {
|
||||
@include session-small {
|
||||
height:auto;
|
||||
}
|
||||
.track-controls {
|
||||
.track-icon-pan {
|
||||
@include session-small {
|
||||
margin-top:0;
|
||||
margin-right:0;
|
||||
}
|
||||
}
|
||||
|
||||
.track-buttons {
|
||||
@include session-small {
|
||||
margin:12px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
table.vu {
|
||||
@include session-small {
|
||||
margin-top:5px;
|
||||
}
|
||||
}
|
||||
|
||||
.track-controls {
|
||||
@include session-small {
|
||||
margin-right:8px;
|
||||
}
|
||||
}
|
||||
|
||||
.track-icon-pan {
|
||||
@include session-small {
|
||||
margin-right:2px;
|
||||
|
|
@ -40,21 +58,11 @@ $session-screen-divider: 1415px;
|
|||
}
|
||||
.track-instrument {
|
||||
@include session-small {
|
||||
margin: 8px 0 0 6px;
|
||||
}
|
||||
}
|
||||
.track-buttons {
|
||||
@include session-small {
|
||||
margin-top:12px;
|
||||
}
|
||||
}
|
||||
.track-controls {
|
||||
@include session-small {
|
||||
margin-right:8px;
|
||||
margin: -4px 12px 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.jam-track-category {
|
||||
&.jam-track-category, &.recorded-category {
|
||||
.track-controls {
|
||||
@include session-small {
|
||||
margin-top:5px;
|
||||
|
|
@ -111,22 +119,26 @@ $session-screen-divider: 1415px;
|
|||
width: 100%;
|
||||
}
|
||||
|
||||
.session-my-tracks, .session-other-tracks, .session-media-tracks, .session-notifications {
|
||||
.session-my-tracks, .session-other-tracks, .session-media-tracks {
|
||||
@include border_box_sizing;
|
||||
float: left;
|
||||
width: 25%;
|
||||
width: 33%;
|
||||
border-right: 1px solid #4c4c4c;
|
||||
padding: 10px;
|
||||
height: 100%;
|
||||
margin-bottom: 15px;
|
||||
color:$ColorTextTypical;
|
||||
overflow:hidden;
|
||||
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.session-media-tracks {
|
||||
width:34%;
|
||||
}
|
||||
|
||||
.session-notifications {
|
||||
border-right-width: 0;
|
||||
display:none; //temp
|
||||
}
|
||||
|
||||
.in-session-controls {
|
||||
|
|
@ -155,6 +167,15 @@ $session-screen-divider: 1415px;
|
|||
margin-right: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.button-grey {
|
||||
margin:0 5px;
|
||||
padding: 3px 7px;
|
||||
|
||||
&.session-leave {
|
||||
margin-right:10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.session-tracks-scroller {
|
||||
|
|
@ -169,7 +190,7 @@ $session-screen-divider: 1415px;
|
|||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
text-align:center;
|
||||
text-align:left;
|
||||
|
||||
&.media-options-showing {
|
||||
top:180px;
|
||||
|
|
@ -325,6 +346,11 @@ $session-screen-divider: 1415px;
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.close-window {
|
||||
text-align:center;
|
||||
clear:both;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
@import "client/common";
|
||||
|
||||
|
||||
|
||||
.session-track {
|
||||
|
||||
display:inline-block;
|
||||
|
|
@ -132,7 +130,7 @@
|
|||
}
|
||||
.track-icon-pan {
|
||||
float:right;
|
||||
margin-right:20px;
|
||||
margin-right:15px;
|
||||
}
|
||||
.track-icon-mute{
|
||||
float:right;
|
||||
|
|
@ -143,8 +141,8 @@
|
|||
.track-instrument {
|
||||
float:left;
|
||||
margin-left:0;
|
||||
margin-right: 8px;
|
||||
margin-top: -3px;
|
||||
margin-right: 10px;
|
||||
margin-top: -4px;
|
||||
}
|
||||
.track-controls {
|
||||
margin-left:0;
|
||||
|
|
@ -165,10 +163,9 @@
|
|||
}
|
||||
.track-instrument {
|
||||
float: left;
|
||||
margin: -2px 7px 0 0;
|
||||
margin: -4px 10px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.recorded-category, &.jam-track-category {
|
||||
height:auto !important;
|
||||
}
|
||||
|
|
@ -188,7 +185,7 @@
|
|||
|
||||
.react-holder {
|
||||
&.SessionTrackVolumeHover, &.SessionSelfVolumeHover {
|
||||
height:331px;
|
||||
height:343px;
|
||||
width:235px;
|
||||
|
||||
.session-track {
|
||||
|
|
@ -304,6 +301,8 @@
|
|||
|
||||
.mixer-holder {
|
||||
|
||||
padding-bottom:0;
|
||||
|
||||
.session-track {
|
||||
margin-top:0;
|
||||
}
|
||||
|
|
@ -320,12 +319,14 @@
|
|||
|
||||
}
|
||||
&.SessionTrackVolumeHover {
|
||||
|
||||
.session-track {
|
||||
margin-bottom:0;
|
||||
}
|
||||
}
|
||||
|
||||
&.SessionSelfVolumeHover {
|
||||
width:470px ! important;
|
||||
height:360px ! important;
|
||||
height:380px ! important;
|
||||
}
|
||||
|
||||
&.SessionTrackPanHover {
|
||||
|
|
|
|||
|
|
@ -300,12 +300,12 @@
|
|||
var findBandScreen = new JK.FindBandScreen(JK.app);
|
||||
findBandScreen.initialize();
|
||||
|
||||
var sessionScreen = new JK.SessionScreen(JK.app);
|
||||
sessionScreen.initialize(localRecordingsDialog, recordingFinishedDialog, JK.FriendSelectorDialogInstance);
|
||||
//var sessionScreen = new JK.SessionScreen(JK.app);
|
||||
//sessionScreen.initialize(localRecordingsDialog, recordingFinishedDialog, JK.FriendSelectorDialogInstance);
|
||||
|
||||
AppActions.appInit.trigger(JK.app)
|
||||
|
||||
var sessionSettingsDialog = new JK.SessionSettingsDialog(JK.app, sessionScreen);
|
||||
var sessionSettingsDialog = new JK.SessionSettingsDialog(JK.app);
|
||||
sessionSettingsDialog.initialize();
|
||||
|
||||
var adjustGearSpeed = new JK.AdjustGearSpeedDialog(JK.app);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
describe("with defaults", function() {
|
||||
it("should add vertical fader to selector", function() {
|
||||
JK.FaderHelpers.renderFader('#fader', {faderId:'a'});
|
||||
$fader = $('#fader div[control="fader"]');
|
||||
$fader = $('#fader div[data-control="fader"]');
|
||||
orientation = $fader.attr('orientation');
|
||||
expect($fader.length).toEqual(1);
|
||||
expect(orientation).toEqual('vertical');
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
describe("horizontal", function() {
|
||||
it("should add horizontal fader to selector", function() {
|
||||
JK.FaderHelpers.renderFader('#fader', {faderId:'a',faderType: "horizontal"});
|
||||
$fader = $('#fader div[control="fader"]');
|
||||
$fader = $('#fader div[data-control="fader"]');
|
||||
orientation = $fader.attr('orientation');
|
||||
expect($fader.length).toEqual(1);
|
||||
expect(orientation).toEqual('horizontal');
|
||||
|
|
|
|||
Loading…
Reference in New Issue