1 9 10 package org.mmbase.applications.media; 11 12 import org.mmbase.util.logging.Logger; 13 import org.mmbase.util.logging.Logging; 14 import java.util.*; 15 17 24 public final class Codec { private static Logger log = Logging.getLoggerInstance(Codec.class); 27 28 public final static String RESOURCE = "org.mmbase.applications.media.resources.codecs"; 29 31 private static List codecs = new ArrayList(); private int number; private String id; 37 38 private Codec(int n, String i) { number = n; id = i; 40 if (n >= 0) { 41 while (codecs.size() <= number) codecs.add(null); 42 codecs.set(number, this); 43 } 44 } 45 46 47 public final static Codec UNKNOWN = new Codec(0, "unknown"); 49 public final static Codec VORBIS = new Codec(1, "vorbis"); 50 public final static Codec G2 = new Codec(2, "gd"); 51 public final static Codec DIV3 = new Codec(3, "div3"); 52 public final static Codec DIV4 = new Codec(4, "div4"); 53 public final static Codec DIVX = new Codec(5, "divx"); 54 public final static Codec MP1 = new Codec(6, "mp1"); 55 public final static Codec MP2 = new Codec(7, "mp2"); 56 public final static Codec MP3 = new Codec(8, "mp3"); 57 public final static Codec MP4 = new Codec(9, "mp4"); 58 59 64 65 public int toInt() { return number; } 66 public String toString() { return id; } 67 public static Codec get(int i) { 68 if (i < 0) return UNKNOWN; 69 try { 70 return (Codec) codecs.get(i); 71 } catch (java.lang.IndexOutOfBoundsException e) { 72 return UNKNOWN; 73 } 74 } 75 76 public static Codec get(String id) { 77 id = id.toLowerCase(); 78 Iterator i = codecs.iterator(); 79 while (i.hasNext()) { 80 Codec codec = (Codec) i.next(); 81 if(codec.toString().equals(id)) return codec; 82 } 83 log.error("Cannot convert codec (" + id + ") to number"); 84 return UNKNOWN; 85 } 86 87 public String getGUIIndicator(Locale locale) { 88 try { 89 ResourceBundle m = ResourceBundle.getBundle(RESOURCE, locale); 90 return m.getString("" + number); 91 } catch (Exception e) { 93 return "UNKNOWN"; 94 } 95 } 96 public boolean equals(Object o) { 97 if (o instanceof Codec) { 98 Codec c = (Codec) o; 99 return c.number == number; 100 } 101 return false; 102 } 103 104 105 108 public int hashCode() { 109 return number; 110 } 111 } 112 113 | Popular Tags |