Beispiel #1
0
function parse_mpd_state($status)
{
    global $debug;
    /*
    default.aac
    [playing] #2/4   0:53/4:08 (21%)
    Updating DB (#4) ...
    volume: n/a   repeat: on    random: off   single: off   consume: off
    */
    $state = array();
    $state['state'] = 'stop';
    // search play state from first index
    foreach ($status as $tmp_idx => $status_line) {
        if (preg_match('/^\\[(paused|playing)\\]/', $status_line)) {
            $tmp = preg_split('/\\s+/', $status_line);
            if ($tmp[0] == '[playing]') {
                $state['state'] = 'play';
            }
            if ($tmp[0] == '[paused]') {
                $state['state'] = 'pause';
            }
            $tmp_num = strtok($tmp[1], '/');
            $state['songid'] = intval(substr($tmp_num, 1));
            $state['playlistlength'] = strtok('/');
            $state['time_sec'] = convert_time_to_seconds(strtok($tmp[2], '/'));
            $state['elapsed_sec'] = convert_time_to_seconds(strtok('/'));
        }
    }
    if ($debug) {
        echo "parsed mpd state: \n";
        var_dump($state);
    }
    return $state;
}
Beispiel #2
0
 /**
  * Test converting time period with invalid input
  */
 public function test_convert_time_to_seconds_with_invalid_input()
 {
     // Asert missing properties returns false
     $period = new stdClass();
     $result = convert_time_to_seconds($period);
     $this->assertFalse($result);
     $periodone = new stdClass();
     $periodone->minutes = 0;
     $result = convert_time_to_seconds($periodone);
     $this->assertFalse($result);
     $periodtwo = new stdClass();
     $periodtwo->hours = 0;
     $result = convert_time_to_seconds($periodtwo);
     $this->assertFalse($result);
 }
Beispiel #3
0
}
// Validate minutes argument.
if (array_key_exists('minutes', $options)) {
    if (!validate_parameter($options['minutes'])) {
        cli_error(get_string('cli_error_minutes', 'eliscore_etl'));
    }
    $period->minutes = (int) $options['minutes'];
}
// Validate hours argument.
if (array_key_exists('hours', $options)) {
    if (!validate_parameter($options['hours'])) {
        cli_error(get_string('cli_error_hours', 'eliscore_etl'));
    }
    $period->hours = (int) $options['hours'];
}
$durationinseconds = convert_time_to_seconds($period);
if (0 == $durationinseconds || false == $durationinseconds) {
    cli_error(get_string('cli_error_zero_duration', 'eliscore_etl'));
}
if ($durationinseconds > ETL_BLOCKED_MAX_TIME) {
    cli_error(get_string('cli_error_max_time_exceeded', 'eliscore_etl', ETL_BLOCKED_MAX_TIME));
}
// Print heading.
cli_heading(get_string('cli_run_etl_cron_heading', 'eliscore_etl', $period));
// Check for existing block.
$task = $DB->get_record('local_eliscore_sched_tasks', array('plugin' => 'eliscore_etl'));
if (!empty($task->blocked) && $timenow < $task->blocked) {
    cli_error(get_string('cli_error_blocked', 'eliscore_etl'));
}
$etlobj = new eliscore_etl_useractivity($durationinseconds);
// Set callback method incase the script is terminated.