package com.limegroup.gnutella.settings; import com.limegroup.gnutella.util.MacOSXUtils; import com.limegroup.gnutella.util.CommonUtils; /** * Settings for Digital Audio Access Protocol (DAAP) */ public class DaapSettings extends LimeProps { private DaapSettings() {} /** * Whether or not DAAP should be enabled */ public static BooleanSetting DAAP_ENABLED = FACTORY.createBooleanSetting("DAAP_ENABLED", true); /** * The audio file types supported by DAAP. */ public static StringArraySetting DAAP_SUPPORTED_AUDIO_FILE_TYPES = FACTORY.createStringArraySetting("DAAP_SUPPORTED_AUDIO_FILE_TYPES", new String[]{".mp3", ".m4a", ".wav", ".aif", ".aiff", ".m1a"}); /** * The video file types supported by DAAP. Note: MPEG-2 does not * work (requires commercial codec)! AVI isn't in the list as QT * doesn't support most of the codecs... */ public static StringArraySetting DAAP_SUPPORTED_VIDEO_FILE_TYPES = FACTORY.createStringArraySetting("DAAP_SUPPORTED_VIDEO_FILE_TYPES", new String[]{".mov", ".mp4", ".mpg", ".mpeg"}); /** * The name of the Library. */ public static StringSetting DAAP_LIBRARY_NAME = (StringSetting)FACTORY.createStringSetting("DAAP_LIBRARY_NAME", getPossessiveUserName() + " LimeWire Tunes"). setPrivate(true); /** * The maximum number of simultaneous connections. Note: There * is an audio stream per connection (i.e. there are actually * DAAP_MAX_CONNECTIONS*2) */ public static IntSetting DAAP_MAX_CONNECTIONS = FACTORY.createIntSetting("DAAP_MAX_CONNECTIONS", 5); /** * The port where the DaapServer is running */ public static IntSetting DAAP_PORT = FACTORY.createIntSetting("DAAP_PORT", 5214); /** * The fully qualified service type name <code>_daap._tcp.local.</code>. * You shouldn't change this value as iTunes won't see our DaapServer. */ public static StringSetting DAAP_TYPE_NAME = FACTORY.createStringSetting("DAAP_TYPE_NAME", "_daap._tcp.local."); /** * The name of the Service. I recommend to set this value to the * same as <code>DAAP_LIBRARY_NAME</code>.<p> * Note: when you're dealing with mDNS then is the actual Service * name <code>DAAP_SERVICE_NAME.getValue() + "." + * DAAP_TYPE_NAME.getValue()</code> */ public static StringSetting DAAP_SERVICE_NAME = (StringSetting)FACTORY.createStringSetting("DAAP_SERVICE_NAME", getPossessiveUserName() + " LimeWire Tunes"). setPrivate(true); /** * This isn't important */ public static IntSetting DAAP_WEIGHT = FACTORY.createIntSetting("DAAP_WEIGHT", 0); /** * This isn't important */ public static IntSetting DAAP_PRIORITY = FACTORY.createIntSetting("DAAP_PRIORITY", 0); /** * Whether or not password protection is enabled */ public static BooleanSetting DAAP_REQUIRES_PASSWORD = FACTORY.createBooleanSetting("DAAP_REQUIRES_PASSWORD", false); /** * The DAAP password */ public static PasswordSetting DAAP_PASSWORD = FACTORY.createPasswordSettingMD5("DAAP_PASSWORD", ""); /** * Use either BIO or NIO (default) for DAAP */ public static BooleanSetting DAAP_USE_NIO = FACTORY.createBooleanSetting("DAAP_USE_NIO", true); /** * With default JVM settings we start to run out of memory * if the Library becomes greater than 16000 Songs (OSX 10.3, * JVM 1.4.2_04, G5 with 2.5GB of RAM). Therefore I'm limiting * the max size to 10000 Songs. */ public static IntSetting DAAP_MAX_LIBRARY_SIZE = FACTORY.createIntSetting("DAAP_MAX_LIBRARY_SIZE", 10000); /** * The number of revisions the Library should keep in the history * (necessary for slowly updating clients and iTunes is quite * slow in that respect). */ public static IntSetting DAAP_LIBRARY_REVISIONS = FACTORY.createIntSetting("DAAP_LIBRARY_REVISIONS", 100); /** * If <tt>true</tt> (default) then Library earses entries * from the eldest to the latest entry automatically from * the revision history table. <b>IT IS A VERY BAD IDEA * TO DISABLE THIS CUZ YOU WOULD WASTE MEMORY!!!</b> */ public static BooleanSetting DAAP_LIBRARY_GC = FACTORY.createBooleanSetting("DAAP_LIBRARY_GC", true); /** * Gets the user's name, in possessive format. */ private static String getPossessiveUserName() { String name = System.getProperty("user.name", "Unknown"); if(CommonUtils.isCocoaFoundationAvailable()) { String n = MacOSXUtils.getUserName(); if(n != null) name = n; } if(!name.endsWith("s")) name += "'s"; else name += "'"; return name; } }