Index: mobile_codes.filter.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mobile_codes/mobile_codes.filter.inc,v
retrieving revision 1.1.2.3
diff -u -p -r1.1.2.3 mobile_codes.filter.inc
--- mobile_codes.filter.inc	4 Mar 2009 02:16:30 -0000	1.1.2.3
+++ mobile_codes.filter.inc	23 Mar 2009 01:38:39 -0000
@@ -77,7 +77,7 @@ function mobile_codes_filter_process($te
           $attr[$attribute[1]] = $attribute[2];
         }
       }
-      $text = str_replace($match[0], mobile_codes_generate($match[2], $attr, $format), $text);
+      $text = str_replace($match[0], theme('mobilecode', $match[2], $attr), $text);
       unset($attr);
     }
   }
Index: mobile_codes.formatter.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mobile_codes/Attic/mobile_codes.formatter.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 mobile_codes.formatter.inc
--- mobile_codes.formatter.inc	4 Mar 2009 02:18:00 -0000	1.1.2.1
+++ mobile_codes.formatter.inc	23 Mar 2009 01:38:39 -0000
@@ -11,8 +11,12 @@ function mobile_codes_field_formatter_in
 
   module_load_include('admin.inc', 'mobile_codes');
   foreach (mobile_codes_get_presets() as $preset) {
-    $formatters['mobile_codes_'. $preset->name] = array(
-      'label' => t('Mobile code') .': '. $preset->name,
+    $formatters['mobile_codes_'. $preset->name .'_default'] = array(
+      'label' => t('Mobile code: @preset image', array('@preset' => $preset->name)),
+      'field types' => array('text')
+    );
+    $formatters['mobile_codes_'. $preset->name .'_path'] = array(
+      'label' => t('Mobile code: @preset file path', array('@preset' => $preset->name)),
       'field types' => array('text')
     );
   }
@@ -21,8 +25,22 @@ function mobile_codes_field_formatter_in
 }
 
 function theme_mobile_codes_formatter($element) {
-  return theme('mobilecode', $element['#item']['safe'], array(
+  preg_match('/^mobile_codes_(.*)_(.*)$/', $element['#formatter'], $matches);
+
+  $arguments = array(
     'data' => 'text',
-    'preset' => drupal_substr($element['#formatter'], 13),
-  ));
+    'preset' => $matches[1]
+  );
+
+  switch ($matches[2]) {
+    case 'path':
+      $output = mobile_codes_generate($element['#item']['safe'], $arguments);
+      break;
+
+    default:
+      $output = theme('mobilecode', $element['#item']['safe'], $arguments);
+      break;
+  }
+
+  return $output;
 }
Index: mobile_codes.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mobile_codes/mobile_codes.info,v
retrieving revision 1.2.2.2
diff -u -p -r1.2.2.2 mobile_codes.info
--- mobile_codes.info	4 Mar 2009 02:16:30 -0000	1.2.2.2
+++ mobile_codes.info	23 Mar 2009 01:38:39 -0000
@@ -3,9 +3,3 @@ name = Mobile Codes
 description = Create <a href="http://en.wikipedia.org/wiki/Datamatrix">Datamatrix</a> or <a href="http://en.wikipedia.org/wiki/QR_Code">QR</a> codes via an input filter or a direct call in your template.
 core = 6.x
 
-; Information added by drupal.org packaging script on 2009-02-26
-version = "6.x-1.x-dev"
-core = "6.x"
-project = "mobile_codes"
-datestamp = "1235650422"
-
Index: mobile_codes.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mobile_codes/mobile_codes.module,v
retrieving revision 1.1.2.6
diff -u -p -r1.1.2.6 mobile_codes.module
--- mobile_codes.module	4 Mar 2009 02:16:30 -0000	1.1.2.6
+++ mobile_codes.module	23 Mar 2009 01:38:45 -0000
@@ -90,7 +90,11 @@ function mobile_codes_theme() {
 
   module_load_include('admin.inc', 'mobile_codes');
   foreach (mobile_codes_get_presets() as $preset) {
-    $theme['mobile_codes_formatter_mobile_codes_'. $preset->name] = array(
+    $theme['mobile_codes_formatter_mobile_codes_'. $preset->name .'_default'] = array(
+      'arguments' => array('element' => NULL),
+      'function' => 'theme_mobile_codes_formatter',
+    );
+    $theme['mobile_codes_formatter_mobile_codes_'. $preset->name .'_path'] = array(
       'arguments' => array('element' => NULL),
       'function' => 'theme_mobile_codes_formatter',
     );
@@ -121,7 +125,7 @@ function mobile_codes_load_preset($pid) 
 /**
  * Generate a mobile code
  */
-function mobile_codes_generate($data, $arguments = array()) {
+function mobile_codes_generate($data, &$arguments = array()) {
   $values = mobile_codes_process_arguments($arguments);
   if (($file = mobile_codes_load_mobile_code($data, $arguments)) === FALSE) {
 
@@ -148,7 +152,7 @@ function mobile_codes_generate($data, $a
     mobile_codes_save_mobile_code($data, $arguments, $file);
   }
 
-  return theme('image', $file, $arguments['name'], $arguments['name'], NULL, FALSE);
+  return $file;
 }
 
 /**
@@ -272,5 +276,7 @@ function mobile_codes_directory_check($d
  * Theme function for displaying Mobile Codes
  */
 function theme_mobilecode($data, $arguments = array()) {
-  return mobile_codes_generate($data, $arguments);
+  $file = mobile_codes_generate($data, $arguments);
+
+  return theme('image', $file, $arguments['name'], $arguments['name'], NULL, FALSE);
 }
