these two handlers take care of setting the correct icons, and storing the data in...
authorjohn <john>
Wed, 17 Oct 2001 19:10:32 +0000 (19:10 +0000)
committerjohn <john>
Wed, 17 Oct 2001 19:10:32 +0000 (19:10 +0000)
source/mir/media/MediaHandlerRealAudio.java [new file with mode: 0755]
source/mir/media/MediaHandlerRealVideo.java [new file with mode: 0755]

diff --git a/source/mir/media/MediaHandlerRealAudio.java b/source/mir/media/MediaHandlerRealAudio.java
new file mode 100755 (executable)
index 0000000..b818b34
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * put your module comment here
+ */
+
+
+package  mir.media;
+
+import java.util.*;
+
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+
+
+
+/**
+ * Handles real audio.  like MediaHandlerAudio, except it manages the ram file, too.  
+ *
+ * @see mir.media.MediaHandlerGeneric
+ * @see mir.media.MirMedia
+ * @author john <john@manifestor.org>
+ * @version 11.10.2001
+ */
+
+
+public class MediaHandlerRealAudio extends MediaHandlerGeneric implements MirMedia
+{
+
+    private String imageHost = MirConfig.getProp("Producer.Image.Host");
+    private static String imageRoot = MirConfig.getProp("Producer.ImageRoot");
+    private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log");
+    public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) {
+        String ext = mediaTypeEnt.getValue("name");
+        String dir = MirConfig.getProp("Producer.Media.Path");
+        String rtspDir = MirConfig.getProp("Producer.RealMedia.Path");
+        String mediaHost = MirConfig.getProp("Producer.Media.Host");
+        String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host");
+
+        String mediaFname = ent.getId()+"."+ext;
+       String RealMediaPointer = rtspMediaHost+mediaFname;
+       String RealMediaFile = ent.getId()+".ram";
+        String date = ent.getValue("date");
+        String datePath = StringUtil.webdbDate2path(date);
+        Integer size = new Integer(uploadedData.length);
+        //hack: make it a config option to use "dated" dirs
+        //we can't cause of stallman -mh
+        //if(FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData)) {
+        if(FileUtil.write(rtspDir+"/"+mediaFname, uploadedData)) {
+            //were done with the data, dereference.
+            uploadedData=null;
+            
+            try {
+//write an ram file
+FileUtil.write(dir+"/"+RealMediaFile,RealMediaPointer.getBytes());
+
+                ent.setValueForProperty("is_produced", "1");
+                ent.setValueForProperty("icon_is_produced", "1");
+                //hack: make it a config option to use "dated" dirs
+                //we can't cause of stallman -mh
+                //ent.setValueForProperty("publish_path",datePath+"/"+mediaFname);
+                ent.setValueForProperty("publish_path", RealMediaFile);
+                ent.setValueForProperty("publish_server", mediaHost);
+                ent.setValueForProperty("size", size.toString());
+                ent.update();
+            } catch (StorageObjectException e) {
+                theLog.printError("StorageObjectException: "+e.toString()); 
+                return false;
+            }
+        } else {
+            theLog.printError("could not write FILE!"); 
+            return false;
+        }
+
+        return true;
+    }
+
+
+
+
+
+    public String getPublishHost()
+    {
+        return MirConfig.getProp("Producer.Media.Host");
+    }
+
+
+
+    public String getURL(Entity ent, Entity mediaTypeEnt)
+    {
+      int size = Integer.parseInt(ent.getValue("size"), 10)/1024;
+      String title = ent.getValue("title")+
+        " - "+mediaTypeEnt.getValue("name")+" "+
+        size+" KB";
+      return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+
+        ent.getValue("publish_path"), title, imageRoot, getBigIcon());
+    }
+
+   
+    private static String tinyIcon = MirConfig.getProp("Producer.Icon.TinyAudio");
+    private static String bigIcon = MirConfig.getProp("Producer.Icon.BigAudio");
+
+  public String getTinyIcon()
+  {
+    return tinyIcon;
+  }
+
+  public String getBigIcon()
+  {
+    return bigIcon;
+  }
+
+  public String getIconAlt()
+  {
+    return "Audio";
+  }
+
+  public boolean isAudio()
+  {
+    return true;
+  }
+
+}
+        
+        
+
diff --git a/source/mir/media/MediaHandlerRealVideo.java b/source/mir/media/MediaHandlerRealVideo.java
new file mode 100755 (executable)
index 0000000..bd9363e
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * put your module comment here
+ */
+
+
+package  mir.media;
+
+import java.util.*;
+
+import mir.entity.*;
+import mir.misc.*;
+import mir.storage.*;
+
+
+
+/**
+ * Handles real video.  like MediaHandlerAudio, except it manages the ram file, too.  
+ *
+ * @see mir.media.MediaHandlerGeneric
+ * @see mir.media.MirMedia
+ * @author john <john@manifestor.org>
+ * @version 11.10.2001
+ */
+
+
+public class MediaHandlerRealVideo extends MediaHandlerGeneric implements MirMedia
+{
+
+    private String imageHost = MirConfig.getProp("Producer.Image.Host");
+    private static String imageRoot = MirConfig.getProp("Producer.ImageRoot");
+    private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log");
+    public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) {
+        String ext = mediaTypeEnt.getValue("name");
+        String dir = MirConfig.getProp("Producer.Media.Path");
+        String rtspDir = MirConfig.getProp("Producer.RealMedia.Path");
+        String mediaHost = MirConfig.getProp("Producer.Media.Host");
+        String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host");
+
+        String mediaFname = ent.getId()+"."+ext;
+       String RealMediaPointer = rtspMediaHost+mediaFname;
+       String RealMediaFile = ent.getId()+".ram";
+        String date = ent.getValue("date");
+        String datePath = StringUtil.webdbDate2path(date);
+        Integer size = new Integer(uploadedData.length);
+        //hack: make it a config option to use "dated" dirs
+        //we can't cause of stallman -mh
+        //if(FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData)) {
+        if(FileUtil.write(rtspDir+"/"+mediaFname, uploadedData)) {
+            //were done with the data, dereference.
+            uploadedData=null;
+            
+            try {
+//write an rm file
+FileUtil.write(dir+"/"+RealMediaFile,RealMediaPointer.getBytes());
+
+                ent.setValueForProperty("is_produced", "1");
+                ent.setValueForProperty("icon_is_produced", "1");
+                //hack: make it a config option to use "dated" dirs
+                //we can't cause of stallman -mh
+                //ent.setValueForProperty("publish_path",datePath+"/"+mediaFname);
+                ent.setValueForProperty("publish_path", RealMediaFile);
+                ent.setValueForProperty("publish_server", mediaHost);
+                ent.setValueForProperty("size", size.toString());
+                ent.update();
+            } catch (StorageObjectException e) {
+                theLog.printError("StorageObjectException: "+e.toString()); 
+                return false;
+            }
+        } else {
+            theLog.printError("could not write FILE!"); 
+            return false;
+        }
+
+        return true;
+    }
+
+
+
+
+
+    public String getPublishHost()
+    {
+        return MirConfig.getProp("Producer.Media.Host");
+    }
+
+
+
+    public String getURL(Entity ent, Entity mediaTypeEnt)
+    {
+      int size = Integer.parseInt(ent.getValue("size"), 10)/1024;
+      String title = ent.getValue("title")+
+        " - "+mediaTypeEnt.getValue("name")+" "+
+        size+" KB";
+      return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+
+        ent.getValue("publish_path"), title, imageRoot, getBigIcon());
+    }
+
+   
+    private static String tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
+    private static String bigIcon = MirConfig.getProp("Producer.Icon.BigVideo");
+
+  public String getTinyIcon()
+  {
+    return tinyIcon;
+  }
+
+  public String getBigIcon()
+  {
+    return bigIcon;
+  }
+
+  public String getIconAlt()
+  {
+    return "Video";
+  }
+
+  public boolean isVideo()
+  {
+    return true;
+  }
+
+}
+        
+        
+