first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / mircoders / media / MediaHandlerRealAudio.java
1 /*
2  * put your module comment here
3  */
4
5
6 package  mircoders.media;
7
8 import java.util.*;
9
10 import mir.media.*;
11 import mir.entity.*;
12 import mir.misc.*;
13 import mir.storage.*;
14
15
16
17 /**
18  * Handles real audio.  like MediaHandlerAudio, except it manages the ram file, too.  
19  *
20  * @see mir.media.MediaHandlerGeneric
21  * @see mir.media.MirMedia
22  * @author john <john@manifestor.org>
23  * @version 11.10.2001
24  */
25
26
27 public class MediaHandlerRealAudio extends MediaHandlerAudio implements MirMedia
28 {
29
30     public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt )
31         throws MirMediaException {
32         String ext = mediaTypeEnt.getValue("name");
33         String dir = MirConfig.getProp("Producer.Media.Path");
34         String rtspDir = MirConfig.getProp("Producer.RealMedia.Path");
35         String mediaHost = MirConfig.getProp("Producer.Media.Host");
36         String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host");
37
38         String date = ent.getValue("date");
39         String datePath = StringUtil.webdbDate2path(date);
40         String mediaFname = ent.getId()+"."+ext;
41             String realMediaPointer = rtspMediaHost+datePath+mediaFname;
42             String realMediaFile = ent.getId()+".ram";
43         Integer size = new Integer(uploadedData.length);
44         try {
45             FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData);
46             //FileUtil.write(rtspDir+"/"+mediaFname, uploadedData);
47             //were done with the data, dereference.
48             uploadedData=null;
49             
50             //write a ram file
51             FileUtil.write(dir+"/"+datePath+"/"+realMediaFile,realMediaPointer.getBytes());
52             ent.setValueForProperty("is_produced", "1");
53             ent.setValueForProperty("icon_is_produced", "1");
54             ent.setValueForProperty("publish_path",datePath+"/"+realMediaFile);
55             //ent.setValueForProperty("publish_path", realMediaFile);
56             ent.setValueForProperty("publish_server", mediaHost);
57             ent.setValueForProperty("size", size.toString());
58             ent.update();
59         } catch (Exception e) {
60             theLog.printError(e.toString()); 
61             throw new MirMediaException(e.toString());
62         }
63
64         return true;
65     }
66
67 }
68         
69         
70