f47e99639db714c003bd6b40ba3f598b15cabc39
[mir.git] / source / mir / media / MediaHandlerRealVideo.java
1 /*
2  * put your module comment here
3  */
4
5
6 package  mir.media;
7
8 import java.util.*;
9
10 import mir.entity.*;
11 import mir.misc.*;
12 import mir.storage.*;
13
14
15
16 /**
17  * Handles real video.  like MediaHandlerAudio, except it manages the ram file, too.  
18  *
19  * @see mir.media.MediaHandlerGeneric
20  * @see mir.media.MirMedia
21  * @author john <john@manifestor.org>
22  * @version 11.10.2001
23  */
24
25
26 public class MediaHandlerRealVideo extends MediaHandlerGeneric implements MirMedia
27 {
28
29     private String imageHost = MirConfig.getProp("Producer.Image.Host");
30     private static String imageRoot = MirConfig.getProp("Producer.ImageRoot");
31     private Logfile theLog = Logfile.getInstance(MirConfig.getProp("Home")+"log/media.log");
32
33     public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt )
34         throws MirMediaException {
35
36         String ext = mediaTypeEnt.getValue("name");
37         String dir = MirConfig.getProp("Producer.Media.Path");
38         String rtspDir = MirConfig.getProp("Producer.RealMedia.Path");
39         String mediaHost = MirConfig.getProp("Producer.Media.Host");
40         String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host");
41
42         String mediaFname = ent.getId()+"."+ext;
43         String RealMediaPointer = rtspMediaHost+mediaFname;
44         String RealMediaFile = ent.getId()+".ram";
45         String date = ent.getValue("date");
46         String datePath = StringUtil.webdbDate2path(date);
47         Integer size = new Integer(uploadedData.length);
48         try {
49             FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData);
50             //FileUtil.write(rtspDir+"/"+mediaFname, uploadedData);
51             //were done with the data, dereference.
52             uploadedData=null;
53                 
54             //write an rm file
55             FileUtil.write(dir+"/"+RealMediaFile,RealMediaPointer.getBytes());
56             ent.setValueForProperty("is_produced", "1");
57             ent.setValueForProperty("icon_is_produced", "1");
58             ent.setValueForProperty("publish_path",datePath+"/"+mediaFname);
59             //ent.setValueForProperty("publish_path", RealMediaFile);
60             ent.setValueForProperty("publish_server", mediaHost);
61             ent.setValueForProperty("size", size.toString());
62             ent.update();
63         } catch (Exception e) {
64             theLog.printError(e.toString());
65             throw new MirMediaException(e.toString());
66         }
67
68         return true;
69     }
70
71
72
73
74
75     public String getPublishHost()
76     {
77         return MirConfig.getProp("Producer.Media.Host");
78     }
79
80
81
82     public String getURL(Entity ent, Entity mediaTypeEnt)
83     {
84       int size = Integer.parseInt(ent.getValue("size"), 10)/1024;
85       String title = ent.getValue("title")+
86         " - "+mediaTypeEnt.getValue("name")+" "+
87         size+" KB";
88       return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+
89         ent.getValue("publish_path"), title, imageRoot, getBigIcon());
90     }
91
92    
93     private static String tinyIcon = MirConfig.getProp("Producer.Icon.TinyVideo");
94     private static String bigIcon = MirConfig.getProp("Producer.Icon.BigVideo");
95
96     public String getTinyIcon()
97     {
98         return tinyIcon;
99     }
100
101     public String getBigIcon()
102     {
103         return bigIcon;
104     }
105
106     public String getIconAlt()
107     {
108         return "Video";
109     }
110
111     public boolean isVideo()
112     {
113         return true;
114     }
115
116 }
117         
118         
119