bool CTorrent::MakeTorrent(uint64 uPieceLength, bool bMerkle, const QString& Name, bool bPrivate) { CFile* pFile = GetFile(); if(!pFile->IsComplete()) { LogLine(LOG_DEBUG | LOG_ERROR, tr("A torrent can not be made form an Incompelte file %1").arg(pFile->GetFileName())); return false; } if(uPieceLength < KB2B(16)) //if(!uPieceLength) { uPieceLength = pFile->GetFileSize() / (KB2B(40) / 20); // target hast set size 40 KB uint64 i = KB2B(16); for (; i < MB2B(32); i *= 2) { if (i >= uPieceLength) break; } uPieceLength = i; } m_TorrentInfo = new CTorrentInfo(this); m_TorrentInfo->SetTorrentName(Name.isEmpty() ? pFile->GetFileName() : Name); m_TorrentInfo->SetTotalLength(pFile->GetFileSize()); if(bPrivate) m_TorrentInfo->SetPrivate(); m_TorrentInfo->SetProperty("CreationTime", QDateTime::currentDateTime()); ASSERT(m_pHash.isNull()); if(bMerkle) m_pHash = CFileHashPtr(new CFileHashTree(HashTorrent, m_TorrentInfo->GetTotalLength(), uPieceLength)); else m_pHash = CFileHashPtr(new CFileHashSet(HashTorrent, m_TorrentInfo->GetTotalLength(), uPieceLength)); return true; }
void waveform_update(const chunk_pt chunk){ //const float alpha = 0.98; float vall = 0.; float vhigh = 0.; float vmid = 0.; float vlow = 0.; static float slow = 0.; static float shigh = 0.; static float qlow = 0.; static float qmid = 0.; static float qhigh = 0.; #define MAX(a, b) ((a > b) ? a : b) #define MIN(a, b) ((a < b) ? a : b) #define LB1 0.03 #define LB2 0.0 //#define LA2 0.9914878835315175 // exp(-pi * f_1 / F_n); F_n = 22050Hz; f_1 = 60Hz //#define LA2 0.9719069870254697 // exp(-pi * f_1 / F_n); F_n = 22050Hz; f_1 = 200Hz #define LA2 0.98 #define L2A2 0.98 // DC-blocking 1-pole lpf #define LN ((1. - LA2) / (LB1 + LB2)) #define HB1 1.0 #define HB2 -1.0 //#define HA2 0.6521846367685737 // exp(-pi * f_1 / F_n); F_n = 22050Hz; f_1 = 3000Hz #define HA2 0.65 // exp(-pi * f_1 / F_n); F_n = 22050Hz; f_1 = 3000Hz #define HN ((1. + LA2) / 2.) * 4 #define H2A2 0.7 // DC-blocking 1-pole lpf #define LC1 0.9 #define MC1 0.8 #define HC1 0.7 for(int i = 0; i < config.audio.chunk_size; i++){ vall = MAX(vall, fabs(chunk[i])); //slow = slow * alpha + chunk[i] * (1 - alpha); //vlow = MAX(vlow, fabs(slow)); //vlow = MAX(vlow, fabs( (chunk[i] - slow * LA2) * LB1 + slow * LB2) * LN); //slow = chunk[i] - slow * LA2; slow = LA2 * slow + (1. - LA2) * chunk[i]; //vlow = MAX(vlow, fabs(slow)); vlow = L2A2 * vlow + (1.0 - L2A2) * fabs(slow); //shigh = - shigh * alpha + chunk[i] * (1 - alpha); //vhigh = MAX(vhigh, fabs(shigh)); //vhigh = MAX(vhigh, fabs( (chunk[i] - shigh * HA2) * HB1 + shigh * HB2) * HN); vhigh = H2A2 * vhigh + (1.0 - H2A2) * fabs(((chunk[i] - shigh * HA2) * HB1 + shigh * HB2) * HN); shigh = chunk[i] - shigh * HA2; } vhigh *= 1.5; vlow *= 2.0; vhigh = MIN(vhigh, vall); vlow = MIN(vlow, vall); vmid = MAX(0., vall - vlow - vhigh); waveform_bin_update(&waveform_bins[WF_LOW], (vlow + vmid + vhigh)); waveform_bin_update(&waveform_bins[WF_MID], (vhigh + vmid)); waveform_bin_update(&waveform_bins[WF_HIGH], (vhigh)); waveform_bin_update(&beat_bin, MB2B(timebase_get() % 1000)); qlow = LC1 * qlow + (1. - LC1) * vlow; qmid = MC1 * qmid + (1. - MC1) * vmid; qhigh = HC1 * qhigh + (1. - HC1) * vhigh; param_output_set(&waveform_bins[WF_LOW].output, MIN(qlow * 2., 1.)); param_output_set(&waveform_bins[WF_MID].output, MIN(qmid * 2., 1.)); param_output_set(&waveform_bins[WF_HIGH].output, MIN(qhigh * 2., 1.)); memmove(beat_lines + 1, beat_lines, (WAVEFORM_HISTORY_SIZE - 1) * sizeof(char)); beat_lines[0] = 0; }
QMap<QString, CSettings::SSetting> CNeoCore::GetDefaultCoreSettings() { QMap<QString, CSettings::SSetting> Settings; // For values with limits is Default, Minimum, Maximum Settings.insert("Log/Merge", CSettings::SSetting(true)); Settings.insert("Log/Store", CSettings::SSetting(false)); Settings.insert("Log/Limit", CSettings::SSetting(10000,1000,100000)); Settings.insert("Log/Level", CSettings::SSetting(1)); // 0 basic, 1 normal, 2 verbose #ifdef _DEBUG Settings.insert("Modules/AutoStart",CSettings::SSetting(0)); #else Settings.insert("Modules/AutoStart",CSettings::SSetting(1)); #endif Settings.insert("Modules/NeoKad",CSettings::SSetting("NeoKad")); Settings.insert("Modules/MuleKad",CSettings::SSetting("MuleKad")); Settings.insert("Content/SaveInterval", CSettings::SSetting(MIN2S(5))); Settings.insert("Content/Temp", CSettings::SSetting("")); Settings.insert("Content/Incoming", CSettings::SSetting("")); Settings.insert("Content/UnifyedDirs", CSettings::SSetting(0)); Settings.insert("Content/Shared", CSettings::SSetting(QStringList(""))); Settings.insert("Content/VerifyTime", CSettings::SSetting(30)); Settings.insert("Content/VerifySize", CSettings::SSetting(MB2B(5))); Settings.insert("Content/CacheLimit", CSettings::SSetting(MB2B(256), MB2B(128), MB2B(1024))); Settings.insert("Content/AddPaused", CSettings::SSetting(false)); Settings.insert("Content/ShareNew", CSettings::SSetting(true)); //Settings.insert("Content/ShowTemp", CSettings::SSetting(false)); Settings.insert("Content/MagnetDomain", CSettings::SSetting("http://link.neoloader.to/")); Settings.insert("Content/MagnetRetry", CSettings::SSetting(MIN2S(10))); #ifdef DECODER Settings.insert("Content/MagnetTimeLimit", CSettings::SSetting(MIN2S(60))); Settings.insert("Content/MagnetVolumeLimit", CSettings::SSetting(15)); Settings.insert("Content/MagnetAllowDisplay", true); #endif Settings.insert("Content/EndGameVolume", CSettings::SSetting(5,0,10)); //Settings.insert("Content/AlwaysEndGame", CSettings::SSetting(true)); Settings.insert("Content/FuseMount", CSettings::SSetting("")); #ifndef WIN32 Settings.insert("Content/FuseOptions", CSettings::SSetting("-o|allow_other")); #endif Settings.insert("Content/IgnoreLastModified", CSettings::SSetting(0)); Settings.insert("Content/ShareRatio", CSettings::SSetting(0)); // 0 means no ratio Settings.insert("Content/ShareTime", CSettings::SSetting(0)); // 0 means no limit Settings.insert("Content/AutoP2P", CSettings::SSetting(false)); Settings.insert("Content/PreparePreview", CSettings::SSetting(false)); Settings.insert("Content/Streamable", CSettings::SSetting("(mp4|m4v|divx|avi|mkv|mov|wmv|asf|mped|mpg|flv)")); Settings.insert("Content/FrontLoadSize", CSettings::SSetting(MB2B(8))); Settings.insert("Content/BackLoadSize", CSettings::SSetting(MB2B(2))); Settings.insert("Content/Preallocation", CSettings::SSetting(MB2B(100))); Settings.insert("Content/CalculateHashes", CSettings::SSetting(true)); Settings.insert("Content/SaveSearch", CSettings::SSetting(true)); #ifdef _DEBUG Settings.insert("Other/PreventStandby", CSettings::SSetting(false)); #else Settings.insert("Other/PreventStandby", CSettings::SSetting(true)); #endif Settings.insert("Bandwidth/Upload", CSettings::SSetting(-1)); Settings.insert("Bandwidth/Download", CSettings::SSetting(-1)); #ifdef _DEBUG Settings.insert("Bandwidth/UseUPnP",CSettings::SSetting(false)); #else Settings.insert("Bandwidth/UseUPnP",CSettings::SSetting(true)); #endif Settings.insert("Bandwidth/UseIPv6",CSettings::SSetting(false)); Settings.insert("Bandwidth/DefaultNIC",CSettings::SSetting("")); Settings.insert("Bandwidth/WebProxy", CSettings::SSetting("")); Settings.insert("Bandwidth/MaxConnections", CSettings::SSetting(2500)); Settings.insert("Bandwidth/MaxNewPer5Sec", CSettings::SSetting(250)); Settings.insert("Bandwidth/TransportLimiting", CSettings::SSetting(true)); Settings.insert("Bandwidth/FrameOverhead", CSettings::SSetting(18)); Settings.insert("Upload/HistoryDepth", CSettings::SSetting(10,50,100)); Settings.insert("Upload/UpWaitTime", CSettings::SSetting(HR2S(3),HR2S(1),HR2S(5))); Settings.insert("Upload/SlotSpeed", CSettings::SSetting(KB2B(8))); //Settings.insert("Upload/SlotFocus", CSettings::SSetting(false)); Settings.insert("Upload/TrickleVolume", CSettings::SSetting(2)); Settings.insert("Upload/TrickleSpeed", CSettings::SSetting(KB2B(1))); Settings.insert("Upload/DropBlocking", CSettings::SSetting(false)); Settings.insert("Pinger/MinSpeed", CSettings::SSetting(KB2B(10))); // 10 kb/s Settings.insert("Pinger/MaxSpeed", CSettings::SSetting(-1)); Settings.insert("Pinger/HostsToTrace", CSettings::SSetting(10)); Settings.insert("Pinger/MaxFails", CSettings::SSetting(60)); Settings.insert("Pinger/InitialPings", CSettings::SSetting(10)); Settings.insert("Pinger/ToleranceVal", CSettings::SSetting("")); Settings.insert("Pinger/UpDivider", CSettings::SSetting(10)); Settings.insert("Pinger/DownDivider", CSettings::SSetting(10)); Settings.insert("Pinger/Average", CSettings::SSetting(3)); Settings.insert("Pinger/Host", CSettings::SSetting("")); Settings.insert("PeerWatch/Enable",CSettings::SSetting(2)); Settings.insert("PeerWatch/BlockTime", CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(60))); Settings.insert("PeerWatch/BanTime", CSettings::SSetting(HR2S(2),HR2S(1),HR2S(6))); //Settings.insert("PeerWatch/IPFilter",CSettings::SSetting("")); Settings.insert("NeoShare/IdleTimeout",CSettings::SSetting(MIN2S(2),MIN2S(1),MIN2S(5))); Settings.insert("NeoShare/KeepAlive",CSettings::SSetting(60,30,MIN2S(3))); Settings.insert("NeoShare/ConnectTimeout",CSettings::SSetting(20,10,120)); Settings.insert("NeoShare/RouteTimeout", CSettings::SSetting(MIN2S(5),MIN2S(1),MIN2S(15))); Settings.insert("NeoShare/MaxEntities", CSettings::SSetting(250)); Settings.insert("NeoShare/RequestInterval",CSettings::SSetting(MIN2S(20),MIN2S(10),MIN2S(60))); Settings.insert("NeoShare/RequestLimit",CSettings::SSetting(100,10,250)); Settings.insert("NeoShare/SaveInterval", CSettings::SSetting(MIN2S(5))); Settings.insert("NeoShare/SaveEntities",CSettings::SSetting(false)); Settings.insert("NeoShare/KadPublishmentVolume",CSettings::SSetting(10,5,100)); Settings.insert("NeoShare/KadLookupVolume",CSettings::SSetting(20,5,100)); Settings.insert("NeoShare/KadLookupInterval",CSettings::SSetting(MIN2S(20),MIN2S(10),MIN2S(60))); Settings.insert("NeoShare/HubCheckoutInterval",CSettings::SSetting(MIN2S(40),MIN2S(20),MIN2S(120))); Settings.insert("NeoShare/LoadTreshold", CSettings::SSetting(75,50,100)); Settings.insert("NeoShare/SaturationLimit", CSettings::SSetting(10,5,20)); Settings.insert("NeoShare/Enable", CSettings::SSetting(true)); Settings.insert("NeoShare/Anonymity", CSettings::SSetting(0, 0, 4)); Settings.insert("NeoShare/Upload", CSettings::SSetting(-1)); Settings.insert("NeoShare/Download", CSettings::SSetting(-1)); Settings.insert("NeoShare/Priority", CSettings::SSetting(0)); Settings.insert("NeoKad/Port", CSettings::SSetting(GetRandomInt(9000, 9999))); Settings.insert("NeoKad/TargetID", CSettings::SSetting("")); Settings.insert("NeoKad/LastDistance", CSettings::SSetting(0)); Settings.insert("NeoKad/EntityKey", CSettings::SSetting("")); Settings.insert("NeoKad/StoreKey", CSettings::SSetting("")); Settings.insert("BitTorrent/Tracking", CSettings::SSetting("All-Tiers")); // "No-Trackers" "One-Tracker" "All-Trackers" "All-Tiers" Settings.insert("BitTorrent/MaxPeers", CSettings::SSetting(500, 10, 1000)); Settings.insert("BitTorrent/ServerPort", CSettings::SSetting(GetRandomInt(6800, 6900))); Settings.insert("BitTorrent/AnnounceInterval",CSettings::SSetting(MIN2S(5),MIN2S(1),MIN2S(60))); Settings.insert("BitTorrent/AnnounceWanted",CSettings::SSetting(200,1,1000)); Settings.insert("BitTorrent/ConnectTimeout",CSettings::SSetting(20,10,30)); Settings.insert("BitTorrent/IdleTimeout",CSettings::SSetting(90,15,320)); Settings.insert("BitTorrent/KeepAlive",CSettings::SSetting(30,15,60)); Settings.insert("BitTorrent/RequestTimeout",CSettings::SSetting(60,15,120)); Settings.insert("BitTorrent/RequestLimit",CSettings::SSetting(250,100,250)); //Settings.insert("BitTorrent/RetryInterval",CSettings::SSetting(MIN2S(10),MIN2S(1),MIN2S(58))); Settings.insert("BitTorrent/Encryption", CSettings::SSetting("Support")); Settings.insert("BitTorrent/uTP", CSettings::SSetting(true)); Settings.insert("BitTorrent/MaxRendezvous", CSettings::SSetting(5,3,10)); Settings.insert("BitTorrent/CryptTCPPaddingLength",CSettings::SSetting(127,0,511)); Settings.insert("BitTorrent/EnableTracker",CSettings::SSetting(1)); // 0 off, 1 on, 2 on but only for own torrents Settings.insert("BitTorrent/SavePeers",CSettings::SSetting(false)); Settings.insert("BitTorrent/Enable", CSettings::SSetting(true)); Settings.insert("BitTorrent/MaxTorrents", CSettings::SSetting(5)); Settings.insert("BitTorrent/Upload", CSettings::SSetting(-1)); Settings.insert("BitTorrent/Download", CSettings::SSetting(-1)); Settings.insert("BitTorrent/Priority", CSettings::SSetting(0)); Settings.insert("MainlineDHT/NodeID", CSettings::SSetting("")); Settings.insert("MainlineDHT/Address", CSettings::SSetting("")); Settings.insert("MainlineDHT/RouterNodes", CSettings::SSetting(QString("router.bittorrent.com:6881|router.utorrent.com:6881").split("|"))); Settings.insert("Ed2kMule/UserHash", CSettings::SSetting("")); Settings.insert("Ed2kMule/NickName", CSettings::SSetting("http://neoloader.to")); Settings.insert("Ed2kMule/MaxSources", CSettings::SSetting(500, 50, 5000)); Settings.insert("Ed2kMule/TCPPort", CSettings::SSetting(GetRandomInt(4600, 4700))); Settings.insert("Ed2kMule/UDPPort", CSettings::SSetting(GetRandomInt(4700, 4800))); Settings.insert("Ed2kMule/CheckFWInterval", CSettings::SSetting(MIN2S(15), MIN2S(10), MIN2S(60))); Settings.insert("Ed2kMule/ConnectTimeout",CSettings::SSetting(20,10,30)); Settings.insert("Ed2kMule/IdleTimeout",CSettings::SSetting(60,15,320)); Settings.insert("Ed2kMule/IncomingTimeOut",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(60))); Settings.insert("Ed2kMule/ReaskInterval",CSettings::SSetting(MIN2S(29),MIN2S(10),MIN2S(58))); Settings.insert("Ed2kMule/LanMode", CSettings::SSetting(false)); Settings.insert("Ed2kMule/Obfuscation", CSettings::SSetting("Support")); Settings.insert("Ed2kMule/CryptTCPPaddingLength",CSettings::SSetting(127,0,254)); Settings.insert("Ed2kMule/NatTraversal", CSettings::SSetting(true)); Settings.insert("Ed2kMule/KadLookupInterval",CSettings::SSetting(MIN2S(29),MIN2S(10),MIN2S(58))); Settings.insert("Ed2kMule/KadMaxLookup",CSettings::SSetting(5,5,50)); Settings.insert("Ed2kMule/SXInterval",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(40))); Settings.insert("Ed2kMule/SXVolume",CSettings::SSetting(20,5,50)); Settings.insert("Ed2kMule/SaveSources",CSettings::SSetting(false)); Settings.insert("Ed2kMule/Enable", CSettings::SSetting(true)); Settings.insert("Ed2kMule/ShareDefault", CSettings::SSetting(false)); Settings.insert("Ed2kMule/Upload", CSettings::SSetting(-1)); Settings.insert("Ed2kMule/Download", CSettings::SSetting(-1)); Settings.insert("Ed2kMule/Priority", CSettings::SSetting(0)); Settings.insert("Ed2kMule/HashMode", CSettings::SSetting("Random-Secure")); // Random, Static, Random-Secure, Static-Secure Settings.insert("Ed2kMule/SUIKey", CSettings::SSetting("")); Settings.insert("Ed2kMule/HashAge", CSettings::SSetting("")); Settings.insert("Ed2kMule/UseServers", CSettings::SSetting("Static")); // None, Custom, Static, One, Booth Settings.insert("Ed2kMule/StaticServers", CSettings::SSetting(QString("ed2k://|server|91.200.42.46|1176|/\r\ned2k://|server|91.200.42.47|3883|/\r\ned2k://|server|91.200.42.119|9939|/\r\ned2k://|server|176.103.48.36|4184|/\r\ned2k://|server|77.120.115.66|5041|/\r\ned2k://|server|46.105.126.71|4661|/").split("\r\n"))); Settings.insert("Ed2kMule/KeepServers",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(58))); Settings.insert("Ed2kMule/MinHordeSlots",CSettings::SSetting(1,0,10)); Settings.insert("Hoster/MinWebTasks", CSettings::SSetting(10)); Settings.insert("Hoster/MaxNewPer5Sec", CSettings::SSetting(25)); Settings.insert("Hoster/MaxWebTasks", CSettings::SSetting(100)); Settings.insert("Hoster/AccessFailedTimeOut", CSettings::SSetting(10)); Settings.insert("Hoster/ServerBanTime", CSettings::SSetting(HR2S(2))); Settings.insert("Hoster/ServerBanTreshold", CSettings::SSetting(20)); Settings.insert("Hoster/ServerDownTreshold", CSettings::SSetting(4)); Settings.insert("Hoster/MaxUploads", CSettings::SSetting(1)); Settings.insert("Hoster/MaxDownloads", CSettings::SSetting(5)); Settings.insert("Hoster/MaxChecks", CSettings::SSetting(5)); Settings.insert("Hoster/ReCheckInterval", CSettings::SSetting(HR2S(24),HR2S(1),HR2S(240))); Settings.insert("Hoster/AutoReUpload", CSettings::SSetting(true)); Settings.insert("Hoster/MaxCheckouts", CSettings::SSetting(3)); Settings.insert("Hoster/CheckoutInterval", CSettings::SSetting(MIN2S(60),MIN2S(30),HR2S(6))); Settings.insert("Hoster/MaxTransferRetry", CSettings::SSetting(3)); Settings.insert("Hoster/ServerRetryDelay", CSettings::SSetting(MIN2S(2))); Settings.insert("Hoster/CaptchaRetryDelay", CSettings::SSetting(MIN2S(20))); Settings.insert("Hoster/MaxBadCaptcha", CSettings::SSetting(3)); Settings.insert("Hoster/ManualCaptcha", CSettings::SSetting(1)); Settings.insert("Hoster/AutoCleanUp", CSettings::SSetting(true)); Settings.insert("Hoster/Encap", CSettings::SSetting("7z")); Settings.insert("Hoster/RarPath", CSettings::SSetting("")); Settings.insert("Hoster/RarComment", CSettings::SSetting("")); #ifdef CRAWLER Settings.insert("Hoster/DecapCleanup", CSettings::SSetting("*.url;*.lnk;thumbs.db")); Settings.insert("Hoster/KeepSingleArchives", CSettings::SSetting(false)); #else Settings.insert("Hoster/KeepSingleArchives", CSettings::SSetting(true)); #endif Settings.insert("Hoster/EncryptUploads", CSettings::SSetting("RC4")); Settings.insert("Hoster/ProtectLinks", CSettings::SSetting(true)); Settings.insert("Hoster/Enable", CSettings::SSetting(true)); Settings.insert("Hoster/UseCaptcha", CSettings::SSetting(false)); Settings.insert("Hoster/PartSize", CSettings::SSetting(0)); Settings.insert("Hoster/MaxArcTasks", CSettings::SSetting(5)); Settings.insert("Hoster/Upload", CSettings::SSetting(-1)); Settings.insert("Hoster/Download", CSettings::SSetting(-1)); Settings.insert("Hoster/Priority", CSettings::SSetting(0)); Settings.insert("HosterCache/CacheMode", CSettings::SSetting("Off")); // Off, On, All Settings.insert("HosterCache/SelectionMode", CSettings::SSetting("Auto")); // All, Auto, Selected - hosters Settings.insert("HosterCache/PartSize", CSettings::SSetting(MB2B(100))); Settings.insert("HosterCache/MaxAvail", CSettings::SSetting(3)); Settings.insert("HosterCache/MaxJoints", CSettings::SSetting(1)); Settings.insert("HashInspector/Majority",CSettings::SSetting(90,80,100)); Settings.insert("HashInspector/Quorum",CSettings::SSetting(10,5,20)); Settings.insert("CorruptionLogger/MonitorTime", CSettings::SSetting(HR2S(4),HR2S(2),HR2S(16))); Settings.insert("CorruptionLogger/DropRatio", CSettings::SSetting(40, 10, 100)); //Settings.insert("Script/AutoUpdate", CSettings::SSetting(true)); //Settings.insert("Script/UserName", CSettings::SSetting("")); //Settings.insert("Script/Password", CSettings::SSetting("")); Settings.insert("Browser/MaxRetries", CSettings::SSetting(3)); Settings.insert("Browser/TimeoutSecs", CSettings::SSetting(30)); Settings.insert("Browser/ReplyBuffer", CSettings::SSetting(MB2B(4),KB2B(256),MB2B(64))); Settings.insert("Browser/TransferBuffer",CSettings::SSetting(KB2B(16),KB2B(4),KB2B(256))); return Settings; }