neue forms
[mir.git] / source / mir / media / MediaHandlerRealAudio.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 audio.  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 MediaHandlerRealAudio extends MediaHandlerAudio implements MirMedia
27 {
28
29     public boolean set (byte[] uploadedData, Entity ent, Entity mediaTypeEnt ) {
30         String ext = mediaTypeEnt.getValue("name");
31         String dir = MirConfig.getProp("Producer.Media.Path");
32         String rtspDir = MirConfig.getProp("Producer.RealMedia.Path");
33         String mediaHost = MirConfig.getProp("Producer.Media.Host");
34         String rtspMediaHost = MirConfig.getProp("Producer.RealMedia.Host");
35
36         String date = ent.getValue("date");
37         String datePath = StringUtil.webdbDate2path(date);
38         String mediaFname = ent.getId()+"."+ext;
39             String realMediaPointer = rtspMediaHost+datePath+mediaFname;
40             String realMediaFile = ent.getId()+".ram";
41         Integer size = new Integer(uploadedData.length);
42         if(FileUtil.write(dir+"/"+datePath+"/"+mediaFname, uploadedData)) {
43         //if(FileUtil.write(rtspDir+"/"+mediaFname, uploadedData)) {
44             //were done with the data, dereference.
45             uploadedData=null;
46             
47             try {
48                 //write a ram file
49                 FileUtil.write(dir+"/"+datePath+"/"+realMediaFile,realMediaPointer.getBytes());
50                 ent.setValueForProperty("is_produced", "1");
51                 ent.setValueForProperty("icon_is_produced", "1");
52                 ent.setValueForProperty("publish_path",datePath+"/"+realMediaFile);
53                 //ent.setValueForProperty("publish_path", realMediaFile);
54                 ent.setValueForProperty("publish_server", mediaHost);
55                 ent.setValueForProperty("size", size.toString());
56                 ent.update();
57             } catch (StorageObjectException e) {
58                 theLog.printError("StorageObjectException: "+e.toString()); 
59                 return false;
60             }
61         } else {
62             theLog.printError("could not write FILE!"); 
63             return false;
64         }
65
66         return true;
67     }
68
69 }
70         
71         
72