You are here

public function Transcoder::getAllTranscoders in Video 7.2

Retuns all transcoders implemented to work with the video module.

File

includes/Transcoder.inc, line 286
Class file used to wrap the transcoder helper functions.

Class

Transcoder
@file Class file used to wrap the transcoder helper functions.

Code

public function getAllTranscoders() {

  // Lets find our transcoder classes and build our radio options
  // We do this by scanning our transcoders folder
  $form = array(
    'radios' => array(
      '' => t('No transcoder'),
    ),
    'help' => array(),
    'admin_settings' => array(),
  );

  // check inside sub modules
  $modules = module_list();
  $files = array();
  foreach ($modules as $module) {
    $module_files = array();
    $module_path = drupal_get_path('module', $module) . '/transcoders';
    foreach (file_scan_directory($module_path, '/.*\\.inc/') as $filekey => $file) {
      $file->module = $module;

      // Get filename to retrieve transcoder class name
      $filename = explode(".", $file->name);
      $file->name = $filename[0];
      $module_files[] = $file;
    }
    $files = array_merge($files, $module_files);
  }
  foreach ($files as $file) {
    module_load_include('inc', $file->module, '/transcoders/' . $file->name);
    $focus = new $file->name();
    $errorMessage = '';
    if (!$focus
      ->isAvailable($errorMessage)) {
      $form['help'][] = t('@name is unavailable: !errormessage', array(
        '@name' => $focus
          ->getName(),
        '!errormessage' => $errorMessage,
      ));
    }
    else {
      $form['radios'][$file->name] = check_plain($focus
        ->getName());
      $form['admin_settings'] = $form['admin_settings'] + $focus
        ->adminSettings();
    }
  }
  return $form;
}