You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

actions.js 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import {
  2. AUDIO_MUTED_CHANGED,
  3. CAMERA_FACING_MODE_CHANGED,
  4. VIDEO_MUTED_CHANGED
  5. } from './actionTypes';
  6. import { CAMERA_FACING_MODE } from './constants';
  7. import './middleware';
  8. import './reducer';
  9. /**
  10. * Action to signal the change in local audio muted state.
  11. *
  12. * @param {boolean} muted - If local audio is muted.
  13. * @returns {{
  14. * type: AUDIO_MUTED_CHANGED,
  15. * muted: boolean
  16. * }}
  17. */
  18. export function audioMutedChanged(muted) {
  19. return {
  20. type: AUDIO_MUTED_CHANGED,
  21. muted
  22. };
  23. }
  24. /**
  25. * Action to signal the change in facing mode of local video camera.
  26. *
  27. * @param {CAMERA_FACING_MODE} cameraFacingMode - Camera facing mode.
  28. * @returns {{
  29. * type: CAMERA_FACING_MODE_CHANGED,
  30. * cameraFacingMode: CAMERA_FACING_MODE
  31. * }}
  32. */
  33. export function cameraFacingModeChanged(cameraFacingMode) {
  34. return {
  35. type: CAMERA_FACING_MODE_CHANGED,
  36. cameraFacingMode
  37. };
  38. }
  39. /**
  40. * Toggles the mute state of the local audio track(s).
  41. *
  42. * @returns {Function}
  43. */
  44. export function toggleAudioMuted() {
  45. return (dispatch, getState) => {
  46. const muted = getState()['features/base/media'].audio.muted;
  47. return dispatch(audioMutedChanged(!muted));
  48. };
  49. }
  50. /**
  51. * Toggles the camera between front and rear (user and environment).
  52. *
  53. * @returns {Function}
  54. */
  55. export function toggleCameraFacingMode() {
  56. return (dispatch, getState) => {
  57. let cameraFacingMode
  58. = getState()['features/base/media'].video.facingMode;
  59. cameraFacingMode
  60. = cameraFacingMode === CAMERA_FACING_MODE.USER
  61. ? CAMERA_FACING_MODE.ENVIRONMENT
  62. : CAMERA_FACING_MODE.USER;
  63. return dispatch(cameraFacingModeChanged(cameraFacingMode));
  64. };
  65. }
  66. /**
  67. * Toggles the mute state of the local video track(s).
  68. *
  69. * @returns {Function}
  70. */
  71. export function toggleVideoMuted() {
  72. return (dispatch, getState) => {
  73. const muted = getState()['features/base/media'].video.muted;
  74. return dispatch(videoMutedChanged(!muted));
  75. };
  76. }
  77. /**
  78. * Action to signal the change in local video muted state.
  79. *
  80. * @param {boolean} muted - If local video is muted.
  81. * @returns {{
  82. * type: VIDEO_MUTED_CHANGED,
  83. * muted: boolean
  84. * }}
  85. */
  86. export function videoMutedChanged(muted) {
  87. return {
  88. type: VIDEO_MUTED_CHANGED,
  89. muted
  90. };
  91. }