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;
}
}