@ -319,7 +319,50 @@
OCA . SpreedMe . webrtc . stopScreenShare ( ) ;
screensharingStopped ( ) ;
} ) ;
$ ( document ) . keyup ( this . _onKeyUp . bind ( this ) ) ;
} ,
_onKeyUp : function ( event ) {
// Define which objects to check for the event properties.
var key = event . which ;
// Trigger the event only if no input or textarea is focused
// and the CTRL key is not pressed
if ( $ ( 'input:focus' ) . length === 0 &&
$ ( 'textarea:focus' ) . length === 0 &&
! event . ctrlKey ) {
// Actual shortcut handling
switch ( key ) {
case 86 : // 'v'
event . preventDefault ( ) ;
if ( this . videoDisabled ) {
this . enableVideo ( ) ;
} else {
this . disableVideo ( ) ;
}
break ;
case 65 : // 'a'
event . preventDefault ( ) ;
if ( this . audioDisabled ) {
this . enableAudio ( ) ;
} else {
this . disableAudio ( ) ;
}
break ;
case 67 : // 'c'
event . preventDefault ( ) ;
this . _sidebarView . selectTab ( 'chat' ) ;
break ;
case 80 : // 'p'
event . preventDefault ( ) ;
this . _sidebarView . selectTab ( 'participants' ) ;
break ;
}
}
} ,
_showRoomList : function ( ) {
this . _roomsView = new OCA . SpreedMe . Views . RoomListView ( {
el : '#app-navigation ul' ,
@ -609,6 +652,10 @@
}
} ,
enableAudio : function ( ) {
if ( ! OCA . SpreedMe . webrtc ) {
return ;
}
OCA . SpreedMe . webrtc . unmute ( ) ;
$ ( '#mute' ) . attr ( 'data-original-title' , t ( 'spreed' , 'Mute audio' ) )
. removeClass ( 'audio-disabled icon-audio-off' )
@ -617,6 +664,10 @@
OCA . SpreedMe . app . audioDisabled = false ;
} ,
disableAudio : function ( ) {
if ( ! OCA . SpreedMe . webrtc ) {
return ;
}
OCA . SpreedMe . webrtc . mute ( ) ;
$ ( '#mute' ) . attr ( 'data-original-title' , t ( 'spreed' , 'Enable audio' ) )
. addClass ( 'audio-disabled icon-audio-off' )
@ -625,6 +676,10 @@
OCA . SpreedMe . app . audioDisabled = true ;
} ,
enableVideo : function ( ) {
if ( ! OCA . SpreedMe . webrtc ) {
return ;
}
var $hideVideoButton = $ ( '#hideVideo' ) ;
var $audioMuteButton = $ ( '#mute' ) ;
var avatarContainer = $hideVideoButton . closest ( '.videoView' ) . find ( '.avatar-container' ) ;
@ -642,6 +697,10 @@
OCA . SpreedMe . app . videoDisabled = false ;
} ,
hideVideo : function ( ) {
if ( ! OCA . SpreedMe . webrtc ) {
return ;
}
var $hideVideoButton = $ ( '#hideVideo' ) ;
var $audioMuteButton = $ ( '#mute' ) ;
var avatarContainer = $hideVideoButton . closest ( '.videoView' ) . find ( '.avatar-container' ) ;