public FrmHubList(LiveClient client, DcProvider dcProvider) { Icon = Resources.livedc; _client = client; _dcProvider = dcProvider; InitializeComponent(); }
public DcStartItem(Magnet magnet, DcProvider provider) { Progress = float.PositiveInfinity; Magnet = magnet; _provider = provider; var existingItem = _provider.Engine.Share.SearchByTth(magnet.TTH); if (existingItem != null) { Closed = true; ShellHelper.Start(existingItem.Value.SystemPath); return; } if (_provider.HubManager.InitializationCompleted && !_provider.Engine.Active) { MessageBox.Show("Не удалось установить соединение ни с одним из хабов. Проверьте сетевое подключение.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); Closed = true; return; } var item = _provider.Engine.DownloadManager.GetDownloadItem(magnet.TTH); if (_currentDownload != null && _currentDownload != item) { _provider.Engine.PauseDownload(_currentDownload); } if (item != null) { if (item.Priority == DownloadPriority.Pause) { item.Priority = DownloadPriority.Normal; } _currentDownload = item; Closed = true; ShellHelper.Start(Path.Combine(_provider.LiveClient.Drive.DriveRoot, _currentDownload.Magnet.FileName)); return; } var cacheRoot = _provider.LiveClient.ReserveCacheSpace(magnet.Size); if (cacheRoot == null) { MessageBox.Show("Недостаточно свободного места на диске.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); Closed = true; return; } _provider.LiveClient.History.AddItem(magnet); _currentDownload = _provider.Engine.DownloadFile(magnet, Path.Combine(cacheRoot, magnet.FileName)); _currentDownload.LogSegmentEvents = true; new ThreadStart(FormThread).BeginInvoke(null, null); }
public DcHubManager(DcProvider provider, LiveClient client) { _provider = provider; _client = client; _provider.Engine.Hubs.HubAdded += HubsHubAdded; _provider.Engine.Hubs.HubRemoved += HubsHubRemoved; _provider.Engine.ActiveStatusChanged += EngineActiveStatusChanged; if (!string.IsNullOrEmpty(Settings.Hubs)) { var hubs = Settings.Hubs.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries); foreach (var hubAddress in hubs.Take(5)) { _allHubs.Add(hubAddress); AddHub(hubAddress); } } }
public FrmSearch(LiveClient client, DcProvider dcProvider) { _client = client; _dcProvider = dcProvider; InitializeComponent(); _comparer = new SourceComparer(); SourcesColumn.HeaderCell.SortGlyphDirection = SortOrder.Descending; NativeImageList.LargeExtensionImageLoaded += NativeImageListLargeExtensionImageLoaded; _dcProvider.Engine.SearchManager.SearchStarted += SearchManagerSearchStarted; _dcProvider.Engine.SearchManager.SearchResult += SearchManagerSearchResult; if (!SearchProvidersLoaded) { LoadSearchProviders(Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Plugins")); } IntPtr h = tabControl1.Handle; foreach (var webSearchProvider in _providers) { var tab = new TabPage(webSearchProvider.TabTitle); var flowPanel = new FlowLayoutPanel(); tab.Controls.Add(flowPanel); flowPanel.Dock = DockStyle.Fill; flowPanel.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0); flowPanel.BackColor = SystemColors.Window; flowPanel.AutoScroll = true; tab.Tag = webSearchProvider; tabControl1.TabPages.Insert(0, tab); } tabControl1.SelectTab(0); Disposed += FrmSearch_Disposed; }
public LiveClient() { AppDomain.CurrentDomain.UnhandledException += CurrentDomainUnhandledException; Application.ApplicationExit += ApplicationApplicationExit; InitializeComponent(); Settings = new Settings(); if (File.Exists(Settings.SettingsFilePath)) { Settings.Load(); } LogManager.LogManagerInstance = new NLogManager(); MonoTorrent.LogManager.LogManagerInstance = new TorrentNLogManager(); logger.Info("------------------------------starting LiveDC {0}", Assembly.GetExecutingAssembly().GetName().Version); _copyData = new CopyData(); _copyData.CreateHandle(new CreateParams()); _copyData.Channels.Add("LIVEDC"); _copyData.DataReceived += CopyDataDataReceived; _ao = AsyncOperationManager.CreateOperation(null); Utils.FileSizeFormatProvider.BinaryModifiers = new[] { " Б", " КБ", " МБ", " ГБ", " ТБ", " ПБ" }; _providers.Add(_dcProvider = new DcProvider(Settings, this)); _providers.Add(new TorrentProvider(this)); _fsProviders.Add(_httpProvider = new HttpProvider(this)); InitializeEngine(); History = new LiveHistoryManager(); History.Load(); AutoUpdate = new AutoUpdateManager(this); AutoUpdate.CheckUpdate(); if (!Settings.ShownGreetingsTooltip) { _icon.ShowBalloonTip(10000, "LiveDC", "Добро пожаловать! Нажмите здесь, чтобы увидеть текущий статус работы.", ToolTipIcon.Info); OpenStartPage(); Settings.ShownGreetingsTooltip = true; Settings.Save(); } else if (!Program.SilentMode) { OpenStartPage(); _icon.ShowBalloonTip(10000, "LiveDC", "Клиент запущен.", ToolTipIcon.Info); } if (!string.IsNullOrEmpty(Program.StartMagnet)) { StartFile(Magnet.Parse(Program.StartMagnet)); } SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; }