? contrib/feeds/.svn
? contrib/feeds/translations/.svn
Index: contrib/feeds/audio-feeds-player.tpl.php
===================================================================
RCS file: contrib/feeds/audio-feeds-player.tpl.php
diff -N contrib/feeds/audio-feeds-player.tpl.php
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ contrib/feeds/audio-feeds-player.tpl.php	28 Oct 2009 00:16:25 -0000
@@ -0,0 +1,5 @@
+<?php
+
+  // TODO: Check if the node really has a corresponding XSPF playlist.
+
+  print theme($theme_xspf, url('node/'. $element['#node']->nid .'/xspf'), $options);
Index: contrib/feeds/audio_feeds.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/audio/contrib/feeds/audio_feeds.info,v
retrieving revision 1.5
diff -u -F^function -r1.5 audio_feeds.info
--- contrib/feeds/audio_feeds.info	14 Sep 2009 04:40:57 -0000	1.5
+++ contrib/feeds/audio_feeds.info	28 Oct 2009 00:16:25 -0000
@@ -1,6 +1,6 @@
 ; $Id: audio_feeds.info,v 1.5 2009/09/14 04:40:57 drewish Exp $
 name = Audio Feeds
-description = Provide XSPF, M3U, and PLS feeds for attached audio nodes.
+description = Provide XSPF, M3U, and PLS feeds for audio nodes referenced by Node Reference fields.
 package = "Audio"
 core = 6.x
 dependencies[] = audio
Index: contrib/feeds/audio_feeds_player.info
===================================================================
RCS file: contrib/feeds/audio_feeds_player.info
diff -N contrib/feeds/audio_feeds_player.info
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ contrib/feeds/audio_feeds_player.info	28 Oct 2009 00:16:25 -0000
@@ -0,0 +1,7 @@
+; $Id$
+name = Audio Feeds Player
+description = Provide CCK formatters for displaying players for audio feeds.
+package = "Audio"
+core = 6.x
+dependencies[] = audio_feeds
+
Index: contrib/feeds/audio_feeds_player.module
===================================================================
RCS file: contrib/feeds/audio_feeds_player.module
diff -N contrib/feeds/audio_feeds_player.module
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ contrib/feeds/audio_feeds_player.module	28 Oct 2009 00:16:25 -0000
@@ -0,0 +1,60 @@
+<?php
+// $Id$
+
+/**
+ * @file
+ * This module provides CCK formatters for displaying players for audio feeds.
+ */
+
+/**
+ * Implementation of hook_help().
+ */
+function audio_feeds_player_help($section, $arg) {
+  switch ($section) {
+    case 'admin/help#audio_feeds_player':
+      return t('This module provides CCK formatters for displaying players for audio feeds. Supports XSPF audio feeds only.');
+  }
+}
+
+/**
+ * Implementation of hook_field_formatter_info().
+ */
+function audio_feeds_player_field_formatter_info() {
+  $formatters = array();
+  foreach (audio_get_players('names') as $key => $player) {
+    if (isset($player['theme_xspf'])) {
+      $formatters[$key] = array(
+        'label' => $player['title'],
+        'field types' => array('nodereference'),
+        'multiple values' => CONTENT_HANDLE_MODULE,
+      );
+    }
+  }
+  return $formatters;
+}
+
+/**
+ * Implementation of hook_theme().
+ */
+function audio_feeds_player_theme() {
+  $entries = array();
+  foreach (audio_get_players('names') as $key => $player) {
+    if (isset($player['theme_xspf'])) {
+      $entries['audio_feeds_player_formatter_'. $key] = array(
+        'arguments' => array(
+          'element' => NULL,
+          'theme_xspf' => $player['theme_xspf'],
+          'options' => isset($player['options']) ? $player['options'] : array(),
+        ),
+        // Note: This would probably make more sense as a theme function rather
+        // than a template file. However, while theme() passes arguments from
+        // the hook's definition to template files as variables, those arguments
+        // are not passed when the hook is implemented as a function. Perhaps
+        // http://drupal.org/node/579776#comment-2054254 is needed?
+        'template' => 'audio-feeds-player',
+      );
+    }
+  }
+  return $entries;
+}
+
