Index: filefield_widget.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_widget.inc,v
retrieving revision 1.25
diff -u -p -r1.25 filefield_widget.inc
--- filefield_widget.inc	30 Jul 2008 18:05:28 -0000	1.25
+++ filefield_widget.inc	31 Jul 2008 00:06:54 -0000
@@ -298,6 +298,7 @@ function filefield_widget_process_upload
   }
 
   $form_state['values'][$field_name][$delta]['fid'] = $file['fid'];
+  $form_state['values'][$field_name][$delta]['data'] = $file['data'];
 
   return $element;
 }
Index: filefield_meta/filefield_meta.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_meta/filefield_meta.info,v
retrieving revision 1.4
diff -u -p -r1.4 filefield_meta.info
--- filefield_meta/filefield_meta.info	23 Jul 2008 00:05:31 -0000	1.4
+++ filefield_meta/filefield_meta.info	31 Jul 2008 00:06:54 -0000
@@ -4,5 +4,5 @@ description = Add metadata gathering and
 dependencies[] = filefield
 dependencies[] = getid3
 package = CCK
-core = 5.x
+core = 6.x
 php = 5.2
Index: filefield_meta/filefield_meta.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_meta/filefield_meta.install,v
retrieving revision 1.3
diff -u -p -r1.3 filefield_meta.install
--- filefield_meta/filefield_meta.install	28 Jun 2008 06:57:07 -0000	1.3
+++ filefield_meta/filefield_meta.install	31 Jul 2008 00:06:54 -0000
@@ -9,17 +9,48 @@
  * Implementation of hook_install().
  */
 function filefield_meta_install() {
-  db_query('CREATE TABLE {filefield_meta} (
-              fid INT UNSIGNED NOT NULL,
-              width INT UNSIGNED NOT NULL,
-              height INT unsigned NOT NULL,
-              duration FLOAT(53),
-              PRIMARY KEY (fid)
-            )
-          ');
+  drupal_install_schema('filefield_meta');
 }
 
 function filefield_meta_uninstall() {
-  db_query('DROP TABLE IF EXISTS {filefield_meta_backup}');
-  db_query('ALTER TABLE {filefield_meta} RENAME TO {filefield_meta_bak}');
+  drupal_uninstall_schema('filefield_meta');
+}
+
+/**
+ * Implementation of hook_schema().
+ */
+function filefield_meta_schema() {
+  // The primary field/index.
+  $schema['filefield_meta'] = array(
+    'description' => t('The table for meta data about filefield files.'),
+    'fields' => array(
+      'fid' => array(
+        'description' => t('The file id.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+      ),
+      'width' => array(
+        'description' => t('Width of a video or image file in pixels.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+      ),
+      'height' => array(
+        'description' => t('Height of a video or image file in pixels.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => FALSE,
+      ),
+      'duration' => array(
+        'description' => t('The duration of audio or video files, in seconds.'),
+        'type' => 'float',
+        'size' => 'normal',
+        'not null' => FALSE,
+      ),
+    ),
+    'primary key' => array('fid'),
+  );
+
+  return $schema;
 }
Index: filefield_meta/filefield_meta.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield_meta/filefield_meta.module,v
retrieving revision 1.3
diff -u -p -r1.3 filefield_meta.module
--- filefield_meta/filefield_meta.module	28 Jun 2008 06:57:07 -0000	1.3
+++ filefield_meta/filefield_meta.module	31 Jul 2008 00:06:54 -0000
@@ -5,93 +5,42 @@
  * FileField Meta: Add Video Support to File Field.
  */
 
-/**
- * Implementation of hook_filefield
- *
- * @param op
- *  - file_save
- *  - file_delete
- *  - file_prepare
- *  - file_validate
- *  - file_load
- *  - file_form
- *  - delete
- *
- * @param node
- * @param field
- * @param file
- * @param form
- */
-
-define('FILEFIELD_META_MINIMUM_PHP', '5.2');
-
-/**
- *  Implementation of hook_requirements().
- */
-function filefield_meta_requirements($phase) {
-  $requirements = array();
-  // Ensure translations don't break at install time
-  $t = get_t();
-
-  if (version_compare(phpversion(), FILEFIELD_META_MINIMUM_PHP) < 0) {
-    $requirements['filefield_meta_php'] = array(
-      'title' => $t('FileField Meta PHP'),
-      'description' => $t('FileField Meta requires at least PHP %version.', array('%version' => FILEFIELD_META_MINIMUM_PHP)),
-      'severity' => REQUIREMENT_ERROR
-    );
-  }
-
-  return $requirements;
+function filefield_meta_file_insert($file) {
+  filefield_meta($file);
+  drupal_write_record('filefield_meta', $file->data);
 }
 
-function filefield_meta_filefield($op, &$node, $field, &$file, &$form = NULL) {
-  $args = func_get_args();
-
-  switch($op) {
-    case 'file_form':
-      $form['file_preview']['#value'] = '';
-      $form['url']['#value'] .= '<br />'. t('width: !w; height: !h; duration: !d',
-        array('!w' => $file['width'], '!h' => $file['height'], '!d' => $file['duration'])
-      );
-      $form['width'] = array('#type' => 'hidden',  '#value' => $file['width']);
-      $form['height'] = array('#type' => 'hidden',  '#value' => $file['height']);
-      $form['duration'] = array('#type' => 'hidden',  '#value' => $file['duration']);
-      break;
-
-    case 'file_prepare':
-      filefield_meta($file);
-      return $file;
-      break;
-
-    case 'file_save':
-      db_query('INSERT INTO {filefield_meta} (fid, width, height, duration) VALUES (%d, %d, %d, %d)', $file['fid'], $file['width'], $file['height'], $file['duration']);
-      break;
+function filefield_meta_file_update($file) {
+  filefield_meta_file_delete($file);
+  filefield_meta($file);
+  drupal_write_record('filefield_meta', $file->data);
+}
 
-    case 'file_delete':
-      db_query('DELETE FROM {filefield_meta} WHERE fid = %d', $file['fid']);
-      break;
+function filefield_meta_file_delete($file) {
+  db_query('DELETE FROM {filefield_meta} WHERE fid = %d', $file->fid);
+}
 
-    case 'file_load':
-      $meta = db_fetch_array(db_query('SELECT * FROM {filefield_meta} WHERE fid = %d', $file['fid']));
-      if ($meta) {
-        return $meta;
-      }
-      break;
+function filefield_meta_file_load(&$file) {
+  if ($meta = db_fetch_array(db_query('SELECT * FROM {filefield_meta} WHERE fid = %d', $file->fid))) {
+    $file->data = is_array($file->data) ? array_merge($meta, $file->data) : $meta;
+  }
+  else {
+    filefield_meta($file);
   }
 }
 
 function filefield_meta(&$file) {
-  $info = getid3_analyze($file['filepath']);
-  $file['width'] = $file['height'] = $file['duration'] = 0;
+  $info = getid3_analyze($file->filepath);
+  $file->data['width'] = $file->data['height'] = $file->data['duration'] = 0;
   if (isset($info['video']['resolution_x'])) {
-    $file['width'] = $info['video']['resolution_x'];
-    $file['height'] = $info['video']['resolution_y'];
+    $file->data['width'] = $info['video']['resolution_x'];
+    $file->data['height'] = $info['video']['resolution_y'];
   }
   else if (isset($info['video']['streams'])) {
     foreach($info['video']['streams'] as $stream) {
-      $file['width'] = max($file['width'], $stream['resolution_x']);
-      $file['height'] = max($file['height'], $stream['resolution_y']);
+      $file->data['width'] = max($file->data['width'], $stream['resolution_x']);
+      $file->data['height'] = max($file->data['height'], $stream['resolution_y']);
     }
   }
-  $file['duration'] = $info['playtime_seconds'];
+  $file->data['duration'] = $info['playtime_seconds'];
 };
