See Release Notes
Long Term Support Release
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * Atto recordrtc library functions * * @package atto_recordrtc * @author Jesus Federico (jesus [at] blindsidenetworks [dt] com) * @author Jacob Prud'homme (jacob [dt] prudhomme [at] blindsidenetworks [dt] com) * @copyright 2017 Blindside Networks Inc. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); /**> * Default maximum recording length allowed for the audio/video clips. * Set params for this plugin. > */ * > define('DEFAULT_TIME_LIMIT', 120); * @param string $elementid > * @param stdClass $options - the options for the editor, including the context. > /*** @param stdClass $fpoptions - unused. */ function atto_recordrtc_params_for_js($elementid, $options, $fpoptions) { $context = $options['context']; if (!$context) { $context = context_system::instance(); } $sesskey = sesskey(); $allowedtypes = get_config('atto_recordrtc', 'allowedtypes'); $audiobitrate = get_config('atto_recordrtc', 'audiobitrate'); $videobitrate = get_config('atto_recordrtc', 'videobitrate');< $timelimit = get_config('atto_recordrtc', 'timelimit');> $audiotimelimit = get_config('atto_recordrtc', 'audiotimelimit'); > $videotimelimit = get_config('atto_recordrtc', 'videotimelimit');// Update $allowedtypes to account for capabilities. $audioallowed = $allowedtypes === 'audio' || $allowedtypes === 'both'; $videoallowed = $allowedtypes === 'video' || $allowedtypes === 'both'; $audioallowed = $audioallowed && has_capability('atto/recordrtc:recordaudio', $context); $videoallowed = $videoallowed && has_capability('atto/recordrtc:recordvideo', $context); if ($audioallowed && $videoallowed) { $allowedtypes = 'both'; } else if ($audioallowed) { $allowedtypes = 'audio'; } else if ($videoallowed) { $allowedtypes = 'video'; } else { $allowedtypes = ''; } $maxrecsize = get_max_upload_file_size(); if (!empty($options['maxbytes'])) { $maxrecsize = min($maxrecsize, $options['maxbytes']); } $audiortcicon = 'i/audiortc'; $videortcicon = 'i/videortc'; $params = array('contextid' => $context->id, 'sesskey' => $sesskey, 'allowedtypes' => $allowedtypes, 'audiobitrate' => $audiobitrate, 'videobitrate' => $videobitrate,< 'timelimit' => $timelimit,> 'audiotimelimit' => $audiotimelimit, > 'videotimelimit' => $videotimelimit, > 'defaulttimelimit' => DEFAULT_TIME_LIMIT,'audiortcicon' => $audiortcicon, 'videortcicon' => $videortcicon, 'maxrecsize' => $maxrecsize ); return $params; } /** * Initialise the js strings required for this module. */ function atto_recordrtc_strings_for_js() { global $PAGE; $strings = array('audiortc', 'videortc', 'nowebrtc_title', 'nowebrtc', 'gumabort_title', 'gumabort', 'gumnotallowed_title', 'gumnotallowed', 'gumnotfound_title', 'gumnotfound', 'gumnotreadable_title', 'gumnotreadable', 'gumnotsupported', 'gumnotsupported_title', 'gumoverconstrained_title', 'gumoverconstrained', 'gumsecurity_title', 'gumsecurity', 'gumtype_title', 'gumtype', 'insecurealert_title', 'insecurealert', 'startrecording', 'recordagain', 'stoprecording', 'recordingfailed', 'attachrecording', 'norecordingfound_title', 'norecordingfound', 'nearingmaxsize_title', 'nearingmaxsize', 'uploadprogress', 'uploadfailed', 'uploadfailed404', 'uploadaborted' ); $PAGE->requires->strings_for_js($strings, 'atto_recordrtc'); } /** * Map icons for font-awesome themes. */ function atto_recordrtc_get_fontawesome_icon_map() { return [ 'atto_recordrtc:i/audiortc' => 'fa-microphone', 'atto_recordrtc:i/videortc' => 'fa-video-camera' ]; }