Developers.CodeFiles

From Shareaza Wiki
Jump to navigation Jump to search

Code Files

Feature

The features of Shareaza not related to peer-to-peer networking

AlbumFolder.cpp //CAlbumFolder// Browses through folders and files on the disk ChatCore.cpp short //CChatCore// Chat sessions, access, and connections ChatSession.cpp //CChatSession// Chat packets ChatWindows.cpp short //CChatWindows// Private chat windows Emoticons.cpp //CEmoticons// Translate between text like //:)// and an icon of a smiling face HashDatabase.cpp //CHashDatabase// The database of library file hashes Library.cpp //CLibrary// Load, search, and save the library LibraryBuilder.cpp //CLibraryBuilder// Add and remove files from the library, and hash them LibraryBuilderInternals.cpp long //CLibraryBuilderInternals// Read files to get metadata like ID3 stored within them LibraryBuilderPlugins.cpp short //CLibraryBuilderPlugins// Load library plug-ins LibraryDictionary.cpp //CLibraryDictionary// Search the library for phrases and words LibraryFolders.cpp //CLibraryFolders// Add and remove folders and look through them LibraryHistory.cpp //CLibraryHistory// Record library history LibraryList.cpp //CLibraryList// Merge lists of library files LibraryMaps.cpp //CLibraryMaps// Lookup files by name, path, URN, and hashes Remote.cpp long //CRemote// Remote-control Shareaza with an HTML interface to the program VersionChecker.cpp //CVersionChecker// Checks for a new version of Shareaza WorldGPS.cpp //CWorldGPS// Translates GPS data into city and country

Meta

Metadata, schemas, and URL parsing

CollectionFile.cpp //CCollectionFile// Shareaza file collections and collection metadata MetaList.cpp //CMetaList// Add, remove, and find metadata keys RelatedSearch.cpp //CRelatedSearch// Search for more by album, artist, series ShareazaURL.cpp //CShareazaURL// Parses Web and P2P URLs SourceURL.cpp //CSourceURL// Parse URLs VendorCache.cpp //CVendorCache// Keeps a list of vendor programs and their known abilities

Net

Peer-to-peer networking

BENode.cpp //CBENode// (network-level, unknown) BitziDownloader.cpp //CBitziDownloader// (using wininet, unknown) BTClient.cpp //CBTClient// BitTorrent handshake, connection, and node communication BTClients.cpp short //CBTClients// BitTorrent connections BTInfo.cpp //CBTInfo// BitTorrent files and hashes BTPacket.cpp short //CBTPacket// BitTorrent buffer writing and reading BTTrackerRequest.cpp //CBTTrackerRequest// Handles BitTorrent tracker request actions Connection.cpp //CConnection// Connect sockets and pass data CrawlSession.cpp //CCrawlSession// (nodes and network, unknown) Datagram.cpp short //CDatagramIn// (converts datagrams to packets) DatagramPart.cpp short //CDatagramOut// (deals with packet fragments) Datagrams.cpp long //CDatagrams// (network packets for edonkey2000?) DiscoveryServices.cpp long //CDiscoveryServices// Finding what IP addresses to try to contact Download.cpp //CDownload// Download interface, with pause and resume DownloadBase.cpp short //CDownloadBase// (generate local name, serialize) DownloadGroup.cpp //CDownloadGroup// (link, add filter, set schema) DownloadGroups.cpp //CDownloadGroups// (get super groups) Downloads.cpp long //CDownloads// Manages the list of downloads DownloadSource.cpp //CDownloadSource// Turns hits from the various networks into downloads DownloadTask.cpp //CDownloadTask// Utilities for saving files Shareaza downloaded DownloadTransfer.cpp //CDownloadTransfer// Get information about a download DownloadTransferBT.cpp //CDownloadTransferBT// Download events specific to BitTorrent DownloadTransferED2K.cpp //CDownloadTransferED2K// Download events specific to eDonkey2000 DownloadTransferFTP.cpp //CDownloadTransferFTP// Get files with FTP DownloadTransferHTTP.cpp long //CDownloadTransferHTTP// Reads and writes HTTP headers and transfers files DownloadWithExtras.cpp short //CDownloadWithExtras// (download with extras, preview) DownloadWithFile.cpp //CDownloadWithFile// DownloadWithSearch.cpp //CDownloadWithSearch// Find more download sources DownloadWithSources.cpp //CDownloadWithSources// Add new sources found DownloadWithTiger.cpp long //CDownloadWithTiger// Validate a TigerTree hash DownloadWithTorrent.cpp //CDownloadWithTorrent// Create torrent transfers DownloadWithTransfers.cpp //CDownloadWithTransfers// Add and remove transfers, and respond to push packets ED2K.cpp blank EDClient.cpp long //CEDClient// eDonkey2000 connections, handshakes, and packets EDClients.cpp //CEDClients// List of clients, client connection, and UDP packet processing EDNeighbour.cpp //CEDNeighbour// Connect to a remote computer running eDonkey2000, and send it packets EDPacket.cpp //CEDPacket// Packet compression, reading and writing, and tags EDPartImporter.cpp //CEDPartImporter// Import folder and file G1Neighbour.cpp long //CG1Neighbour// Exchange packets with another Gnutella computer, like ping, pong, push, and query G1Packet.cpp //CG1Packet// Store and sort a Gnutella packet G2Neighbour.cpp long //CG2Neighbour// Exchange Gnutella2 packets G2Packet.cpp //CG2Packet// Read and write packets, work with strings and buffers GGEP.cpp //CGGEPBlock// (gep, unknown) GProfile.cpp //CGProfile// User profile information, like nickname, location, and avatar Handshake.cpp //CHandshake// Accept push requests and handshakes for each network Handshakes.cpp //CHandshakes// Listen, accept connections, and disconnect HostBrowser.cpp //CHostBrowser// Gnutella and Gnutella2 browse packets HostCache.cpp //CHostCache// Add, find, and remove IP addresses from the host cache HubHorizon.cpp //CHubHorizonPool// Hub horizon pool LocalSearch.cpp //CLocalSearch// Do incoming searches ManagedSearch.cpp //CManagedSearch// Search on gnutella, gnutella2, and ed2k Neighbour.cpp //CNeighbour// Read and write from neighboring computers Neighbours.cpp short //CNeighbours// Just calls //CNeighboursWithConnect// NeighboursBase.cpp //CNeighboursBase// (node management, uncertain) NeighboursWithConnect.cpp //CNeighboursWithConnect// Leafs and hubs NeighboursWithED2K.cpp //CNeighboursWithED2K// eDonkey2000-specific communications NeighboursWithG1.cpp //CNeighboursWithG1// Events for gnutella pings and pongs NeighboursWithG2.cpp //CNeighboursWithG2// (create query web, get random hub) NeighboursWithRouting.cpp //CNeighboursWithRouting// Broadcast and route queries Network.cpp //CNetwork// Connect and disconnect from the various networks Packet.cpp //CPacket// Read and write compressed and normal packet data PacketBuffer.cpp //CG1PacketBuffer// Store packets in a buffer PongCache.cpp //CPongCache// Cache of received pongs QueryHashGroup.cpp short //CQueryHashGroup// Add and remove query hash tables to the group QueryHashMaster.cpp short //CQueryHashMaster// Add and remove query hash tables to the master QueryHashTable.cpp //CQueryHashTable// Create, clear, merge, and patch query hash tables QueryHit.cpp long //CQueryHit// Get query hits from the various networks QueryKeys.cpp short //CQueryKeys// (query keys, uncertain) QuerySearch.cpp //CQuerySearch// Send search packets to the various networks RouteCache.cpp //CRouteCache//, //CRouteCacheTable// Find, add and remove neighbours from the route cache SearchManager.cpp //CSearchManager// Events for getting a query ack and a query hit Security.cpp long //CSecurity// Keeps a list of IP addresses to block ShakeNeighbour.cpp //CShakeNeighbour// Sends handshake headers to a newly connected computer Statistics.cpp short //CStatistics// Update and add statistics UploadFile.cpp //CUploadFile// Add and remove //CUploadTransfer// objects UploadFiles.cpp short //CUploadFiles// Create and remove upload transfers UploadQueue.cpp //CUploadQueue// Manage priority in the list of transfers UploadQueues.cpp //UploadQueues// Manage lists of transfers Uploads.cpp //Uploads// Count uploads and get total bandwidth UploadTransfer.cpp //CUploadTransfer// Uploads UploadTransferBT.cpp //CUploadTransferBT// Upload code specific to BitTorrent UploadTransferED2K.cpp //CUploadTransferED2K// Upload code specific to eDonkey2000 UploadTransferHTTP.cpp //CUploadTransferHTTP// Upload code specific to HTTP

Project

Code specific to Shareaza as a Visual Studio project and Windows program

Application.cpp short //CApplication// The application object ComObject.cpp //CComObject// COM objects and GUIDs DDEServer.cpp //CDDEServer// Shareaza is a DDE server to talk to other Windows programs running on the same computer IEProtocol.cpp //CIEProtocol// Impliments IInternetProtocol to make the plugable protocol //magnet:// work Plugins.cpp //CPlugins// Load Shareaza plug-ins Scheduler.cpp short //CScheduler// Keeps a schedule in the file schedule.dat Settings.cpp //CSettings// Keeps program settings in the registry Shareaza.cpp //CShareazaApp// Windows program, with events for startup and shutdown, messages, errors, and MFC code StdAfx.cpp (part of the system)

User

The user interface of Shareaza

ComMenu.cpp //CComMenu// Commands to build menus, inserting items and separators ComToolbar.cpp //CComToolbar// Commands to build toolbars, inserting buttons and separators CoolInterface.cpp //CCoolInterface// Draw icons and cool effects like watermarks, fonts, colors and themes CoolMenu.cpp //CCoolMenu// Draws cool-looking menus FragmentBar.cpp //CFragmentBar// Draws the cool-looking file fragment bar GraphBase.cpp short //CGraphBase// (incomplete, buffered paint) GraphItem.cpp //CGraphItem// Paint a graph of network statistics with lines and gradients GraphLine.cpp //CLineGraph// Paint a line graph MetaPanel.cpp //CMetaPanel// Layout, paint, wrap text, and handle clicks on the metadata panel RichDocument.cpp //CRichDocument// Build the page on the home panel RichElement.cpp //CRichElement// Paint, size, and set the text of an rich ui page element RichFragment.cpp //CRichFragment// Paint a fragment RichViewCtrl.cpp //CRichViewCtrl// Mouse and paint events for a rich view control ShellIcons.cpp //CShellIcons// Lookup, extract, and draw icons Skin.cpp //CSkin// Load and apply skins SkinWindow.cpp //CSkinWindow// Parse rectangles and colors from an XML skin file ThumbCache.cpp //CThumbCache// Keep a cache of file thumbnails WindowManager.cpp //CWindowManager// Tile and cascade windows in Shareaza

User.Control

User interface controls

CtrlBrowseFrame.cpp //CBrowseFrameCtrl// Paint and mouse events for window and tree controls CtrlBrowseHeader.cpp //CBrowseHeaderCtrl// Paint and size events CtrlBrowseProfile.cpp //CBrowseProfileCtrl// (mix of ui and network stuff, unknown) CtrlBrowseTree.cpp long //CBrowseTreeCtrl// Tree commands and events, like expand and select CtrlChatFrame.cpp //CChatFrame// Chat window commands and events CtrlCoolBar.cpp long //CCoolBarCtrl// Cool-looking toolbar painting and events CtrlCoolMenuBar.cpp //CCoolMenuBarCtrl// Menu click and paint events CtrlCoolTip.cpp //CCoolTipCtrl// The cool-looking tip window, with the colorful line graph CtrlDownloads.cpp long //CDownloadsCtrl// Download window with expandable list CtrlDownloadTabBar.cpp //CDownloadTabBar// (download groups, unknown) CtrlDownloadTip.cpp //CDownloadTipCtrl// Paints and sizes the cool-looking pop-up tip window for a download CtrlDragList.cpp short //CDragListCtrl// Handles a drag and drop in a list CtrlHomePanel.cpp long //CHomePanel// The front page in Shareaza CtrlHomeSearch.cpp //CHomeSearchCtrl// The search box on the front page in Shareaza CtrlHomeView.cpp short //CHomeViewCtrl// Lays out and paints the front page CtrlIconButton.cpp short //CIconButtonCtrl// (icons, cursors, mouse, unknown) CtrlLibraryAlbumView.cpp long //CLibraryAlbumView// CtrlLibraryCollectionView.cpp //CLibraryCollectionView// CtrlLibraryDetailView.cpp //CLibraryDetailView// CtrlLibraryFileView.cpp //CLibraryFileView// CtrlLibraryFrame.cpp //CLibraryFrame// CtrlLibraryHeaderBar.cpp short //CLibraryHeaderBar// CtrlLibraryHeaderPanel.cpp short //CLibraryHeaderPanel// CtrlLibraryHistoryPanel.cpp //CLibraryHistoryPanel// CtrlLibraryHomeView.cpp short //CLibraryHomeView// CtrlLibraryMetaPanel.cpp //CLibraryMetaPanel// CtrlLibraryPanel.cpp short //CLibraryPanel// CtrlLibraryThumbView.cpp //CLibraryThumbView// CtrlLibraryTileView.cpp //CLibraryTileView// CtrlLibraryTip.cpp //CLibraryTipCtrl// CtrlLibraryTree.cpp //CLibraryTreeCtrl// CtrlLibraryTreeView.cpp //CLibraryTreeView// CtrlLibraryView.cpp short //CLibraryView// CtrlMainTabBar.cpp //CMainTabBarCtrl// The tabs across the top CtrlMatch.cpp long //CMatchCtrl// The search results list CtrlMatchTip.cpp //CMatchTipCtrl// Tooltip for the search results list CtrlMediaFrame.cpp //CMediaFrame// The media player in Shareaza CtrlMediaList.cpp //CMediaListCtrl// The list in the media player CtrlMonitorBar.cpp //CMonitorBarCtrl// (timers and painting, unknown) CtrlNeighbourTip.cpp //CNeighbourTipCtrl// Tooltip over list of neighbours CtrlNetworkCombo.cpp short //CNetworkCombo// A small box that lists the different networks Shareaza can connect to CtrlPrivateChatFrame.cpp //CPrivateChatFrame// Draws the private chat window CtrlRichTaskBox.cpp short //CRichTaskBox// (create, size something) CtrlSchema.cpp //CSchemaCtrl// (a window for schema) CtrlSchemaCombo.cpp //CSchemaCombo// (a list for schema) CtrlSearchDetailPanel.cpp long //CSearchDetailPanel// The details window at the bottom of the Search tab CtrlSearchPanel.cpp //CSearchPanel// The Search tab CtrlSharedFolder.cpp //CLibraryFolderCtrl// Events for a folder in the library CtrlTaskPanel.cpp //CTaskPanel// (lots of ui) CtrlText.cpp //CTextCtrl// Shows text somewhere in the user interface CtrlTipAlbum.cpp short //CAlbumTipCtrl// Tooltip for an album CtrlTipFolder.cpp short //CFolderTipCtrl// Tooltip for a folder CtrlTipList.cpp short //CTipListCtrl// (list view tooltip, uncertain) CtrlUploads.cpp long //CUploadsCtrl// Uploads list CtrlUploadTip.cpp //CUploadTipCtrl// Tooltip for uploads list CtrlWeb.cpp //CWebCtrl// (a web browser) CtrlWndTabBar.cpp //CWndTabBar// (some other window somewhere)

User.Dialog

Dialog boxes

DlgAbout.cpp short //CAboutDlg// The About Shareaza dialog box DlgBitziDownload.cpp //CBitziDownloadDlg// A progress dialog that gets metadata from bitzi DlgCloseMode.cpp short //CCloseModeDlg// The 3 choices when you close Shareaza for the first time DlgCollectionExport.cpp //CCollectionExportDlg// Turn an album folder into a collection file DlgConnectTo.cpp //CConnectToDlg// Connect to a host or browse it DlgDeleteFile.cpp short //CDeleteFileDlg// Are you sure you want to delete, and would you like to say why? DlgDiscoveryService.cpp short //CDiscoveryServiceDlg// Enter a new discovery service address, like a Gnutella Web cache DlgDonkeyImport.cpp short //CDonkeyImportDlg// Imports partial downloads from another eDonkey2000 program on your computer DlgDonkeyServers.cpp //CDonkeyServersDlg// Downloads a fresh list of eDonkey2000 servers DlgDownload.cpp //CDownloadDlg// Enter Web or p2p addresses for Shareaza to download DlgDownloadEdit.cpp //CDownloadEditDlg// Advanced download options that let you get around hash checking DlgDownloadGroup.cpp //CDownloadGroupDlg// Filter and choose a folder to save a group of files DlgDownloadMonitor.cpp //CDownloadMonitorDlg// Download status dialog with speed and time remaining DlgExistingFile.cpp //CExistingFileDlg// Question for downloading the same file again DlgFileCopy.cpp //CFileCopyDlg// Progress for file move or copy DlgFilePreview.cpp //CFilePreviewDlg// Progress for creating a file preview so you can watch it DlgFileProperties.cpp //CFilePropertiesDlg// (shared file properties, uncertain) DlgFilePropertiesPage.cpp //CFilePropertiesPage// (may have to do with shared file properties) DlgFilePropertiesSheet.cpp //CFilePropertiesSheet// (may have to do with shared file properties) DlgFilterSearch.cpp //CFilterSearchDlg// Filter the search results list DlgFolderProperties.cpp //CFolderPropertiesDlg// Album folder properties DlgFolderScan.cpp //CFolderScanDlg// Scanning folder progress DlgGraphItem.cpp //CGraphItemDlg// Graph Item properties with source, units, and display DlgGraphList.cpp //CGraphListDlg// Traffic Graphs dialog with Add, Edit, and Remove buttons DlgHelp.cpp short //CHelpDlg// (blank help dialog, but menus go directly to wiki and forums) DlgHitColumns.cpp //CSchemaColumnsDlg// Select columns from schema dialog DlgLanguage.cpp //CLanguageDlg// When Shareaza first runs, it asks what language with this dialog box DlgMediaVis.cpp //CMediaVisDlg// Audio visulation selection DlgNewSearch.cpp //CNewSearchDlg// Search and find in library DlgProfileManager.cpp //CProfileManagerDlg// (there are several profile dialogs) DlgPromote.cpp //CPromoteDlg// When Shareaza runs for the second time, it asks you to spread the word to your friends DlgQueueProperties.cpp //CQueuePropertiesDlg// Settings for your upload queue DlgSecureRule.cpp //CSecureRuleDlg// Block a new network address DlgSettingsManager.cpp //CSettingsManagerDlg// The Shareaza Settings box with many pages DlgShareManager.cpp //CShareManagerDlg// List of folders you are sharing DlgSkinDialog.cpp //CSkinDialog// (something to do with skins) DlgSplash.cpp //CSplashDlg// The black Shareaza splash screen DlgTorrentSeed.cpp //CTorrentSeedDlg// Download a torrent, or re-seed it DlgTorrentTracker.cpp //CTorrentTrackerDlg// BitTorrent Tracker Viewer DlgUpgrade.cpp //CUpgradeDlg// Upgrade Alert dialog box DlgURLAction.cpp //CURLActionDlg// When you click a Shareaza URI for a new discovery service to the cache DlgURLCopy.cpp //CURLCopyDlg// Shows a file address in 3 forms you can copy DlgURLExport.cpp //CURLExportDlg// Generates the Shareaza-powered URIs for several files DlgWarnings.cpp //CWarningsDlg// The wordy dialog that tells people Shareaza is free and has no spyware

User.Page

User interface pages

PageFileComments.cpp PageFileGeneral.cpp PageFileMetadata.cpp PageFileSharing.cpp PageFileSources.cpp PageProfileAvatar.cpp PageProfileBio.cpp PageProfileCertificate.cpp PageProfileContact.cpp PageProfileFavourites.cpp PageProfileFiles.cpp PageProfileIdentity.cpp PageProfileProfile.cpp pagesettingsbandwidth.cpp PageSettingsBitTorrent.cpp PageSettingsCommunity.cpp PageSettingsConnection.cpp PageSettingsDonkey.cpp PageSettingsDownloads.cpp PageSettingsGeneral.cpp PageSettingsGnutella.cpp PageSettingsInterface.cpp PageSettingsLibrary.cpp PageSettingsMedia.cpp PageSettingsNetworks.cpp PageSettingsPlugins.cpp PageSettingsProtocols.cpp PageSettingsRemote.cpp PageSettingsRich.cpp PageSettingsScheduler.cpp PageSettingsSkins.cpp PageSettingsTraffic.cpp PageSettingsUploads.cpp PageSettingsWeb.cpp

User.Window

User interface windows

WndBaseMatch.cpp WndBrowseHost.cpp WndChat.cpp WndChild.cpp WndDiscovery.cpp WndDownloads.cpp WndHashProgressBar.cpp WndHelp.cpp WndHitMonitor.cpp WndHome.cpp WndHostCache.cpp WndLibrary.cpp WndMain.cpp WndMedia.cpp WndMonitor.cpp WndNeighbours.cpp WndPacket.cpp WndPanel.cpp WndPlugin.cpp WndSearch.cpp WndSearchMonitor.cpp WndSearchPad.cpp WndSecurity.cpp WndSettingsPage.cpp WndSettingsSheet.cpp WndSystem.cpp WndTraffic.cpp WndUploads.cpp

User.Wizard

User interface wizards

WizardConnectionPage.cpp WizardFinishedPage.cpp WizardInterfacePage.cpp WizardNetworksPage.cpp WizardProfilePage.cpp WizardSharePage.cpp WizardSheet.cpp WizardWelcomePage.cpp

Utility

Utilities that make the platform easier to use for Shareaza, or potentially another program

Buffer.cpp //CBuffer// Utilities for reading, writing, and compressing buffers of data FileExecutor.cpp //CFileExecutor// Files, media and library window, and bitzi FileFragment.cpp long //CFileFragmentList// List of file fragments FragmentedFile.cpp //CFragmentedFile// Represents a file fragment HttpRequest.cpp //CHttpRequest// Downloads files through HTTP with WinInet ImageFile.cpp //CImageFile// Open, save, and change the colors of bitmap, jpeg, and png images ImageServiceBitmap.cpp //CBitmapImageService// Very low level bitmap code ImageServices.cpp //CImageServices// Load and save images from memory and files LiveList.cpp //CLiveList// Sorts and drags list items LiveListSizer.cpp //CLiveListSizer// Deals with lists being resized MatchListView.cpp //CMatchListView// Helps windows find matches in lists MatchObjects.cpp //CMatchList// Create, select, and filter a list of search results Registry.cpp //CRegistry// Store program settings in the Windows Registry Schema.cpp //CSchema// Loads xml schemas and parses through them SchemaCache.cpp short //CSchemaCache// Load and clear schemas SchemaChild.cpp //CSchemaChild// Load, clear, and copy schema SchemaMember.cpp //CSchemaMember// Load and set values and descriptors SharedFile.cpp long //CLibraryFile// Commands you can perform on a shared file, like rename it, delete it, or hash it SharedFolder.cpp //CLibraryFolder// List folders and files Transfer.cpp short //CTransfer// (short, uncertain) TransferFile.cpp //CTransferFiles//. //CTransferFile// Read and write to files to transfer parts of them Transfers.cpp //CTransfers// Start and stop threads, and perform transfers XML.cpp //CXMLNode// Parse XML XMLCOM.cpp //CXMLCOM// COM Interface for parsing XML ZIPFile.cpp //CZIPFile// Look inside .zip files ZLib.cpp //CZLib// Compress and decompress bytes in buffers with the zlib library

Utility.Hash

Code the hashes files and data

MD4.cpp MD5.cpp SHA.cpp TigerTree.cpp

Utility.Zlib

The imported zlib compression library

adler32.c through zutil.c