80 lines
2.3 KiB
CoffeeScript
80 lines
2.3 KiB
CoffeeScript
context = window
|
|
|
|
@SessionActions = Reflux.createActions({
|
|
enterSession: {}
|
|
joinSession: {}
|
|
leaveSession: {}
|
|
mixersChanged: {}
|
|
allowLeaveSession: {}
|
|
syncWithServer: {}
|
|
toggleSessionVideo : {}
|
|
audioResync: {}
|
|
openBackingTrack: {}
|
|
closeMedia: {}
|
|
updateSession: {}
|
|
downloadingJamTrack : {}
|
|
openMetronome: {}
|
|
showNativeMetronomeGui: {}
|
|
metronomeCricketChange: {}
|
|
windowBackgrounded: {}
|
|
broadcastFailure: {}
|
|
broadcastSuccess: {}
|
|
broadcastStopped: {}
|
|
mixdownActive: {}
|
|
sessionJoinedByOther: {}
|
|
navToSession: {}
|
|
log: {}
|
|
})
|
|
|
|
pushJoinActionTrace = (source, argsLike) ->
|
|
return unless context.JK?.DebugLogCollector?.push
|
|
args = Array::slice.call(argsLike ? [])
|
|
context.JK.DebugLogCollector.push("join-source.session-action", {
|
|
source: source
|
|
args: args
|
|
stack: (new Error("SessionActions.joinSession")).stack
|
|
})
|
|
|
|
if @SessionActions?.joinSession?
|
|
originalJoinAction = @SessionActions.joinSession
|
|
wrappedJoinAction = ->
|
|
pushJoinActionTrace('call', arguments)
|
|
originalJoinAction.apply(this, arguments)
|
|
|
|
for own key, value of originalJoinAction
|
|
wrappedJoinAction[key] = value
|
|
|
|
if originalJoinAction.trigger?
|
|
originalTrigger = originalJoinAction.trigger
|
|
wrappedJoinAction.trigger = ->
|
|
pushJoinActionTrace('trigger', arguments)
|
|
originalTrigger.apply(originalJoinAction, arguments)
|
|
|
|
@SessionActions.joinSession = wrappedJoinAction
|
|
|
|
pushLeaveActionTrace = (source, argsLike) ->
|
|
return unless context.JK?.DebugLogCollector?.push
|
|
args = Array::slice.call(argsLike ? [])
|
|
context.JK.DebugLogCollector.push("leave-source.session-action", {
|
|
source: source
|
|
args: args
|
|
stack: (new Error("SessionActions.leaveSession")).stack
|
|
})
|
|
|
|
if @SessionActions?.leaveSession?
|
|
originalLeaveAction = @SessionActions.leaveSession
|
|
wrappedLeaveAction = ->
|
|
pushLeaveActionTrace('call', arguments)
|
|
originalLeaveAction.apply(this, arguments)
|
|
|
|
for own key, value of originalLeaveAction
|
|
wrappedLeaveAction[key] = value
|
|
|
|
if originalLeaveAction.trigger?
|
|
originalLeaveTrigger = originalLeaveAction.trigger
|
|
wrappedLeaveAction.trigger = ->
|
|
pushLeaveActionTrace('trigger', arguments)
|
|
originalLeaveTrigger.apply(originalLeaveAction, arguments)
|
|
|
|
@SessionActions.leaveSession = wrappedLeaveAction
|