Home Reference Source

js/engine/record-mode.js

/**
 * @file record-mode.js
 * @since 2.0.0
 */

// recorder modes
const IMAGE_ONLY = 'image_only';
const AUDIO_ONLY = 'audio_only';
const VIDEO_ONLY = 'video_only';
const AUDIO_VIDEO = 'audio_video';
const AUDIO_SCREEN = 'audio_screen';
const ANIMATION = 'animation';
const SCREEN_ONLY = 'screen_only';


const getRecorderMode = function(image, audio, video, animation, screen) {
    if (isModeEnabled(image)) {
        return IMAGE_ONLY;

    } else if (isModeEnabled(animation)) {
        return ANIMATION;

    } else if (isModeEnabled(audio) && isModeEnabled(video)) {
        return AUDIO_VIDEO;

    } else if (isModeEnabled(audio) && isModeEnabled(screen)) {
        return AUDIO_SCREEN;

    } else if (!isModeEnabled(audio) && isModeEnabled(screen)) {
        return SCREEN_ONLY;

    } else if (isModeEnabled(audio) && !isModeEnabled(video)) {
        return AUDIO_ONLY;

    } else if (!isModeEnabled(audio) && isModeEnabled(video)) {
        return VIDEO_ONLY;
    }
};

/**
 * Check whether mode is enabled or not.
 *
 * @param {(Object|Boolean)} mode - Mode.
 * @returns {Boolean} Return boolean indicating whether mode is enabled or not.
 * @private
 */
const isModeEnabled = function(mode) {
    return mode === Object(mode) || mode === true;
};

export {
    getRecorderMode,
    IMAGE_ONLY, AUDIO_ONLY, VIDEO_ONLY, AUDIO_VIDEO, ANIMATION, SCREEN_ONLY, AUDIO_SCREEN
};