From d89227829fc7f7bea9f631e87c274adf97b995ad Mon Sep 17 00:00:00 2001 From: hristoterezov Date: Mon, 21 May 2018 15:52:30 -0500 Subject: [PATCH] feat(invite-sounds): Add expired and rejected sounds. --- react/features/base/participants/functions.js | 22 ++++ react/features/invite/constants.js | 18 +++ react/features/invite/middleware.any.js | 108 +++++++++--------- react/features/invite/sounds.js | 49 ++++++-- sounds/rejected.wav | Bin 0 -> 69236 bytes 5 files changed, 133 insertions(+), 64 deletions(-) create mode 100644 sounds/rejected.wav diff --git a/react/features/base/participants/functions.js b/react/features/base/participants/functions.js index f602aa2a11..3a4db5edb6 100644 --- a/react/features/base/participants/functions.js +++ b/react/features/base/participants/functions.js @@ -180,6 +180,28 @@ export function getParticipantDisplayName( : 'Fellow Jitster'; } +/** + * Returns the presence status of a participant associated with the passed id. + * + * @param {(Function|Object)} stateful - The (whole) redux state, or redux's + * {@code getState} function to be used to retrieve the state. + * @param {string} id - The id of the participant. + * @returns {string} - The presence status. + */ +export function getParticipantPresenceStatus( + stateful: Object | Function, id: string) { + if (!id) { + return undefined; + } + const participantById = getParticipantById(stateful, id); + + if (!participantById) { + return undefined; + } + + return participantById.presence; +} + /** * Selectors for getting all known participants with fake participants filtered * out. diff --git a/react/features/invite/constants.js b/react/features/invite/constants.js index 97ea8b93f5..61f686dd18 100644 --- a/react/features/invite/constants.js +++ b/react/features/invite/constants.js @@ -1,3 +1,21 @@ +/** + * The identifier of the sound to be played when the status of an outgoing call + * is expired. + * + * @type {string} + */ +export const OUTGOING_CALL_EXPIRED_SOUND_ID + = 'OUTGOING_CALL_EXPIRED_SOUND_ID'; + +/** + * The identifier of the sound to be played when the status of an outgoing call + * is rejected. + * + * @type {string} + */ +export const OUTGOING_CALL_REJECTED_SOUND_ID + = 'OUTGOING_CALL_REJECTED_SOUND_ID'; + /** * The identifier of the sound to be played when the status of an outgoing call * is ringing. diff --git a/react/features/invite/middleware.any.js b/react/features/invite/middleware.any.js index d51c3b3da4..922197f51e 100644 --- a/react/features/invite/middleware.any.js +++ b/react/features/invite/middleware.any.js @@ -2,9 +2,10 @@ import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app'; import { - getParticipantById, - PARTICIPANT_UPDATED, - PARTICIPANT_LEFT + getParticipantPresenceStatus, + PARTICIPANT_JOINED_SOUND_ID, + PARTICIPANT_LEFT, + PARTICIPANT_UPDATED } from '../base/participants'; import { MiddlewareRegistry } from '../base/redux'; import { @@ -15,24 +16,39 @@ import { } from '../base/sounds'; import { CALLING, + CONNECTED_USER, + EXPIRED, INVITED, + REJECTED, RINGING } from '../presence-status'; import { UPDATE_DIAL_IN_NUMBERS_FAILED } from './actionTypes'; import { - OUTGOING_CALL_START_SOUND_ID, - OUTGOING_CALL_RINGING_SOUND_ID + OUTGOING_CALL_EXPIRED_SOUND_ID, + OUTGOING_CALL_REJECTED_SOUND_ID, + OUTGOING_CALL_RINGING_SOUND_ID, + OUTGOING_CALL_START_SOUND_ID } from './constants'; -import { - OUTGOING_CALL_START_FILE, - OUTGOING_CALL_RINGING_FILE -} from './sounds'; +import { sounds } from './sounds'; const logger = require('jitsi-meet-logger').getLogger(__filename); declare var interfaceConfig: Object; +/** + * Maps the presence status with the ID of the sound that will be played when + * the status is received. + */ +const statusToRingtone = { + [CALLING]: OUTGOING_CALL_START_SOUND_ID, + [CONNECTED_USER]: PARTICIPANT_JOINED_SOUND_ID, + [EXPIRED]: OUTGOING_CALL_EXPIRED_SOUND_ID, + [INVITED]: OUTGOING_CALL_START_SOUND_ID, + [REJECTED]: OUTGOING_CALL_REJECTED_SOUND_ID, + [RINGING]: OUTGOING_CALL_RINGING_SOUND_ID +}; + /** * The middleware of the feature invite common to mobile/react-native and * Web/React. @@ -46,56 +62,55 @@ MiddlewareRegistry.register(store => next => action => { if (action.type === PARTICIPANT_UPDATED || action.type === PARTICIPANT_LEFT) { oldParticipantPresence - = _getParticipantPresence(store.getState(), action.participant.id); + = getParticipantPresenceStatus( + store.getState(), + action.participant.id); } const result = next(action); switch (action.type) { case APP_WILL_MOUNT: - store.dispatch( - registerSound( - OUTGOING_CALL_START_SOUND_ID, - OUTGOING_CALL_START_FILE)); - - store.dispatch( - registerSound( - OUTGOING_CALL_RINGING_SOUND_ID, - OUTGOING_CALL_RINGING_FILE, - { loop: true })); + for (const [ soundId, sound ] of sounds.entries()) { + store.dispatch(registerSound(soundId, sound.file, sound.options)); + } break; case APP_WILL_UNMOUNT: - store.dispatch(unregisterSound(OUTGOING_CALL_START_SOUND_ID)); - store.dispatch(unregisterSound(OUTGOING_CALL_RINGING_SOUND_ID)); + for (const soundId of sounds.keys()) { + store.dispatch(unregisterSound(soundId)); + } break; case PARTICIPANT_LEFT: case PARTICIPANT_UPDATED: { const newParticipantPresence - = _getParticipantPresence(store.getState(), action.participant.id); + = getParticipantPresenceStatus( + store.getState(), + action.participant.id); if (oldParticipantPresence === newParticipantPresence) { break; } - switch (oldParticipantPresence) { - case CALLING: - case INVITED: - store.dispatch(stopSound(OUTGOING_CALL_START_SOUND_ID)); - break; - case RINGING: - store.dispatch(stopSound(OUTGOING_CALL_RINGING_SOUND_ID)); + const oldSoundId + = oldParticipantPresence + && statusToRingtone[oldParticipantPresence]; + const newSoundId + = newParticipantPresence + && statusToRingtone[newParticipantPresence]; + + + if (oldSoundId === newSoundId) { break; } - switch (newParticipantPresence) { - case CALLING: - case INVITED: - store.dispatch(playSound(OUTGOING_CALL_START_SOUND_ID)); - break; - case RINGING: - store.dispatch(playSound(OUTGOING_CALL_RINGING_SOUND_ID)); + if (oldSoundId) { + store.dispatch(stopSound(oldSoundId)); + } + + if (newSoundId) { + store.dispatch(playSound(newSoundId)); } break; @@ -109,22 +124,3 @@ MiddlewareRegistry.register(store => next => action => { return result; }); - -/** - * Returns the presence status of a participant associated with the passed id. - * - * @param {Object} state - The redux state. - * @param {string} id - The id of the participant. - * @returns {string} - The presence status. - */ -function _getParticipantPresence(state, id) { - if (id) { - const participantById = getParticipantById(state, id); - - if (participantById) { - return participantById.presence; - } - } - - return undefined; -} diff --git a/react/features/invite/sounds.js b/react/features/invite/sounds.js index 43b512f04e..b75e292bb7 100644 --- a/react/features/invite/sounds.js +++ b/react/features/invite/sounds.js @@ -1,11 +1,44 @@ -/** - * The name of the sound file which will be played when the status of an - * outgoing call is ringing. - */ -export const OUTGOING_CALL_RINGING_FILE = 'outgoingRinging.wav'; +import { + OUTGOING_CALL_EXPIRED_SOUND_ID, + OUTGOING_CALL_REJECTED_SOUND_ID, + OUTGOING_CALL_RINGING_SOUND_ID, + OUTGOING_CALL_START_SOUND_ID +} from './constants'; /** - * The name of the sound file which will be played when outgoing call is - * started. + * Maps the sounds IDs with the filenames sounds associated with them. + * + * @type {Map} */ -export const OUTGOING_CALL_START_FILE = 'outgoingStart.wav'; +export const sounds = new Map([ + + /** + * The name of the sound file which will be played when outgoing call is + * expired. + */ + [ OUTGOING_CALL_EXPIRED_SOUND_ID, { file: 'rejected.wav' } ], + + /** + * The name of the sound file which will be played when outgoing call is + * rejected. + */ + [ OUTGOING_CALL_REJECTED_SOUND_ID, { file: 'rejected.wav' } ], + + /** + * The name of the sound file which will be played when the status of an + * outgoing call is ringing. + */ + [ + OUTGOING_CALL_RINGING_SOUND_ID, + { + file: 'outgoingRinging.wav', + options: { loop: true } + } + ], + + /** + * The name of the sound file which will be played when outgoing call is + * started. + */ + [ OUTGOING_CALL_START_SOUND_ID, { file: 'outgoingStart.wav' } ] +]); diff --git a/sounds/rejected.wav b/sounds/rejected.wav new file mode 100644 index 0000000000000000000000000000000000000000..ab9fc1cd7c77b1558da07c37bed9547c9c0ec79f GIT binary patch literal 69236 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�g#TzRK{$W{_X7X%DgLz2r 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 M=VNr5boaae1W`MUUH||9 literal 0 HcmV?d00001