void IExtensionService.Initialize()
{
_prefs = ServiceManager.Get<PreferenceService>();
if (_prefs == null) {
return;
}
Page remoteControlPage = new Page("RemoteControl", "Remote Control", 3);
_prefs.FindOrAdd(remoteControlPage);
Section BansheeRemotePrefs = remoteControlPage.FindOrAdd(
new Section("BansheeRemote", "Banshee Remote", 0));
_portPref = BansheeRemotePrefs.Add(new SchemaPreference<int>(
RemotePortSchema,
Catalog.GetString("Port"),
Catalog.GetString("Banshee will listen for remote control requests on this port")
));
_passIdPref = BansheeRemotePrefs.Add(new SchemaPreference<int>(
RemotePassIdSchema,
Catalog.GetString("Password ID"),
Catalog.GetString("\"Secret\" ID which is required to be specified in incoming requests")
));
_prefs["RemoteControl"]["BansheeRemote"]["remote_control_passid"].ValueChanged += delegate {
_passId = (int) _prefs["RemoteControl"]["BansheeRemote"]["remote_control_passid"].BoxedValue;
};
_prefs["RemoteControl"]["BansheeRemote"]["remote_control_port"].ValueChanged += delegate {
StartRemoteListener();
};
_disposed = false;
ServiceManager.SourceManager.SourceRemoved += OnSourceRemoved;
_passId = (int) _prefs["RemoteControl"]["BansheeRemote"]["remote_control_passid"].BoxedValue;
Helper.SetDbCompressTimeFromFile();
Helper.CompressDatabase();
StartRemoteListener();
}