fixed: now really bringing branch in sync with trunk head .. about to merge branch... upnpserver
authorc0diq <c0diq@568bbfeb-2a22-0410-94d2-cc84cf5bfa90>
Thu, 18 Jan 2007 05:56:16 +0000 (05:56 +0000)
committerc0diq <c0diq@568bbfeb-2a22-0410-94d2-cc84cf5bfa90>
Thu, 18 Jan 2007 05:56:16 +0000 (05:56 +0000)
commit92a8854f7d338ad34db6610d16b3de0f7e073bf4
treea39594fadcdccff3e3915c4bcf80b11da9d2227b
parent45b5986f7091f10f80ecc931bb7513ba01da275b
fixed: now really bringing branch in sync with trunk head .. about to merge branch to trunk now

git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/upnpserver@7683 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
372 files changed:
XBMC/Build.bat
XBMC/guilib/GUIButtonControl.cpp
XBMC/guilib/GUIButtonControl.h
XBMC/guilib/GUIButtonScroller.cpp
XBMC/guilib/GUIControl.cpp
XBMC/guilib/GUIControl.h
XBMC/guilib/GUIFont.cpp
XBMC/guilib/GUIFont.h
XBMC/guilib/GUIFontBase.h
XBMC/guilib/GUILabelControl.cpp
XBMC/guilib/GUILabelControl.h
XBMC/guilib/GUIListContainer.cpp
XBMC/guilib/GUIListItemLayout.cpp
XBMC/guilib/GUIListItemLayout.h
XBMC/guilib/GUIMoverControl.cpp
XBMC/guilib/GUIMoverControl.h
XBMC/guilib/GUIMultiImage.cpp
XBMC/guilib/GUIPanelContainer.cpp
XBMC/guilib/GUIRAMControl.cpp [deleted file]
XBMC/guilib/GUIRAMControl.h [deleted file]
XBMC/guilib/GUIResizeControl.cpp
XBMC/guilib/GUIResizeControl.h
XBMC/guilib/GUISpinControlEx.cpp
XBMC/guilib/GUISpinControlEx.h
XBMC/guilib/GUIToggleButtonControl.cpp
XBMC/guilib/GUIToggleButtonControl.h
XBMC/guilib/GUIWindow.h
XBMC/guilib/GUIWrappingListContainer.cpp
XBMC/guilib/GuiControlFactory.cpp
XBMC/guilib/GuiControlFactory.h
XBMC/guilib/Key.h
XBMC/guilib/SkinInfo.cpp
XBMC/guilib/VisibleEffect.cpp
XBMC/guilib/guiImage.cpp
XBMC/guilib/guiImage.h
XBMC/guilib/guilib.vcproj
XBMC/guilib/guilib_win32.vcproj
XBMC/skin/Project Mayhem III/Changelog_PM.txt
XBMC/skin/Project Mayhem III/PAL/DialogContentSettings.xml [new file with mode: 0644]
XBMC/skin/Project Mayhem III/PAL/DialogMediaSource.xml
XBMC/skin/Project Mayhem III/PAL/DialogSeekBar.xml
XBMC/skin/Project Mayhem III/PAL/MusicOSDVisSettings.xml
XBMC/skin/Project Mayhem III/PAL/MyVideoNav.xml
XBMC/skin/Project Mayhem III/PAL/PlayerControls.xml
XBMC/skin/Project Mayhem III/PAL/SettingsScreenCalibration.xml
XBMC/skin/Project Mayhem III/PAL/VideoFullScreen.xml
XBMC/skin/Project Mayhem III/PAL/VideoOSDBookmarks.xml
XBMC/skin/Project Mayhem III/media/defaultVideoCover.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-random-off-focus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-random-off-nofocus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-random-on-focus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-random-on-nofocus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-all-focus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-all-nofocus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-off-focus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-off-nofocus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-one-focus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-repeat-one-nofocus.png [new file with mode: 0644]
XBMC/skin/Project Mayhem III/media/music-skipplus-focus.png
XBMC/skin/Project Mayhem III/media/music-skipplus-nofocus.png
XBMC/tools/Win32/XBMC_PC.vcproj
XBMC/userdata/Keymap.xml
XBMC/userdata/PictureIcon/Picon/tuxbox.png [new file with mode: 0644]
XBMC/userdata/PictureIcon/Readme.txt [new file with mode: 0644]
XBMC/userdata/PictureIcon/picon.xml [new file with mode: 0644]
XBMC/userdata/sources.xml
XBMC/xbmc.vcproj
XBMC/xbmc/APEv2Tag.cpp
XBMC/xbmc/ApplicationMessenger.cpp
XBMC/xbmc/ArenaItem.cpp
XBMC/xbmc/AutoPtrHandle.cpp
XBMC/xbmc/AutoSwitch.cpp
XBMC/xbmc/Autorun.cpp
XBMC/xbmc/Autorun.h
XBMC/xbmc/BackgroundInfoLoader.cpp
XBMC/xbmc/BuddyItem.cpp
XBMC/xbmc/ButtonTranslator.cpp
XBMC/xbmc/Cdg.cpp
XBMC/xbmc/CdgParser.cpp
XBMC/xbmc/CdgParser.h
XBMC/xbmc/CdgVoiceManager.cpp
XBMC/xbmc/Crc32.cpp
XBMC/xbmc/Credits.cpp
XBMC/xbmc/CueDocument.cpp
XBMC/xbmc/CueDocument.h
XBMC/xbmc/Database.cpp
XBMC/xbmc/DateTime.cpp
XBMC/xbmc/DetectDVDType.cpp
XBMC/xbmc/DynamicDll.cpp
XBMC/xbmc/FileItem.cpp
XBMC/xbmc/FileSystem/CDDADirectory.cpp
XBMC/xbmc/FileSystem/CDDADirectory.h
XBMC/xbmc/FileSystem/DAAPDirectory.cpp
XBMC/xbmc/FileSystem/DAAPDirectory.h
XBMC/xbmc/FileSystem/DirectoryCache.cpp
XBMC/xbmc/FileSystem/DirectoryCache.h
XBMC/xbmc/FileSystem/DirectoryTuxBox.cpp [new file with mode: 0644]
XBMC/xbmc/FileSystem/DirectoryTuxBox.h [new file with mode: 0644]
XBMC/xbmc/FileSystem/FTPDirectory.cpp
XBMC/xbmc/FileSystem/FTPDirectory.h
XBMC/xbmc/FileSystem/FactoryDirectory.cpp
XBMC/xbmc/FileSystem/FactoryDirectory.h
XBMC/xbmc/FileSystem/FactoryFileDirectory.cpp
XBMC/xbmc/FileSystem/FactoryFileDirectory.h
XBMC/xbmc/FileSystem/File.cpp
XBMC/xbmc/FileSystem/File.h
XBMC/xbmc/FileSystem/FileCurl.cpp
XBMC/xbmc/FileSystem/FileCurl.h
XBMC/xbmc/FileSystem/FileDAAP.cpp
XBMC/xbmc/FileSystem/FileDAAP.h
XBMC/xbmc/FileSystem/FileFactory.cpp
XBMC/xbmc/FileSystem/FileFactory.h
XBMC/xbmc/FileSystem/FileFileReader.h
XBMC/xbmc/FileSystem/FileHD.cpp
XBMC/xbmc/FileSystem/FileHD.h
XBMC/xbmc/FileSystem/FileISO.cpp
XBMC/xbmc/FileSystem/FileISO.h
XBMC/xbmc/FileSystem/FileLastFM.cpp
XBMC/xbmc/FileSystem/FileLastFM.h
XBMC/xbmc/FileSystem/FileMemUnit.cpp
XBMC/xbmc/FileSystem/FileMemUnit.h
XBMC/xbmc/FileSystem/FileRTV.cpp
XBMC/xbmc/FileSystem/FileRTV.h
XBMC/xbmc/FileSystem/FileRar.cpp
XBMC/xbmc/FileSystem/FileRar.h
XBMC/xbmc/FileSystem/FileShoutcast.cpp
XBMC/xbmc/FileSystem/FileShoutcast.h
XBMC/xbmc/FileSystem/FileSmb.cpp
XBMC/xbmc/FileSystem/FileSmb.h
XBMC/xbmc/FileSystem/FileSndtrk.h
XBMC/xbmc/FileSystem/FileTuxBox.cpp [new file with mode: 0644]
XBMC/xbmc/FileSystem/FileTuxBox.h [new file with mode: 0644]
XBMC/xbmc/FileSystem/FileXBMSP.cpp
XBMC/xbmc/FileSystem/FileXBMSP.h
XBMC/xbmc/FileSystem/FileZip.cpp
XBMC/xbmc/FileSystem/HDDirectory.cpp
XBMC/xbmc/FileSystem/HDDirectory.h
XBMC/xbmc/FileSystem/IDirectory.cpp
XBMC/xbmc/FileSystem/IFileDirectory.h
XBMC/xbmc/FileSystem/ISO9660Directory.cpp
XBMC/xbmc/FileSystem/ISO9660Directory.h
XBMC/xbmc/FileSystem/LastFMDirectory.cpp
XBMC/xbmc/FileSystem/LastFMDirectory.h
XBMC/xbmc/FileSystem/MemUnitDirectory.cpp
XBMC/xbmc/FileSystem/MemUnitDirectory.h
XBMC/xbmc/FileSystem/MemoryUnits/Fat32FileSystem.cpp
XBMC/xbmc/FileSystem/MemoryUnits/Fat32FileSystem.h
XBMC/xbmc/FileSystem/MemoryUnits/FatXFileSystem.cpp
XBMC/xbmc/FileSystem/MemoryUnits/FatXFileSystem.h
XBMC/xbmc/FileSystem/MultiPathDirectory.h
XBMC/xbmc/FileSystem/MusicDatabaseDirectory.cpp
XBMC/xbmc/FileSystem/MusicDatabaseDirectory.h
XBMC/xbmc/FileSystem/NSFFileDirectory.cpp
XBMC/xbmc/FileSystem/NSFFileDirectory.h
XBMC/xbmc/FileSystem/OGGFileDirectory.cpp
XBMC/xbmc/FileSystem/OGGFileDirectory.h
XBMC/xbmc/FileSystem/PlaylistDirectory.cpp
XBMC/xbmc/FileSystem/PlaylistDirectory.h
XBMC/xbmc/FileSystem/PlaylistFileDirectory.cpp
XBMC/xbmc/FileSystem/PlaylistFileDirectory.h
XBMC/xbmc/FileSystem/RTVDirectory.cpp
XBMC/xbmc/FileSystem/RTVDirectory.h
XBMC/xbmc/FileSystem/RarDirectory.h
XBMC/xbmc/FileSystem/RarManager.cpp
XBMC/xbmc/FileSystem/SIDFileDirectory.cpp
XBMC/xbmc/FileSystem/SIDFileDirectory.h
XBMC/xbmc/FileSystem/SMBDirectory.cpp
XBMC/xbmc/FileSystem/SMBDirectory.h
XBMC/xbmc/FileSystem/ShoutcastDirectory.cpp
XBMC/xbmc/FileSystem/ShoutcastDirectory.h
XBMC/xbmc/FileSystem/SmartPlaylistDirectory.cpp
XBMC/xbmc/FileSystem/SmartPlaylistDirectory.h
XBMC/xbmc/FileSystem/SndtrkDirectory.cpp
XBMC/xbmc/FileSystem/SndtrkDirectory.h
XBMC/xbmc/FileSystem/StackDirectory.cpp
XBMC/xbmc/FileSystem/StackDirectory.h
XBMC/xbmc/FileSystem/UPnPDirectory.cpp
XBMC/xbmc/FileSystem/UPnPDirectory.h
XBMC/xbmc/FileSystem/VideoDatabaseDirectory.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory.h
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNode.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNode.h
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNodeDirector.cpp [new file with mode: 0644]
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNodeDirector.h [new file with mode: 0644]
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNodeGenre.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNodeOverview.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/DirectoryNodeTitle.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/QueryParams.cpp
XBMC/xbmc/FileSystem/VideoDatabaseDirectory/QueryParams.h
XBMC/xbmc/FileSystem/VirtualDirectory.cpp
XBMC/xbmc/FileSystem/VirtualPathDirectory.h
XBMC/xbmc/FileSystem/XBMSDirectory.cpp
XBMC/xbmc/FileSystem/XBMSDirectory.h
XBMC/xbmc/FileSystem/ZipManager.cpp
XBMC/xbmc/FlacTag.cpp
XBMC/xbmc/GUIDialogAudioSubtitleSettings.cpp
XBMC/xbmc/GUIDialogBoxBase.cpp
XBMC/xbmc/GUIDialogContentSettings.cpp [new file with mode: 0644]
XBMC/xbmc/GUIDialogContentSettings.h [new file with mode: 0644]
XBMC/xbmc/GUIDialogContextMenu.cpp
XBMC/xbmc/GUIDialogFileBrowser.cpp
XBMC/xbmc/GUIDialogFileBrowser.h
XBMC/xbmc/GUIDialogFileStacking.cpp
XBMC/xbmc/GUIDialogGamepad.cpp
XBMC/xbmc/GUIDialogHost.cpp
XBMC/xbmc/GUIDialogInvite.cpp
XBMC/xbmc/GUIDialogKaiToast.cpp
XBMC/xbmc/GUIDialogLockSettings.cpp
XBMC/xbmc/GUIDialogMediaSource.cpp
XBMC/xbmc/GUIDialogMediaSource.h
XBMC/xbmc/GUIDialogMusicOSD.cpp
XBMC/xbmc/GUIDialogMuteBug.cpp
XBMC/xbmc/GUIDialogNetworkSetup.cpp
XBMC/xbmc/GUIDialogNetworkSetup.h
XBMC/xbmc/GUIDialogNumeric.cpp
XBMC/xbmc/GUIDialogPlayerControls.cpp
XBMC/xbmc/GUIDialogProgress.cpp
XBMC/xbmc/GUIDialogSeekBar.cpp
XBMC/xbmc/GUIDialogSettings.cpp
XBMC/xbmc/GUIDialogTrainerSettings.cpp
XBMC/xbmc/GUIDialogVideoBookmarks.cpp
XBMC/xbmc/GUIDialogVideoSettings.cpp
XBMC/xbmc/GUIDialogVolumeBar.cpp
XBMC/xbmc/GUIMediaWindow.cpp
XBMC/xbmc/GUIMediaWindow.h
XBMC/xbmc/GUIPassword.cpp
XBMC/xbmc/GUISettings.cpp
XBMC/xbmc/GUIViewControl.cpp
XBMC/xbmc/GUIViewStateMusic.cpp
XBMC/xbmc/GUIViewStatePicturesProgramsScripts.cpp
XBMC/xbmc/GUIWindowBuddies.cpp
XBMC/xbmc/GUIWindowFileManager.h
XBMC/xbmc/GUIWindowFullScreen.cpp
XBMC/xbmc/GUIWindowGameSaves.cpp
XBMC/xbmc/GUIWindowHome.cpp
XBMC/xbmc/GUIWindowLoginScreen.h
XBMC/xbmc/GUIWindowMusicBase.cpp
XBMC/xbmc/GUIWindowMusicBase.h
XBMC/xbmc/GUIWindowMusicInfo.cpp
XBMC/xbmc/GUIWindowMusicNav.cpp
XBMC/xbmc/GUIWindowMusicOverlay.cpp
XBMC/xbmc/GUIWindowMusicPlaylist.cpp
XBMC/xbmc/GUIWindowMusicSongs.cpp
XBMC/xbmc/GUIWindowMusicTop100.cpp
XBMC/xbmc/GUIWindowOSD.cpp
XBMC/xbmc/GUIWindowPictures.cpp
XBMC/xbmc/GUIWindowPictures.h
XBMC/xbmc/GUIWindowPointer.cpp
XBMC/xbmc/GUIWindowPrograms.cpp
XBMC/xbmc/GUIWindowScreensaver.cpp
XBMC/xbmc/GUIWindowScripts.cpp
XBMC/xbmc/GUIWindowScriptsInfo.cpp
XBMC/xbmc/GUIWindowSettings.cpp
XBMC/xbmc/GUIWindowSettingsCategory.cpp
XBMC/xbmc/GUIWindowSlideShow.cpp
XBMC/xbmc/GUIWindowSystemInfo.cpp
XBMC/xbmc/GUIWindowVideoBase.h
XBMC/xbmc/GUIWindowVideoFiles.cpp
XBMC/xbmc/GUIWindowVideoFiles.h
XBMC/xbmc/GUIWindowVideoInfo.cpp
XBMC/xbmc/GUIWindowVideoNav.cpp
XBMC/xbmc/GUIWindowVideoNav.h
XBMC/xbmc/GUIWindowVideoOverlay.cpp
XBMC/xbmc/GUIWindowVideoPlaylist.cpp
XBMC/xbmc/GUIWindowVisualisation.cpp
XBMC/xbmc/GUIWindowWeather.cpp
XBMC/xbmc/Id3Tag.cpp
XBMC/xbmc/KaiItem.cpp
XBMC/xbmc/KaiVector.cpp
XBMC/xbmc/LangCodeExpander.cpp
XBMC/xbmc/LangInfo.cpp
XBMC/xbmc/MusicDatabase.cpp
XBMC/xbmc/MusicInfoScanner.cpp
XBMC/xbmc/MusicInfoTagLoaderAdplug.cpp
XBMC/xbmc/MusicInfoTagLoaderApe.cpp
XBMC/xbmc/MusicInfoTagLoaderDatabase.cpp
XBMC/xbmc/MusicInfoTagLoaderGYM.cpp
XBMC/xbmc/MusicInfoTagLoaderMP3.cpp
XBMC/xbmc/MusicInfoTagLoaderMP4.cpp
XBMC/xbmc/MusicInfoTagLoaderMPC.cpp
XBMC/xbmc/MusicInfoTagLoaderMod.cpp
XBMC/xbmc/MusicInfoTagLoaderNSF.cpp
XBMC/xbmc/MusicInfoTagLoaderOgg.cpp
XBMC/xbmc/MusicInfoTagLoaderSPC.cpp
XBMC/xbmc/MusicInfoTagLoaderShn.cpp
XBMC/xbmc/MusicInfoTagLoaderSid.cpp
XBMC/xbmc/MusicInfoTagLoaderWMA.cpp
XBMC/xbmc/MusicInfoTagLoaderWav.cpp
XBMC/xbmc/MusicInfoTagLoaderWavPack.cpp
XBMC/xbmc/MusicInfoTagLoaderYM.cpp
XBMC/xbmc/NfoFile.cpp
XBMC/xbmc/NfoFile.h
XBMC/xbmc/OggTag.cpp
XBMC/xbmc/PartyModeManager.cpp
XBMC/xbmc/PartyModeManager.h
XBMC/xbmc/PictureThumbLoader.cpp
XBMC/xbmc/PlayList.cpp
XBMC/xbmc/PlayListB4S.cpp
XBMC/xbmc/PlayListFactory.cpp
XBMC/xbmc/PlayListM3U.cpp
XBMC/xbmc/PlayListM3U.h
XBMC/xbmc/PlayListPLS.cpp
XBMC/xbmc/PlayListPlayer.cpp
XBMC/xbmc/PlayListPlayer.h
XBMC/xbmc/PlayListWPL.cpp
XBMC/xbmc/PlayListWPL.h
XBMC/xbmc/PlaylistDirectory.cpp
XBMC/xbmc/Profile.cpp
XBMC/xbmc/ProgramDatabase.cpp
XBMC/xbmc/SectionLoader.cpp
XBMC/xbmc/Settings.cpp
XBMC/xbmc/Settings.h
XBMC/xbmc/SettingsControls.cpp
XBMC/xbmc/Shortcut.cpp
XBMC/xbmc/SlideShowPicture.cpp
XBMC/xbmc/SmartPlaylist.h
XBMC/xbmc/Song.cpp
XBMC/xbmc/SortFileItem.cpp
XBMC/xbmc/Temperature.cpp
XBMC/xbmc/ThumbnailCache.cpp
XBMC/xbmc/UPnP.h
XBMC/xbmc/URL.cpp
XBMC/xbmc/Util.h
XBMC/xbmc/ViewDatabase.cpp
XBMC/xbmc/XBAudioConfig.cpp
XBMC/xbmc/XBVideoConfig.cpp
XBMC/xbmc/XMP4File.cpp
XBMC/xbmc/XboxMediaCenter.cpp
XBMC/xbmc/cdrip/CDDAReader.h
XBMC/xbmc/cdrip/CDDARipper.cpp
XBMC/xbmc/lib/UnrarXLib/file.hpp
XBMC/xbmc/lib/libGoAhead/XBMChttp.cpp
XBMC/xbmc/lib/libGoAhead/XBMChttp.h
XBMC/xbmc/lib/libGoAhead/XBMCweb.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/control.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/controlimage.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/infotagvideo.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/keyboard.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/keyboard.h
XBMC/xbmc/lib/libPython/xbmcmodule/pyplaylist.cpp
XBMC/xbmc/lib/libPython/xbmcmodule/xbmcmodule.cpp
XBMC/xbmc/lib/libscrobbler/scrobbler.cpp
XBMC/xbmc/lib/libsmb/libsmb.lib
XBMC/xbmc/lib/libsmb/libsmbd.lib
XBMC/xbmc/lib/libsmb/xbLibSmb.h
XBMC/xbmc/musicInfoTag.cpp
XBMC/xbmc/musicInfoTagLoaderFactory.cpp
XBMC/xbmc/stdafx.h
XBMC/xbmc/utils/Archive.cpp
XBMC/xbmc/utils/Archive.h
XBMC/xbmc/utils/DllHTMLScraper.h [deleted file]
XBMC/xbmc/utils/FilterFlickerPatch.cpp
XBMC/xbmc/utils/GUIInfoManager.cpp
XBMC/xbmc/utils/GUIInfoManager.h
XBMC/xbmc/utils/HTMLUtil.h
XBMC/xbmc/utils/HTTP.cpp
XBMC/xbmc/utils/HTTP.h
XBMC/xbmc/utils/IMDB.cpp
XBMC/xbmc/utils/IMDB.h
XBMC/xbmc/utils/LED.cpp
XBMC/xbmc/utils/LED.h
XBMC/xbmc/utils/MediaMonitor.cpp
XBMC/xbmc/utils/MediaMonitor.h
XBMC/xbmc/utils/MemoryUnitManager.cpp
XBMC/xbmc/utils/RssReader.cpp
XBMC/xbmc/utils/ScraperParser.cpp [new file with mode: 0644]
XBMC/xbmc/utils/ScraperParser.h [new file with mode: 0644]
XBMC/xbmc/utils/Splash.cpp
XBMC/xbmc/utils/Trainer.cpp
XBMC/xbmc/utils/TuxBoxUtil.cpp [new file with mode: 0644]
XBMC/xbmc/utils/TuxBoxUtil.h [new file with mode: 0644]
XBMC/xbmc/utils/Weather.cpp