Merge remote branch 'mine/ext-python'
authorJim Carroll <thecarrolls@jiminger.com>
Wed, 6 Apr 2011 19:10:39 +0000 (15:10 -0400)
committerJim Carroll <thecarrolls@jiminger.com>
Wed, 6 Apr 2011 19:10:39 +0000 (15:10 -0400)
61 files changed:
.gitignore
Makefile.in
XBMC-ATV2.xcodeproj/project.pbxproj
XBMC-IOS.xcodeproj/project.pbxproj
XBMC.xcodeproj/project.pbxproj
addons/metadata.themoviedb.org/resources/language/Finnish/strings.xml
addons/skin.confluence/720p/MyVideoNav.xml
addons/skin.confluence/language/Finnish/strings.xml
configure.in
language/Catalan/strings.xml
language/Finnish/strings.xml
lib/libXBMS/Makefile.in [deleted file]
lib/libXBMS/ccbuffer.c [deleted file]
lib/libXBMS/ccbuffer.h [deleted file]
lib/libXBMS/ccincludes.h [deleted file]
lib/libXBMS/ccutil.c [deleted file]
lib/libXBMS/ccutil.h [deleted file]
lib/libXBMS/ccxclient.c [deleted file]
lib/libXBMS/ccxclient.h [deleted file]
lib/libXBMS/ccxclientconnxbox.c [deleted file]
lib/libXBMS/ccxdiscover.c [deleted file]
lib/libXBMS/ccxencode.c [deleted file]
lib/libXBMS/ccxencode.h [deleted file]
lib/libXBMS/ccxmltrans.c [deleted file]
lib/libXBMS/ccxmltrans.h [deleted file]
lib/libXBMS/ccxpacket.h [deleted file]
lib/libXBMS/ccxversion.h [deleted file]
lib/libXBMS/libXBMS/libXBMS.vcproj [deleted file]
lib/libXBMS/libXBMS/libXBMS.vcxproj [deleted file]
lib/libXBMS/libXBMS/libXBMS.vcxproj.filters [deleted file]
project/VS2010Express/XBMC for Windows.sln
project/VS2010Express/XBMC.vcxproj
project/VS2010Express/XBMC.vcxproj.filters
xbmc/FileItem.cpp
xbmc/Util.cpp
xbmc/filesystem/FactoryDirectory.cpp
xbmc/filesystem/FileFactory.cpp
xbmc/filesystem/FileXBMSP.cpp [deleted file]
xbmc/filesystem/FileXBMSP.h [deleted file]
xbmc/filesystem/Makefile.in
xbmc/filesystem/XBMSDirectory.cpp [deleted file]
xbmc/filesystem/XBMSDirectory.h [deleted file]
xbmc/guilib/Texture.cpp
xbmc/interfaces/Builtins.cpp
xbmc/interfaces/json-rpc/AudioLibrary.cpp
xbmc/interfaces/json-rpc/FileItemHandler.cpp
xbmc/interfaces/json-rpc/FileOperations.cpp
xbmc/interfaces/json-rpc/ServiceDescription.h
xbmc/network/GUIDialogNetworkSetup.cpp
xbmc/osx/DarwinUtils.h
xbmc/osx/DarwinUtils.mm
xbmc/osx/Makefile.in
xbmc/osx/atv2/XBMCEAGLView.mm
xbmc/system.h
xbmc/utils/URIUtils.cpp
xbmc/video/VideoDatabase.cpp
xbmc/video/VideoDatabase.h
xbmc/video/windows/GUIWindowVideoBase.cpp
xbmc/video/windows/GUIWindowVideoNav.cpp
xbmc/windows/GUIMediaWindow.cpp
xbmc/windows/GUIWindowFileManager.cpp

index 0f7cb7a..77e4b61 100644 (file)
@@ -1062,11 +1062,6 @@ lib/cmyth/Makefile
 
 /lib/libUPnP/Makefile
 
-# /lib/libXBMS
-/lib/libXBMS/Makefile
-/lib/libXBMS/libXBMS/Debug
-/lib/libXBMS/libXBMS/Release
-
 # /lib/libXDAAP
 /lib/libXDAAP/Makefile
 /lib/libXDAAP/libXDAAP_win32/Debug
index 7b5e771..cf0f9e5 100644 (file)
@@ -55,7 +55,6 @@ BIN_DIRS=     \
        lib/libRTV \
        xbmc/network/libscrobbler \
        lib/libUPnP \
-       lib/libXBMS \
        lib/libXDAAP \
        xbmc/dbwrappers \
        lib/UnrarXLib \
@@ -338,8 +337,6 @@ lib/libRTV/librtv.a: force
        $(MAKE) -C lib/libRTV
 lib/libUPnP/libupnp.a: force
        $(MAKE) -C lib/libUPnP
-lib/libXBMS/libxbms.a: force
-       $(MAKE) -C lib/libXBMS
 lib/libXDAAP/libxdaap.a: force
        $(MAKE) -C lib/libXDAAP
 lib/jsoncpp/src/lib_json/libjsoncpp.a: force
@@ -468,7 +465,6 @@ xcode_depends: \
        codecs libs $(PYTHON_TARGET) visualizations screensavers eventclients skins \
        lib/libsquish/libsquish.a \
        lib/libapetag/.libs/libapetag.a \
-       lib/libXBMS/libxbms.a \
        lib/libRTV/librtv.a \
        lib/libXDAAP/libxdaap.a \
        lib/jsoncpp/src/lib_json/libjsoncpp.a
@@ -543,7 +539,6 @@ endif
 
 ifeq (@HAVE_XBMC_NONFREE@,1)
 OBJSXBMC+= \
-       lib/libXBMS/libxbms.a \
        lib/UnrarXLib/UnrarXLib.a
 endif
 
index 71afd55..eeb7e66 100644 (file)
                F56C7993131EC154000AD0F6 /* FileSpecialProtocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73E0131EC151000AD0F6 /* FileSpecialProtocol.cpp */; };
                F56C7994131EC154000AD0F6 /* FileTuxBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73E2131EC151000AD0F6 /* FileTuxBox.cpp */; };
                F56C7995131EC154000AD0F6 /* FileUDF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73E4131EC151000AD0F6 /* FileUDF.cpp */; };
-               F56C7996131EC154000AD0F6 /* FileXBMSP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73E6131EC151000AD0F6 /* FileXBMSP.cpp */; };
                F56C7997131EC154000AD0F6 /* FileZip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73E8131EC151000AD0F6 /* FileZip.cpp */; };
                F56C7998131EC154000AD0F6 /* FTPDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73EA131EC151000AD0F6 /* FTPDirectory.cpp */; };
                F56C7999131EC154000AD0F6 /* FTPParse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C73EC131EC151000AD0F6 /* FTPParse.cpp */; };
                F56C79E9131EC154000AD0F6 /* VideoDatabaseDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C7490131EC152000AD0F6 /* VideoDatabaseDirectory.cpp */; };
                F56C79EA131EC154000AD0F6 /* VirtualDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C7492131EC152000AD0F6 /* VirtualDirectory.cpp */; };
                F56C79EB131EC154000AD0F6 /* VirtualPathDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C7494131EC152000AD0F6 /* VirtualPathDirectory.cpp */; };
-               F56C79EC131EC154000AD0F6 /* XBMSDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C7496131EC152000AD0F6 /* XBMSDirectory.cpp */; };
                F56C79ED131EC154000AD0F6 /* ZeroconfDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C7499131EC152000AD0F6 /* ZeroconfDirectory.cpp */; };
                F56C79EE131EC154000AD0F6 /* ZipDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C749B131EC152000AD0F6 /* ZipDirectory.cpp */; };
                F56C79EF131EC154000AD0F6 /* ZipManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C749D131EC152000AD0F6 /* ZipManager.cpp */; };
                F56C73E3131EC151000AD0F6 /* FileTuxBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileTuxBox.h; sourceTree = "<group>"; };
                F56C73E4131EC151000AD0F6 /* FileUDF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileUDF.cpp; sourceTree = "<group>"; };
                F56C73E5131EC151000AD0F6 /* FileUDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileUDF.h; sourceTree = "<group>"; };
-               F56C73E6131EC151000AD0F6 /* FileXBMSP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileXBMSP.cpp; sourceTree = "<group>"; };
-               F56C73E7131EC151000AD0F6 /* FileXBMSP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileXBMSP.h; sourceTree = "<group>"; };
                F56C73E8131EC151000AD0F6 /* FileZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileZip.cpp; sourceTree = "<group>"; };
                F56C73E9131EC151000AD0F6 /* FileZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileZip.h; sourceTree = "<group>"; };
                F56C73EA131EC151000AD0F6 /* FTPDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FTPDirectory.cpp; sourceTree = "<group>"; };
                F56C7493131EC152000AD0F6 /* VirtualDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualDirectory.h; sourceTree = "<group>"; };
                F56C7494131EC152000AD0F6 /* VirtualPathDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VirtualPathDirectory.cpp; sourceTree = "<group>"; };
                F56C7495131EC152000AD0F6 /* VirtualPathDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualPathDirectory.h; sourceTree = "<group>"; };
-               F56C7496131EC152000AD0F6 /* XBMSDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBMSDirectory.cpp; sourceTree = "<group>"; };
-               F56C7497131EC152000AD0F6 /* XBMSDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMSDirectory.h; sourceTree = "<group>"; };
                F56C7498131EC152000AD0F6 /* ZeroconfDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZeroconfDirectory.h; sourceTree = "<group>"; };
                F56C7499131EC152000AD0F6 /* ZeroconfDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZeroconfDirectory.cpp; sourceTree = "<group>"; };
                F56C749A131EC152000AD0F6 /* zconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zconf.h; sourceTree = "<group>"; };
                                F56C73E3131EC151000AD0F6 /* FileTuxBox.h */,
                                F56C73E4131EC151000AD0F6 /* FileUDF.cpp */,
                                F56C73E5131EC151000AD0F6 /* FileUDF.h */,
-                               F56C73E6131EC151000AD0F6 /* FileXBMSP.cpp */,
-                               F56C73E7131EC151000AD0F6 /* FileXBMSP.h */,
                                F56C73E8131EC151000AD0F6 /* FileZip.cpp */,
                                F56C73E9131EC151000AD0F6 /* FileZip.h */,
                                F56C73EA131EC151000AD0F6 /* FTPDirectory.cpp */,
                                F56C7493131EC152000AD0F6 /* VirtualDirectory.h */,
                                F56C7494131EC152000AD0F6 /* VirtualPathDirectory.cpp */,
                                F56C7495131EC152000AD0F6 /* VirtualPathDirectory.h */,
-                               F56C7496131EC152000AD0F6 /* XBMSDirectory.cpp */,
-                               F56C7497131EC152000AD0F6 /* XBMSDirectory.h */,
                                F56C7498131EC152000AD0F6 /* ZeroconfDirectory.h */,
                                F56C7499131EC152000AD0F6 /* ZeroconfDirectory.cpp */,
                                F56C749A131EC152000AD0F6 /* zconf.h */,
                                F56C7993131EC154000AD0F6 /* FileSpecialProtocol.cpp in Sources */,
                                F56C7994131EC154000AD0F6 /* FileTuxBox.cpp in Sources */,
                                F56C7995131EC154000AD0F6 /* FileUDF.cpp in Sources */,
-                               F56C7996131EC154000AD0F6 /* FileXBMSP.cpp in Sources */,
                                F56C7997131EC154000AD0F6 /* FileZip.cpp in Sources */,
                                F56C7998131EC154000AD0F6 /* FTPDirectory.cpp in Sources */,
                                F56C7999131EC154000AD0F6 /* FTPParse.cpp in Sources */,
                                F56C79E9131EC154000AD0F6 /* VideoDatabaseDirectory.cpp in Sources */,
                                F56C79EA131EC154000AD0F6 /* VirtualDirectory.cpp in Sources */,
                                F56C79EB131EC154000AD0F6 /* VirtualPathDirectory.cpp in Sources */,
-                               F56C79EC131EC154000AD0F6 /* XBMSDirectory.cpp in Sources */,
                                F56C79ED131EC154000AD0F6 /* ZeroconfDirectory.cpp in Sources */,
                                F56C79EE131EC154000AD0F6 /* ZipDirectory.cpp in Sources */,
                                F56C79EF131EC154000AD0F6 /* ZipManager.cpp in Sources */,
index c9e59b0..01c9488 100644 (file)
                F56C897D131F42ED000AD0F6 /* FileSpecialProtocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83C3131F42E8000AD0F6 /* FileSpecialProtocol.cpp */; };
                F56C897E131F42ED000AD0F6 /* FileTuxBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83C5131F42E8000AD0F6 /* FileTuxBox.cpp */; };
                F56C897F131F42ED000AD0F6 /* FileUDF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83C7131F42E8000AD0F6 /* FileUDF.cpp */; };
-               F56C8980131F42ED000AD0F6 /* FileXBMSP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83C9131F42E8000AD0F6 /* FileXBMSP.cpp */; };
                F56C8981131F42ED000AD0F6 /* FileZip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83CB131F42E8000AD0F6 /* FileZip.cpp */; };
                F56C8982131F42ED000AD0F6 /* FTPDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83CD131F42E8000AD0F6 /* FTPDirectory.cpp */; };
                F56C8983131F42ED000AD0F6 /* FTPParse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C83CF131F42E8000AD0F6 /* FTPParse.cpp */; };
                F56C89D3131F42ED000AD0F6 /* VideoDatabaseDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C8473131F42E8000AD0F6 /* VideoDatabaseDirectory.cpp */; };
                F56C89D4131F42ED000AD0F6 /* VirtualDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C8475131F42E8000AD0F6 /* VirtualDirectory.cpp */; };
                F56C89D5131F42ED000AD0F6 /* VirtualPathDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C8477131F42E8000AD0F6 /* VirtualPathDirectory.cpp */; };
-               F56C89D6131F42ED000AD0F6 /* XBMSDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C8479131F42E9000AD0F6 /* XBMSDirectory.cpp */; };
                F56C89D7131F42ED000AD0F6 /* ZeroconfDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C847C131F42E9000AD0F6 /* ZeroconfDirectory.cpp */; };
                F56C89D8131F42ED000AD0F6 /* ZipDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C847E131F42E9000AD0F6 /* ZipDirectory.cpp */; };
                F56C89D9131F42ED000AD0F6 /* ZipManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F56C8480131F42E9000AD0F6 /* ZipManager.cpp */; };
                F56C83C6131F42E8000AD0F6 /* FileTuxBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileTuxBox.h; sourceTree = "<group>"; };
                F56C83C7131F42E8000AD0F6 /* FileUDF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileUDF.cpp; sourceTree = "<group>"; };
                F56C83C8131F42E8000AD0F6 /* FileUDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileUDF.h; sourceTree = "<group>"; };
-               F56C83C9131F42E8000AD0F6 /* FileXBMSP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileXBMSP.cpp; sourceTree = "<group>"; };
-               F56C83CA131F42E8000AD0F6 /* FileXBMSP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileXBMSP.h; sourceTree = "<group>"; };
                F56C83CB131F42E8000AD0F6 /* FileZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileZip.cpp; sourceTree = "<group>"; };
                F56C83CC131F42E8000AD0F6 /* FileZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileZip.h; sourceTree = "<group>"; };
                F56C83CD131F42E8000AD0F6 /* FTPDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FTPDirectory.cpp; sourceTree = "<group>"; };
                F56C8476131F42E8000AD0F6 /* VirtualDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualDirectory.h; sourceTree = "<group>"; };
                F56C8477131F42E8000AD0F6 /* VirtualPathDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VirtualPathDirectory.cpp; sourceTree = "<group>"; };
                F56C8478131F42E8000AD0F6 /* VirtualPathDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VirtualPathDirectory.h; sourceTree = "<group>"; };
-               F56C8479131F42E9000AD0F6 /* XBMSDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBMSDirectory.cpp; sourceTree = "<group>"; };
-               F56C847A131F42E9000AD0F6 /* XBMSDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMSDirectory.h; sourceTree = "<group>"; };
                F56C847B131F42E9000AD0F6 /* ZeroconfDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZeroconfDirectory.h; sourceTree = "<group>"; };
                F56C847C131F42E9000AD0F6 /* ZeroconfDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ZeroconfDirectory.cpp; sourceTree = "<group>"; };
                F56C847D131F42E9000AD0F6 /* zconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zconf.h; sourceTree = "<group>"; };
                                F56C83C6131F42E8000AD0F6 /* FileTuxBox.h */,
                                F56C83C7131F42E8000AD0F6 /* FileUDF.cpp */,
                                F56C83C8131F42E8000AD0F6 /* FileUDF.h */,
-                               F56C83C9131F42E8000AD0F6 /* FileXBMSP.cpp */,
-                               F56C83CA131F42E8000AD0F6 /* FileXBMSP.h */,
                                F56C83CB131F42E8000AD0F6 /* FileZip.cpp */,
                                F56C83CC131F42E8000AD0F6 /* FileZip.h */,
                                F56C83CD131F42E8000AD0F6 /* FTPDirectory.cpp */,
                                F56C8476131F42E8000AD0F6 /* VirtualDirectory.h */,
                                F56C8477131F42E8000AD0F6 /* VirtualPathDirectory.cpp */,
                                F56C8478131F42E8000AD0F6 /* VirtualPathDirectory.h */,
-                               F56C8479131F42E9000AD0F6 /* XBMSDirectory.cpp */,
-                               F56C847A131F42E9000AD0F6 /* XBMSDirectory.h */,
                                F56C847B131F42E9000AD0F6 /* ZeroconfDirectory.h */,
                                F56C847C131F42E9000AD0F6 /* ZeroconfDirectory.cpp */,
                                F56C847D131F42E9000AD0F6 /* zconf.h */,
                                F56C897D131F42ED000AD0F6 /* FileSpecialProtocol.cpp in Sources */,
                                F56C897E131F42ED000AD0F6 /* FileTuxBox.cpp in Sources */,
                                F56C897F131F42ED000AD0F6 /* FileUDF.cpp in Sources */,
-                               F56C8980131F42ED000AD0F6 /* FileXBMSP.cpp in Sources */,
                                F56C8981131F42ED000AD0F6 /* FileZip.cpp in Sources */,
                                F56C8982131F42ED000AD0F6 /* FTPDirectory.cpp in Sources */,
                                F56C8983131F42ED000AD0F6 /* FTPParse.cpp in Sources */,
                                F56C89D3131F42ED000AD0F6 /* VideoDatabaseDirectory.cpp in Sources */,
                                F56C89D4131F42ED000AD0F6 /* VirtualDirectory.cpp in Sources */,
                                F56C89D5131F42ED000AD0F6 /* VirtualPathDirectory.cpp in Sources */,
-                               F56C89D6131F42ED000AD0F6 /* XBMSDirectory.cpp in Sources */,
                                F56C89D7131F42ED000AD0F6 /* ZeroconfDirectory.cpp in Sources */,
                                F56C89D8131F42ED000AD0F6 /* ZipDirectory.cpp in Sources */,
                                F56C89D9131F42ED000AD0F6 /* ZipManager.cpp in Sources */,
index 1287265..912a978 100644 (file)
                F5DC87E3110A287400EE1B15 /* RingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC87E1110A287400EE1B15 /* RingBuffer.cpp */; };
                F5DC8801110A46C700EE1B15 /* ModplugCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC8800110A46C700EE1B15 /* ModplugCodec.cpp */; };
                F5DC8802110A46C700EE1B15 /* ModplugCodec.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC8800110A46C700EE1B15 /* ModplugCodec.cpp */; };
-               F5DC880F110A4A0B00EE1B15 /* FileXBMSP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC880E110A4A0B00EE1B15 /* FileXBMSP.cpp */; };
-               F5DC8810110A4A0B00EE1B15 /* FileXBMSP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC880E110A4A0B00EE1B15 /* FileXBMSP.cpp */; };
-               F5DC8813110A4A2400EE1B15 /* XBMSDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC8812110A4A2400EE1B15 /* XBMSDirectory.cpp */; };
-               F5DC8814110A4A2400EE1B15 /* XBMSDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5DC8812110A4A2400EE1B15 /* XBMSDirectory.cpp */; };
                F5DC8817110A4B8900EE1B15 /* libxbms.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5DC8816110A4B8900EE1B15 /* libxbms.a */; };
                F5DC888B110A654000EE1B15 /* libapetag.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5DC888A110A654000EE1B15 /* libapetag.a */; };
                F5DC888C110A654000EE1B15 /* libapetag.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F5DC888A110A654000EE1B15 /* libapetag.a */; };
                F5DC87E1110A287400EE1B15 /* RingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RingBuffer.cpp; sourceTree = "<group>"; };
                F5DC87FF110A46C700EE1B15 /* ModplugCodec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModplugCodec.h; sourceTree = "<group>"; };
                F5DC8800110A46C700EE1B15 /* ModplugCodec.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ModplugCodec.cpp; sourceTree = "<group>"; };
-               F5DC880D110A4A0B00EE1B15 /* FileXBMSP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FileXBMSP.h; sourceTree = "<group>"; };
-               F5DC880E110A4A0B00EE1B15 /* FileXBMSP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileXBMSP.cpp; sourceTree = "<group>"; };
-               F5DC8811110A4A2400EE1B15 /* XBMSDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBMSDirectory.h; sourceTree = "<group>"; };
-               F5DC8812110A4A2400EE1B15 /* XBMSDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBMSDirectory.cpp; sourceTree = "<group>"; };
                F5DC8816110A4B8900EE1B15 /* libxbms.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxbms.a; path = lib/libXBMS/libxbms.a; sourceTree = "<group>"; };
                F5DC888A110A654000EE1B15 /* libapetag.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libapetag.a; path = lib/libapetag/.libs/libapetag.a; sourceTree = "<group>"; };
                F5E55B5B10741272006E788A /* DVDPlayerTeletext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DVDPlayerTeletext.cpp; sourceTree = "<group>"; };
                                E38E16DF0D25F9FA00618676 /* FileTuxBox.h */,
                                433219D112E4C6A500CD7486 /* FileUDF.cpp */,
                                433219D212E4C6A500CD7486 /* FileUDF.h */,
-                               F5DC880E110A4A0B00EE1B15 /* FileXBMSP.cpp */,
-                               F5DC880D110A4A0B00EE1B15 /* FileXBMSP.h */,
                                E38E16E20D25F9FA00618676 /* FileZip.cpp */,
                                E38E16E30D25F9FA00618676 /* FileZip.h */,
                                E38E16E40D25F9FA00618676 /* FTPDirectory.cpp */,
                                E38E178D0D25F9FA00618676 /* VirtualDirectory.h */,
                                E38E178E0D25F9FA00618676 /* VirtualPathDirectory.cpp */,
                                E38E178F0D25F9FA00618676 /* VirtualPathDirectory.h */,
-                               F5DC8812110A4A2400EE1B15 /* XBMSDirectory.cpp */,
-                               F5DC8811110A4A2400EE1B15 /* XBMSDirectory.h */,
                                E49ACD8A100745C400A86ECD /* ZeroconfDirectory.h */,
                                E49ACD8B100745C400A86ECD /* ZeroconfDirectory.cpp */,
                                E38E17920D25F9FA00618676 /* zconf.h */,
                                E435380411076A2900792AB8 /* eprintf.cpp in Sources */,
                                F5DC87E2110A287400EE1B15 /* RingBuffer.cpp in Sources */,
                                F5DC8801110A46C700EE1B15 /* ModplugCodec.cpp in Sources */,
-                               F5DC880F110A4A0B00EE1B15 /* FileXBMSP.cpp in Sources */,
-                               F5DC8813110A4A2400EE1B15 /* XBMSDirectory.cpp in Sources */,
                                F5F240EF110A4F76009126C6 /* CrystalHD.cpp in Sources */,
                                F5F244651110DC6B009126C6 /* FileOperationJob.cpp in Sources */,
                                F5F245DA1112C6AC009126C6 /* DVDAudioCodecPassthroughFFmpeg.cpp in Sources */,
                                E435380311076A2900792AB8 /* eprintf.cpp in Sources */,
                                F5DC87E3110A287400EE1B15 /* RingBuffer.cpp in Sources */,
                                F5DC8802110A46C700EE1B15 /* ModplugCodec.cpp in Sources */,
-                               F5DC8810110A4A0B00EE1B15 /* FileXBMSP.cpp in Sources */,
-                               F5DC8814110A4A2400EE1B15 /* XBMSDirectory.cpp in Sources */,
                                F5F244661110DC6B009126C6 /* FileOperationJob.cpp in Sources */,
                                F5F245DB1112C6AC009126C6 /* DVDAudioCodecPassthroughFFmpeg.cpp in Sources */,
                                F5F245EF1112C9AB009126C6 /* FileUtils.cpp in Sources */,
index 20ef8e5..3c6a465 100644 (file)
@@ -3,5 +3,5 @@
     <string id="30000">Fanitaide käytössä</string>
     <string id="30001">Käytä trailereita HD-Trailers.net -sivustolta</string>
     <string id="30002">Kieli</string>
-    <string id="30003">Hae luokitus IMDb:stä</string>
+    <string id="30003">Hae arvosana IMDb:stä</string>
 </strings>
index de418b5..a2915ce 100644 (file)
                                </control>
                                <control type="image">
                                        <posx>185</posx>
-                                       <posy>240</posy>
+                                       <posy>200</posy>
                                        <width>40</width>
                                        <height>40</height>
                                        <texture>MediaSubSet.png</texture>
                                </control>
                                <control type="radiobutton" id="98">
                                        <description>Extra Options</description>
-                                       <hitrect x="0" y="160" w="265" h="40" />
+                                       <hitrect x="0" y="120" w="265" h="40" />
                                        <posx>0</posx>
                                        <posy>120</posy>
                                        <include>ButtonCommonValues</include>
index 9bc3716..a962e56 100644 (file)
@@ -84,6 +84,7 @@
   <string id="31128">Sanoitukset</string>
   <string id="31129"></string>
   <string id="31130"></string>
+  
   <string id="31131"></string>
   <string id="31132">Sanoitukset-lisäosa</string>
   <string id="31133">Tekstitykset-lisäosa</string>
   <string id="31308">Elokuvan tiedot</string>
   <string id="31309">Käytetty muisti:</string>
   <string id="31310">Kappalenumero</string>
-  <string id="31011">Fanitaide kuvaa[CR][CR]ei ole saatavilla[CR][CR]Klikkaa asettaaksesi</string>
+  <string id="31311">Fanitaide kuvaa[CR][CR]ei ole saatavilla[CR][CR]Klikkaa asettaaksesi</string>
   <string id="31312">Nykyinen hakupaikka</string>
   <string id="31313">Valitse hakupaikka</string>
   <string id="31314">Sisällön hakuasetukset</string>
   <string id="31356">Lataa tekstitykset</string>
   <string id="31357"></string>
 
+  <!-- Skin Fontsets -->
+  <string id="31390">Ulkoasun oletus</string>
+  <string id="31391">Ulkoasun oletus ilman isoja kirjaimia</string>
+  <string id="31392">Arial pohjainen</string>
+
   <!-- Description Labels  -->
   <string id="31400">[B]Muokkaa käyttöliittymän asetuksia[/B][CR][CR]Vaihda ulkoasua · Vaihda kieliasetuksia · Aseta tiedostolistauksen asetukset[CR]Aseta ruudunsäästäjä</string>
   <string id="31401">[B]Muokkaa video-asetuksia[/B][CR][CR]Hallitse videokirjastoa · Aseta videotoiston asetukset · Vaihda videolistauksen asetuksia[CR]Aseta tekstitysasetukset</string>
index 10b9cd0..7a103bd 100644 (file)
@@ -1384,7 +1384,6 @@ OUTPUT_FILES="Makefile \
     xbmc/guilib/Makefile \
     xbmc/interfaces/Makefile \
     xbmc/network/Makefile \
-    lib/libXBMS/Makefile \
     lib/libRTV/Makefile \
     lib/libexif/Makefile \
     lib/libXDAAP/Makefile \
index 13d561b..5f55766 100644 (file)
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <!--Language file translated with Team XBMC Translator-->
 <!--Translator: BucLabs-->
 <!--Email: buclabs@gmail.com-->
 <!--Date of translation: 08/28/2006-->
 <!--$Revision$-->
-<!--Based on english strings version 1.332-->
+<!--Translator: Albert Samaniego-->
+<!--Email: sam@ressaca.org-->
+<!--Date of translation: 04/05/2011-->
+<!--$Revision$-->
 <strings>
   <string id="0">Programes</string>
   <string id="1">Imatges</string>
   <string id="2">Música</string>
-  <string id="3">Pel.lícules</string>
+  <string id="3">Pel·lícules</string>
   <string id="4">Guia TV</string>
   <string id="5">Ajustaments</string>
-  <string id="7">Arxius</string>
+  <string id="7">Gestor de fitxers</string>
   <string id="8">El Temps</string>
-  <string id="11">Dilluns</string>
-  <string id="12">Dimarts</string>
-  <string id="13">Dimecres</string>
-  <string id="14">Dijous</string>
-  <string id="15">Divendres</string>
-  <string id="16">Dissabte</string>
-  <string id="17">Diumenge</string>
-  <string id="21">Gener</string>
-  <string id="22">Febrer</string>
-  <string id="23">Març</string>
-  <string id="24">Abril</string>
-  <string id="25">Maig</string>
-  <string id="26">Juny</string>
-  <string id="27">Juliol</string>
-  <string id="28">Agost</string>
-  <string id="29">Setembre</string>
-  <string id="30">Octubre</string>
-  <string id="31">Novembre</string>
-  <string id="32">Desembre</string>
+  <string id="11">dilluns</string>
+  <string id="12">dimarts</string>
+  <string id="13">dimecres</string>
+  <string id="14">dijous</string>
+  <string id="15">divendres</string>
+  <string id="16">dissabte</string>
+  <string id="17">diumenge</string>
+  <string id="21">gener</string>
+  <string id="22">febrer</string>
+  <string id="23">març</string>
+  <string id="24">abril</string>
+  <string id="25">maig</string>
+  <string id="26">juny</string>
+  <string id="27">juliol</string>
+  <string id="28">agost</string>
+  <string id="29">setembre</string>
+  <string id="30">octubre</string>
+  <string id="31">novembre</string>
+  <string id="32">desembre</string>
+  <string id="41">Dl</string>
+  <string id="42">Dt</string>
+  <string id="43">Dc</string>
+  <string id="44">Dj</string>
+  <string id="45">Dv</string>
+  <string id="46">Ds</string>
+  <string id="47">Dg</string>
+  <string id="51">gen</string>
+  <string id="52">febr</string>
+  <string id="53">març</string>
+  <string id="54">abr</string>
+  <string id="55">maig</string>
+  <string id="56">juny</string>
+  <string id="57">jul</string>
+  <string id="58">ago</string>
+  <string id="59">set</string>
+  <string id="60">oct</string>
+  <string id="61">nov</string>
+  <string id="62">des</string>
+  <string id="71">N</string>
+  <string id="80">SSO</string>
+  <string id="81">SO</string>
+  <string id="82">OSO</string>
+  <string id="83">O</string>
+  <string id="84">ONO</string>
+  <string id="85">NO</string>
+  <string id="86">NNO</string>
   <string id="98">Veure: Auto</string>
   <string id="99">Veure: Gran</string>
   <string id="100">Veure: Icones</string>
   <string id="101">Veure: Llista</string>
   <string id="102">Explorar</string>
-  <string id="103">Ordenar: Nom</string>
-  <string id="104">Ordenar: Data</string>
-  <string id="105">Ordenar: Tamany</string>
+  <string id="103">Ordena per: Nom</string>
+  <string id="104">Ordena per: Data</string>
+  <string id="105">Ordena per: Tamany</string>
   <string id="106">No</string>
-  <string id="107">Si</string>
+  <string id="107">Sí</string>
   <string id="108">Diapositives</string>
-  <string id="109">Crear Miniatures</string>
-  <string id="110">Crear Miniatures</string>
+  <string id="109">Crear miniatures</string>
+  <string id="110">Crear miniatures</string>
   <string id="111">Dreceres</string>
-  <string id="112">PAUSA</string>
-  <string id="113">Arxius: Origen</string>
-  <string id="114">Arxius: Destí</string>
+  <string id="112">Pausat</string>
+  <string id="113">L'actualització ha fallat</string>
+  <string id="114">La instal·lació ha fallat</string>
   <string id="115">Copiar</string>
   <string id="116">Moure</string>
-  <string id="117">Borrar</string>
+  <string id="117">Esborrar</string>
   <string id="118">Renombrar</string>
-  <string id="119">Nova Carpeta</string>
-  <string id="120">Confirmar Copiar</string>
+  <string id="119">Nova carpeta</string>
+  <string id="120">Confirmar la copia</string>
   <string id="121">Confirmar Moure</string>
   <string id="122">Confirmar Borrar</string>
   <string id="123">Estas segur de copiar els arxius?</string>
   <string id="124">Estas segur de moure els arxius?</string>
-  <string id="125">Estas segur de borrar els arxius?</string>
+  <string id="125">Estas segur de borrar els arxius? No es pot desfer!</string>
   <string id="126">Estat</string>
   <string id="127">Objectes</string>
   <string id="128">General</string>
   <string id="129">Diapositives</string>
-  <string id="130">Info del Sistema</string>
+  <string id="130">Info del sistema</string>
   <string id="131">Pantalla</string>
   <string id="132">Àlbums</string>
   <string id="133">Artistes</string>
   <string id="134">Cançons</string>
   <string id="135">Gèneres</string>
   <string id="136">Llistes Reprod.</string>
-  <string id="137">Buscar</string>
-  <string id="138">INFORMACIÓ DEL SISTEMA</string>
+  <string id="137">Cerca</string>
+  <string id="138">Informació del sistema</string>
   <string id="139">Temperatures:</string>
   <string id="140">CPU:</string>
   <string id="141">GPU:</string>
-  <string id="142">Data i Hora:</string>
-  <string id="143">Actualment</string>
+  <string id="142">Data i hora:</string>
+  <string id="143">Actualment:</string>
   <string id="144">Compilació:</string>
   <string id="145">Xarxa:</string>
   <string id="146">Tipus:</string>
   <string id="147">Estàtica</string>
   <string id="148">DHCP</string>
-  <string id="149">MAC</string>
-  <string id="150">IP</string>
+  <string id="149">Adreça MAC</string>
+  <string id="150">Adreça IP</string>
   <string id="151">Enllaç:</string>
   <string id="152">Half duplex</string>
   <string id="153">Full duplex</string>
   <string id="154">Disc Dur</string>
   <string id="155">Unitat</string>
-  <string id="156">Lliures</string>
+  <string id="156">Lliure</string>
   <string id="157">Video</string>
   <string id="158">Memòria Lliure</string>
   <string id="159">Sense enllaç</string>
   <string id="161">No disponible</string>
   <string id="162">Safata oberta</string>
   <string id="163">Llegint</string>
-  <string id="164">Sense Disc</string>
+  <string id="164">No hi ha disc</string>
   <string id="165">Disc Present</string>
-  <string id="166">Pell:</string>
-  <string id="167">Activar Servidor FTP</string>
-  <string id="168">Activar sincr. Horaria de Internet</string>
-  <string id="169">Resolució:</string>
-  <string id="170">Àlbum:</string>
-  <string id="171">Artista:</string>
-  <string id="172">Data de Llançament:</string>
-  <string id="173">Vot:</string>
-  <string id="174">Gènere:</string>
-  <string id="175">Tons:</string>
-  <string id="176">Estíl:</string>
-  <string id="177">Crítica:</string>
-  <string id="178">Pistes:</string>
+  <string id="166">Pell</string>
+  <string id="169">Resolució</string>
+  <string id="170">Ajusta el rati de refresc del video</string>
+  <string id="172">Data de llançament</string>
+  <string id="173">Mostre videos en 4:3 com</string>
+  <string id="175">Tons</string>
+  <string id="176">Estils</string>
   <string id="179">Cançó</string>
   <string id="180">Duració</string>
-  <string id="181">Selecionar Àlbum</string>
+  <string id="181">Seleciona un àlbum</string>
   <string id="182">Pistes</string>
   <string id="183">Crítica</string>
   <string id="184">Refrescar</string>
   <string id="185">Buscant Àlbum</string>
-  <string id="186">OK</string>
+  <string id="186">D'acord</string>
   <string id="187">Àlbum no trobat!</string>
-  <string id="188">Selec. Tot</string>
+  <string id="188">Selec. tot</string>
   <string id="189">Buscant Informació Medi</string>
   <string id="190">Guardar</string>
   <string id="191">Aleatori</string>
   <string id="192">Netejar</string>
   <string id="193">Cercar</string>
-  <string id="194">Buscant...</string>
-  <string id="195">Sense info a IMDB!</string>
+  <string id="194">Cercant...</string>
+  <string id="195">No s'ha trobat informació!</string>
   <string id="196">Selec. Pel·lícula:</string>
-  <string id="197">Cercant info a IMDB</string>
+  <string id="197">Cercant informació a %</string>
   <string id="198">Carregant detalls de la Pel·lícula</string>
-  <string id="199">Director:</string>
-  <string id="200">Guió:</string>
-  <string id="201">Any:</string>
-  <string id="202">Destacable:</string>
-  <string id="203">Resum:</string>
-  <string id="204">Valoració:</string>
+  <string id="199">Interfície web</string>
+  <string id="202">Destacable</string>
+  <string id="203">Resum</string>
   <string id="205">Vots:</string>
-  <string id="206">Repartiment:</string>
+  <string id="206">Repartiment</string>
   <string id="207">Sinopsi</string>
   <string id="208">Play</string>
   <string id="209">Següent</string>
   <string id="210">Anterior</string>
   <string id="213">Centrar Interfície d'Usuari</string>
-  <string id="214">Calibració de Video</string>
+  <string id="214">Calibració de video...</string>
   <string id="215">Suavitzar</string>
   <string id="216">Zoom</string>
   <string id="217">Relació del Pixel</string>
   <string id="218">Lector DVD</string>
   <string id="219">Inserir Disc</string>
-  <string id="220">Unitat Remota</string>
+  <string id="220">Unitat remota</string>
   <string id="221">La xarxa no està connectada</string>
   <string id="222">Cancel.lar</string>
   <string id="224">Velocitat</string>
   <string id="225">Temps de transició</string>
+  <string id="226">Prova patrons...</string>
   <string id="227">Mirar A-CD info a freedb</string>
   <string id="228">Llista Reprod. Aleatoria al iniciar</string>
   <string id="229">Temps d'aturada del HDD</string>
   <string id="230">Filtres de Video</string>
-  <string id="231">Res</string>
+  <string id="231">Cap</string>
   <string id="232">Punt</string>
   <string id="233">Linear</string>
   <string id="234">Anisotròpic</string>
   <string id="236">Gaussian Cubic</string>
   <string id="237">Minification</string>
   <string id="238">Magnification</string>
-  <string id="239">Borrar llista de reproducció al sortir</string>
-  <string id="240">Autoexecutar DVD-Video</string>
-  <string id="241">Autoexecutar VCD/SVCD</string>
-  <string id="242">Autoexecutar Audio-CD</string>
-  <string id="243">Autoexecutar XBOX Games</string>
-  <string id="244">Autoexecutar Videos</string>
-  <string id="245">Autoexecutar Música</string>
-  <string id="246">Autoexecutar Imatges</string>
+  <string id="239">Neteja la llista de reproducció al sortir</string>
+  <string id="240">Mode de visualització</string>
+  <string id="241">Pantalla complerta #%d</string>
+  <string id="242">En finestra</string>
+  <string id="243">Freqüència de refresc</string>
+  <string id="244">Pantalla complerta</string>
   <string id="247">Scripts</string>
   <string id="248">Idioma</string>
   <string id="249">Música</string>
-  <string id="250">Visualitzacions</string>
+  <string id="250">Visualització</string>
   <string id="251">Seleccioni directori de destí</string>
-  <string id="252">- Sortida Estèreo a tots els altaveus</string>
+  <string id="252">Sortida estèreo a tots els altaveus</string>
   <string id="253">Número de canals</string>
-  <string id="254">- Activar Sortida DTS</string>
+  <string id="254">- Receptor amb DTS</string>
   <string id="255">CDDB</string>
-  <string id="256">Preguntant freedb per info CDDB</string>
+  <string id="256">Obtenint informació del CD</string>
   <string id="257">Error</string>
   <string id="258">Activar lectura d'etiquetes (ID3)</string>
-  <string id="259">Apertura</string>
+  <string id="259">Obertura</string>
   <string id="260">Shoutcast</string>
   <string id="261">Esperant per començar....</string>
-  <string id="262">Scripts de Sortida</string>
-  <string id="263">Activar Servidor HTTP</string>
+  <string id="262">Scripts de sortida</string>
+  <string id="263">Permetre control de XBMC via HTTP</string>
   <string id="264">Gravar</string>
-  <string id="265">Parar Gravació</string>
-  <string id="266">Ordre: Pista</string>
-  <string id="267">Ordre: Temps</string>
-  <string id="268">Ordre: Títol</string>
-  <string id="269">Ordre: Artista</string>
-  <string id="270">Ordre: Àlbum</string>
+  <string id="265">Atura gravació</string>
+  <string id="266">Ordrena per: Pista</string>
+  <string id="267">Ordrena per: Temps</string>
+  <string id="268">Ordrena per: Títol</string>
+  <string id="269">Ordrena per: Artista</string>
+  <string id="270">Ordrena per: Àlbum</string>
   <string id="271">Top 100</string>
   <string id="272">Ajust cantonada sup. esquerra</string>
   <string id="273">Ajust cantonada inf. dreta</string>
   <string id="274">Posició dels subtítols</string>
-  <string id="275">Ajust Proporció del Pixel</string>
+  <string id="275">Ajust proporció del Pixel</string>
   <string id="276">Mogui la fletxa per canviar la posició de la imatge</string>
   <string id="277">Mogui la barra per canviar la posició del subtítols</string>
   <string id="278">Canviï el rectangle fins veure un quadrat perfecte</string>
   <string id="279">Impossible carregar les opcions</string>
-  <string id="280">Utilitzar per defecte excepcions</string>
+  <string id="280">S'utilitzen les opcions per defecte</string>
   <string id="281">Si us plau, verifiqui els fitxers XML</string>
   <string id="282">Trobats %i elements</string>
-  <string id="283">Resultats</string>
-  <string id="284">No hi han resultats</string>
-  <string id="286">Filtre Postprocés</string>
+  <string id="283">Resultats de la cerca</string>
+  <string id="284">No hi ha resultats</string>
   <string id="287">Subtítols</string>
   <string id="288">Font</string>
   <string id="289">Tamany</string>
-  <string id="290">Sò amplificat (dB)</string>
   <string id="291">Video</string>
-  <string id="292">Audio</string>
-  <string id="293">subtítols</string>
-  <string id="294">Crear marca</string>
-  <string id="296">Netejar marques</string>
+  <string id="292">Àudio</string>
+  <string id="293">Navega per als subtítols</string>
+  <string id="294">Crear preferit</string>
+  <string id="296">Netejar preferits</string>
   <string id="297">Retràs AV</string>
+  <string id="298">Preferits</string>
   <string id="303">Retràs</string>
   <string id="304">Idioma</string>
   <string id="305">Activat</string>
   <string id="306">No-Entrellaçat</string>
-  <string id="307">- Postprocés Automàtic</string>
-  <string id="308">- Filtre Desbloqueig Vertical</string>
-  <string id="309">- Filtre Desbloqueig Horitzontal</string>
-  <string id="310">- Auto contrast/brillantor</string>
-  <string id="311">- Dering</string>
   <string id="312">(0=auto)</string>
-  <string id="313">Reorganitzar base de dades</string>
+  <string id="313">Netejant base de dades</string>
   <string id="314">Preparant...</string>
-  <string id="315">Error a la Base de Dades</string>
-  <string id="316">Buscant cançons...</string>
+  <string id="315">Error a la base de dades</string>
+  <string id="316">Cercant cançons...</string>
   <string id="317">Neteja de la base de dades exitosa</string>
   <string id="318">Netejant cançons...</string>
   <string id="319">Error al netejar cançons</string>
-  <string id="320">Buscant artista...</string>
-  <string id="321">Error netejant artistes</string>
-  <string id="322">Buscant gèneres...</string>
-  <string id="323">Error netejant gèneres</string>
-  <string id="324">Buscant rutes...</string>
-  <string id="325">Error netejant rutes</string>
-  <string id="326">Buscant Àlbums...</string>
+  <string id="320">Netejant artistes...</string>
+  <string id="321">Error al netejar artistes</string>
+  <string id="322">Netejant gèneres...</string>
+  <string id="323">Error al netejar gèneres</string>
+  <string id="324">Netejant rutes...</string>
+  <string id="325">Error al netejar rutes</string>
+  <string id="326">Netejant àlbums...</string>
   <string id="327">Error al netejar àlbums</string>
-  <string id="328">Escrivint canvis...</string>
+  <string id="328">Escrivint els canvis...</string>
   <string id="329">Error al escriure canvis</string>
   <string id="330">Això pot trigar varis minuts...</string>
   <string id="331">Comprimint base de dades...</string>
-  <string id="332">Error al comprimir</string>
+  <string id="332">Error al comprimir la base de dades</string>
   <string id="333">Vols netejar la llibreria musical?</string>
-  <string id="334">Netejant Llibreria musical</string>
+  <string id="334">Neteja la llibreria...</string>
   <string id="335">Inicia</string>
   <string id="336">Ajus. Framerate</string>
-  <string id="337">Sortida d'Ã\80udio</string>
+  <string id="337">Sortida d'àudio</string>
   <string id="338">Analògic</string>
-  <string id="339">Digital</string>
+  <string id="339">Digital/Coaxial</string>
   <string id="340">Varis artistes</string>
-  <string id="341">Reprod. DVD</string>
-  <string id="342">Pel.lícules</string>
+  <string id="341">Reprod. disc</string>
+  <string id="342">Pel·lícules</string>
   <string id="343">Ajustar Framerate</string>
   <string id="344">Actors</string>
   <string id="345">Any</string>
-  <string id="346">Agrupar</string>
-  <string id="347">Desagrupar</string>
   <string id="350">Programes</string>
   <string id="351">Off</string>
   <string id="352">Enfosquir</string>
   <string id="354">Matrix</string>
   <string id="355">Temps per al salvapantalles</string>
   <string id="356">Mode salvapantalles</string>
-  <string id="357">Tiemps per al apagat</string>
-  <string id="358">Tots els Ã\80lbums</string>
-  <string id="359">Àlbums Recents</string>
+  <string id="357">Temps per al apagat</string>
+  <string id="358">Tots els Ã lbums</string>
+  <string id="359">Àlbums afegits recentment</string>
   <string id="360">Salvapantalles</string>
   <string id="361">Presentació</string>
   <string id="362">Nivell de foscor (%)</string>
-  <string id="363">Ordre: Arxiu</string>
+  <string id="363">Ordrena per: Arxiu</string>
   <string id="364">- Activar Sortida AC3 5.1</string>
-  <string id="365">Ordre: Nom</string>
-  <string id="366">Ordre: Any</string>
-  <string id="367">Ordre: Puntuació</string>
-  <string id="368">IMDB</string>
+  <string id="365">Ordrena per: Nom</string>
+  <string id="366">Ordrena per: Any</string>
+  <string id="367">Ordrena per: Puntuació</string>
+  <string id="368">IMDb</string>
   <string id="369">Títol</string>
   <string id="370">Tormenta</string>
   <string id="371">Parcialment</string>
-  <string id="372">Majorment</string>
-  <string id="373">Assolejat</string>
+  <string id="372">Majoritariament</string>
+  <string id="373">Assolellat</string>
   <string id="374">Núvol</string>
   <string id="375">Neu</string>
   <string id="376">Pluja</string>
   <string id="384">Fort</string>
   <string id="385">Serè</string>
   <string id="386">Clar</string>
-  <string id="387">Núvol</string>
+  <string id="387">Núvols</string>
   <string id="388">d'hora</string>
-  <string id="389">ruixat</string>
-  <string id="390">nevades</string>
+  <string id="389">Ruixat</string>
+  <string id="390">Nevades</string>
   <string id="391">Baix</string>
   <string id="392">Mitja</string>
   <string id="393">Alt</string>
   <string id="395">Boirina</string>
   <string id="396">Seleccioni Lloc</string>
   <string id="397">Temps Actualització</string>
-  <string id="398">Unitat Temperatura</string>
-  <string id="399">Unitat velocitat</string>
+  <string id="398">Unitats de temperatura</string>
+  <string id="399">Unitats de velocitat</string>
   <string id="400">Temps</string>
   <string id="401">Temp</string>
   <string id="402">S. Tèrmica</string>
   <string id="404">Vent</string>
   <string id="405">Rosada</string>
   <string id="406">Humitat</string>
-  <string id="407">Des de</string>
-  <string id="408">fins</string>
-  <string id="410">Accedint a weather.com</string>
-  <string id="411">Recuperant El Temps per:</string>
-  <string id="412">Imposible connectar</string>
-  <string id="413">Manual</string>
+  <string id="409">Per defecte</string>
+  <string id="410">Accedint al servei meteorològic</string>
+  <string id="411">Consultant el temps per:</string>
+  <string id="412">No s'ha pogut obtenir dades</string>
+  <string id="413">Manualment</string>
   <string id="414">No hi ha anàlisi d'aquest Àlbum</string>
   <string id="415">Descarregant caràtula...</string>
   <string id="416">No disponible</string>
   <string id="417">Veure: Gran</string>
-  <string id="418">Els meus Videos/Gèneres</string>
-  <string id="419">Els meus Videos/Actors</string>
-  <string id="420">Els meus Videos/Any</string>
-  <string id="421">Els meus Videos/Títol</string>
+  <string id="418">Baix</string>
+  <string id="419">Alt</string>
+  <string id="420">HDMI</string>
   <string id="422">Borrar info de l'Àlbum</string>
-  <string id="423">Borrar CDDB</string>
+  <string id="423">Borrar informació del CD</string>
   <string id="424">Selecciona</string>
-  <string id="425">No hi ha info de l'Àlbum.</string>
-  <string id="426">No hi ha info CDDB.</string>
-  <string id="427">Disc:</string>
+  <string id="425">No hi ha info de l'Àlbum</string>
+  <string id="426">No hi ha info del CD</string>
+  <string id="427">Disc</string>
   <string id="428">Insereixi un CD/DVD vàlid</string>
   <string id="429">Insereixi el següent CD/DVD</string>
-  <string id="430">Ordre: DVD#</string>
+  <string id="430">Ordrena per: DVD#</string>
   <string id="431">No Cache</string>
   <string id="432">Borrar pel.lícula de la base de dades</string>
-  <string id="433">Estas segur de borrar</string>
-  <string id="434">la pel·lícula?</string>
-  <string id="435">Pista</string>
-  <string id="436">Any:</string>
-  <string id="437">Duració:</string>
-  <string id="438">Obrir arxiu</string>
+  <string id="433">Voleu esborrar '%s'?</string>
+  <string id="434">Des de %s a %i %s</string>
+  <string id="437">Disc</string>
+  <string id="438">Obrint arxiu</string>
   <string id="439">Cache</string>
   <string id="440">Disc Dur</string>
   <string id="441">UDF</string>
-  <string id="442">LAN</string>
+  <string id="442">Xarxa local</string>
   <string id="443">Internet</string>
   <string id="444">Video</string>
-  <string id="445">Audio</string>
+  <string id="445">Àudio</string>
   <string id="446">DVD</string>
   <string id="447">Autoexecutar</string>
   <string id="448">LCD</string>
   <string id="449">Activat</string>
   <string id="450">Columnes</string>
-  <string id="451">Columna 1:</string>
-  <string id="452">Columna 2:</string>
-  <string id="453">Columna 3:</string>
-  <string id="454">Columna 4:</string>
-  <string id="455">Columnes:</string>
-  <string id="456">Mode:</string>
+  <string id="451">Columna 1</string>
+  <string id="452">Columna 2</string>
+  <string id="453">Columna 3</string>
+  <string id="454">Columna 4</string>
+  <string id="455">Columnes</string>
+  <string id="456">Mode</string>
   <string id="457">Canviar vista</string>
   <string id="459">Subs</string>
-  <string id="460">Cadena d'Àudio</string>
-  <string id="461">[Activar]</string>
+  <string id="460">Stream d'àudio</string>
+  <string id="461">[actiu]</string>
   <string id="462">Subtítol</string>
   <string id="463">Retroil·luminació</string>
   <string id="464">Brillantor</string>
   <string id="477">Imposible carregar la llista de reproducció</string>
   <string id="478">OSD</string>
   <string id="479">Llengua i Pell (Skin)</string>
-  <string id="480">Interfície d'Usuari</string>
-  <string id="481">Opcions Àudio</string>
-  <string id="482">En quant a XBMC</string>
-  <string id="483">Àlbum</string>
-  <string id="484">Artista</string>
-  <string id="485">Borrar Àlbum</string>
+  <string id="480">Aparença</string>
+  <string id="481">Opcions d'àudio</string>
+  <string id="482">Sobre XBMC</string>
+  <string id="485">Borrar àlbum</string>
   <string id="486">Repetir</string>
-  <string id="487">Repetir Una</string>
-  <string id="488">Repetir Carpetes</string>
-  <string id="489">Autoreproduir Següent ítem</string>
+  <string id="487">Repetir una</string>
+  <string id="488">Repetir carpeta</string>
+  <string id="489">Autoreproduir la següent cançó</string>
   <string id="491">- Usar icones grans</string>
   <string id="492">Allargar subtítols</string>
   <string id="493">Opcions Avançades (Experts Only!)</string>
   <string id="495">Reescalar Videos a la resolució del entorn (GUI)</string>
   <string id="496">Calibració</string>
   <string id="497">Amagar extensions</string>
-  <string id="498">Per Tipus:</string>
-  <string id="499">Imposible connectar a www.allmusic.com</string>
+  <string id="498">Ordena per: Tipus</string>
+  <string id="499">Imposible connectar al servei en linia</string>
   <string id="500">Descarrega d'informació d'àlbum fallida</string>
-  <string id="501">Buscant nom de l'Àlbum...</string>
+  <string id="501">Cercant nom de l'Àlbum...</string>
   <string id="502">Obrir</string>
   <string id="503">Ocupat</string>
   <string id="504">Buit</string>
   <string id="505">Carregant informació des d'arxiu...</string>
-  <string id="507">Ordenar: Ús</string>
+  <string id="507">Ordena per: Ús</string>
   <string id="510">Activar Visualitzacions</string>
   <string id="511">Activar canvi de mode de vídeo</string>
   <string id="512">Finestra Inici</string>
   <string id="513">Finestra Home</string>
-  <string id="514">Opcions Manuals</string>
+  <string id="514">Opcions manuals</string>
   <string id="515">Gènere</string>
-  <string id="516">Fés arxius amb un de transparent</string>
   <string id="517">Àlbums recents reproduïts</string>
   <string id="518">Executa</string>
-  <string id="519">Executa en..</string>
-  <string id="520">Edita Fitxer XBE</string>
+  <string id="519">Executa en...</string>
   <string id="521">Compilacions</string>
   <string id="522">Borra Origen</string>
+  <string id="524">Selecciona llista de reproducció</string>
+  <string id="525">Nova llista de reproducció...</string>
+  <string id="526">Afegeix a la llista de reproducció</string>
+  <string id="528">Entra títol</string>
+  <string id="529">Error: El títol està duplicat</string>
+  <string id="530">Seleccionar gènere</string>
+  <string id="531">Nou gènere</string>
+  <string id="533">Entra gènere</string>
+  <string id="534">Veure: %s</string>
+  <string id="535">Llista</string>
+  <string id="536">Icones</string>
+  <string id="537">Llista gran</string>
+  <string id="538">Icones grans</string>
+  <string id="541">Icones d'àlbums</string>
+  <string id="542">Icones de DVD</string>
+  <string id="543">DVD</string>
+  <string id="544">Informació</string>
+  <string id="547">No hi ha biografia d'aquest artista</string>
+  <string id="550">Ordena per: %s</string>
+  <string id="551">Nom</string>
+  <string id="552">Data</string>
+  <string id="553">Mida</string>
+  <string id="554">Pista</string>
+  <string id="555">Temps</string>
+  <string id="556">Títol</string>
+  <string id="557">Artista</string>
+  <string id="558">Àlbum</string>
+  <string id="559">Llista de reproducció</string>
+  <string id="560">ID</string>
+  <string id="561">Fitxer</string>
+  <string id="562">Any</string>
+  <string id="563">Puntuació</string>
+  <string id="564">Tipus</string>
+  <string id="565">Ús</string>
+  <string id="566">Artista de l'àlbum</string>
+  <string id="567">Núm. reproduccions</string>
+  <string id="568">Última reproducció</string>
+  <string id="569">Comentari</string>
+  <string id="570">Afegit el</string>
+  <string id="572">Estudi</string>
+  <string id="574">País</string>
+  <string id="575">En progrés</string>
+  <string id="576">Reproduït</string>
+  <string id="584">Ascendent</string>
+  <string id="585">Descendent</string>
+  <string id="586">Edita llista de reproducció</string>
+  <string id="587">Filtre</string>
   <string id="588">Cancel·la el Mode Party</string>
   <string id="589">Mode Party</string>
   <string id="590">Aleatori</string>
   <string id="595">Repetir: Off</string>
   <string id="596">Repetir: Una</string>
   <string id="597">Repetir: Totes</string>
-  <string id="600">Ripejar CD Audio</string>
+  <string id="600">Ripejar CD d'àudio</string>
   <string id="601">Mitjà</string>
   <string id="602">Estandard</string>
   <string id="603">Extrem</string>
   <string id="604">Bit Rate Constant</string>
   <string id="605">Ripejant...</string>
-  <string id="606">Número de pista:</string>
   <string id="607">A:</string>
   <string id="608">Imposible ripejar el CD o pista</string>
   <string id="609">CDDARipPath no es troba</string>
   <string id="643">Evitar retallades (clipping) en fitxers Replay Gained</string>
   <string id="644">Retalla barres negres</string>
   <string id="645">Requereixo enmagatzemar en catxe, continuo?</string>
-  <string id="646">Treu Títol</string>
+  <string id="649">Important</string>
+  <string id="650">Exportant</string>
+  <string id="652">anys</string>
+  <string id="653">Actualitza la llibreria</string>
+  <string id="658">Informació de la cançó</string>
+  <string id="660">Amplificació del volum</string>
+  <string id="665">Nivell de compressió</string>
   <string id="700">Borrar la llibreria</string>
   <string id="701">Eliminant cançons antigues de la llibreria</string>
   <string id="702">Aquesta ruta ja ha estat explorada.</string>
   <string id="705">Xarxa</string>
-  <string id="706">- Adreça del Proxy HTTP</string>
-  <string id="707">- Port del Proxy HTTP</string>
+  <string id="706">- Servidor</string>
   <string id="708">Activar Proxy HTTP</string>
-  <string id="709">XLink Kai XTag</string>
-  <string id="710">XLink Kai Password</string>
-  <string id="711">Internet Protocol (IP)</string>
+  <string id="711">Protocol d'Internet (IP)</string>
   <string id="712">Port especificat invàlid. Valors entre 1 i 65535.</string>
   <string id="713">Proxy HTTP</string>
-  <string id="714">XLink Kai</string>
-  <string id="715">Asignació</string>
+  <string id="715">- Asignació</string>
   <string id="716">Automàtica (DHCP)</string>
   <string id="717">Manual (Estàtica)</string>
-  <string id="718">Per defecte (Dashboard)</string>
   <string id="719">- Adreça IP</string>
   <string id="720">- Màscara de subxarxa</string>
   <string id="721">- Porta d'enllaç</string>
   <string id="722">- Servidor DNS</string>
-  <string id="723">Guardar i resetejar la Xbox</string>
+  <string id="723">Desa i reinicia</string>
   <string id="724">Adreça especificada invàlida. Valors deuen ser AAA.BBB.CCC.DDD</string>
   <string id="725">amb nombres compresos entre 0 i 255.</string>
   <string id="726">Canvis no guardats. Continuar sense guardar?</string>
   <string id="727">Servidor Web</string>
   <string id="728">Servidor FTP</string>
-  <string id="729">Servidors Horaris de Internet</string>
-  <string id="730">- Port Servidor Web</string>
-  <string id="731">- Adreça Servidor Horari</string>
-  <string id="732">Guardar i Aplicar</string>
-  <string id="733">- Password del Servidor Web</string>
-  <string id="734">Sense PW</string>
-  <string id="735">Caràcters</string>
+  <string id="730">- Port</string>
+  <string id="732">Desa i aplica</string>
+  <string id="733">- Contrasenya</string>
+  <string id="734">Sense contrasenya</string>
+  <string id="735">- Joc de caràcters</string>
   <string id="736">- Estil</string>
   <string id="737">- Color</string>
   <string id="738">Normal</string>
   <string id="749">Afegir Recurs Compartit</string>
   <string id="750">Estas segur?</string>
   <string id="751">Eliminant Recurs Compartit</string>
-  <string id="752">Editar Ruta del Recurs Compartit</string>
-  <string id="753">Editar Nom Recurs Compartit</string>
   <string id="754">Afegir link del programa</string>
   <string id="755">Editar ruta del programa</string>
   <string id="756">Editar nom del programa</string>
   <string id="757">Editar profunditat de la ruta</string>
-  <string id="758">Borrant ruta del programa</string>
   <string id="759">Veure: Llista Gran</string>
   <string id="760">Groc</string>
   <string id="761">Blanc</string>
   <string id="762">Blau</string>
   <string id="763">Verd Brillant</string>
   <string id="764">Groc Verd</string>
-  <string id="765">cian</string>
-  <string id="766">Reservat</string>
-  <string id="767">Reservat</string>
-  <string id="768">Reservat</string>
-  <string id="769">Reservat</string>
+  <string id="765">Cian</string>
+  <string id="766">Gris clar</string>
+  <string id="767">Gris</string>
   <string id="770">Error %i: ruta no disponible</string>
-  <string id="771">- Limitador Auto Fatx</string>
-  <string id="772">Hardware d'Àudio</string>
+  <string id="772">Sortida d'àudio</string>
   <string id="773">Buscant</string>
   <string id="774">Carpeta Diapositives</string>
-  <string id="998">XLink KAI</string>
-  <string id="999">Joc Online</string>
-  <string id="1000">Previsualitza Salvapantalles</string>
-  <string id="1001">Impossible connectar</string>
+  <string id="775">Interfície de xarxa</string>
+  <string id="776">- Nom de la xarxa inalàmbrica (ESSID)</string>
+  <string id="777">- Contrasenya</string>
+  <string id="778">- Tipus de seguretat</string>
+  <string id="780">Sense encriptar</string>
+  <string id="781">WEP</string>
+  <string id="782">WPA</string>
+  <string id="783">WPA2</string>
+  <string id="784">Aplicant la configuració de la interfície de xarxa. Espereu.</string>
+  <string id="785">Interfície de xarxa reiniciada correctament.</string>
+  <string id="786">La interfície de xarxa no s'ha iniciat correctament.</string>
+  <string id="787">Interfície desactivada</string>
+  <string id="789">Nom de la xarxa inalàmbrica (ESSID)</string>
+  <string id="792">Port</string>
+  <string id="793">Rang de ports</string>
+  <string id="798">Accés a internet</string>
+  <string id="850">El número de port no és vàlid</string>
+  <string id="851">El rang de ports vàlid és 1-65535</string>
+  <string id="852">El rang de ports vàlid és 1024-65535</string>
+  <string id="998">Afegeix música...</string>
+  <string id="999">Afegeix vídeos...</string>
+  <string id="1000">- Previsualitza</string>
+  <string id="1001">No s'ha pogut connectar</string>
   <string id="1002">XBMC no pot connectarse a la localització de la xarxa</string>
   <string id="1003">Això pot ser degut a que la xarxa no está connectada</string>
   <string id="1004">Vols afegir-ho igualment?</string>
-  <string id="1005">Entra un nom per aquest recurs</string>
   <string id="1006">Adreça IP</string>
   <string id="1007">Afegeix localització de xarxa</string>
   <string id="1008">Protocol</string>
-  <string id="1009">Adreça del Servidor</string>
+  <string id="1009">Adreça del servidor</string>
   <string id="1010">Nom del Servidor</string>
   <string id="1011">Ruta remota</string>
   <string id="1012">Directori compartit</string>
   <string id="1017">Entra la ruta del servidor</string>
   <string id="1018">Entra el número de port</string>
   <string id="1019">Entra el nom d'usuari</string>
-  <string id="1020">Afegeix %s Font</string>
+  <string id="1020">Afegeix %s font</string>
   <string id="1021">Entra la ruta o navega per les localitzacions</string>
   <string id="1022">Entra un nom per aquest recurs multimedia</string>
   <string id="1023">Navega per a un nou recurs</string>
   <string id="1030">una imatge</string>
   <string id="1031">un directori d'imatge</string>
   <string id="1032">Afegeix una localització de xarxa...</string>
+  <string id="1034">Submenú</string>
+  <string id="1047">Altres...</string>
+  <string id="1048">- Nom d'usuari</string>
   <string id="1200">Client SMB</string>
   <string id="1202">Grup de treball</string>
   <string id="1203">Usuari per defecte</string>
   <string id="1204">Contrasenya per defecte</string>
   <string id="1207">Servidor WINS</string>
+  <string id="1208">Munta recurs compartit SMB</string>
   <string id="1210">Elimina</string>
-  <string id="1211">Musica</string>
+  <string id="1211">Música</string>
   <string id="1212">Vídeo</string>
   <string id="1213">Fotos</string>
   <string id="1214">Arxius</string>
-  <string id="1215">Música i Vídeo</string>
-  <string id="1216">Música i Fotos</string>
-  <string id="1217">Música i Arxius</string>
-  <string id="1218">Vídeo i Fotos</string>
-  <string id="1219">Vídeo i Arxius</string>
-  <string id="1220">Fotos i Arxius</string>
+  <string id="1215">Música i vídeo</string>
+  <string id="1216">Música i fotos</string>
+  <string id="1217">Música i arxius</string>
+  <string id="1218">Vídeo i fotos</string>
+  <string id="1219">Vídeo i arxius</string>
+  <string id="1220">Fotos i arxius</string>
   <string id="1221">Música, Vídeo i Fotos</string>
   <string id="1222">Música, Vídeo, Fotos i Arxius</string>
   <string id="1223">Desactivat</string>
   <string id="1233">Programes, Vídeo i Música</string>
   <string id="1234">Programes, Fotos i Música</string>
   <string id="1235">Programes, Fotos i Vídeo</string>
-  <string id="1245">Nom d'usuari FTP</string>
-  <string id="1246">Contrasenya usuari FTP</string>
-  <string id="1247">Contrasenya FTP enmagatzemada correctament</string>
   <string id="1250">Autodetecció</string>
   <string id="1251">Autodetecció d'XBOX</string>
-  <string id="1252">Nom de pila (nick)</string>
-  <string id="1253">Crea un link FTP als meus arxius</string>
+  <string id="1252">Sobrenom (nick)</string>
   <string id="1254">Pregunta al connectar</string>
   <string id="1255">Envia usuari i contrasenya FTP</string>
   <string id="1256">Interval de Ping</string>
   <string id="2050">Durada:</string>
   <string id="4501">Tipus de LCD</string>
   <string id="10000">Inici</string>
-  <string id="10001">Els Meus Programes</string>
-  <string id="10002">Les Meves Imatges</string>
-  <string id="10003">Els Meus Arxius</string>
+  <string id="10001">Programes</string>
+  <string id="10002">Imatges</string>
+  <string id="10003">Gestor de fitxers</string>
   <string id="10004">Ajustaments</string>
-  <string id="10005">La Meva Música</string>
-  <string id="10006">Els Meus Videos</string>
+  <string id="10005">Música</string>
+  <string id="10006">Videos</string>
   <string id="10007">Informació del sistema</string>
-  <string id="10008">Opcions-&gt;General</string>
-  <string id="10009">Opcions-&gt;Pantalla</string>
-  <string id="10010">Opcions-&gt;Aparença-&gt;Calibració UI</string>
-  <string id="10011">Opcions-&gt;Vídeos-&gt;Calibració de Pantalla</string>
-  <string id="10012">Opcions-&gt;Fotos</string>
-  <string id="10013">Opcions-&gt;Programes</string>
-  <string id="10014">Opcions-&gt;El Temps</string>
-  <string id="10015">Opcions-&gt;Música</string>
-  <string id="10016">Opcions-&gt;Sistema</string>
-  <string id="10017">Opcions-&gt;Vídeos</string>
-  <string id="10018">Opcions-&gt;Xarxa</string>
-  <string id="10019">Opcions-&gt;Aparença</string>
+  <string id="10008">Opcions - General</string>
+  <string id="10009">Opcions - Pantalla</string>
+  <string id="10010">Opcions - Aparença - Calibració UI</string>
+  <string id="10011">Opcions - Vídeos - Calibració de Pantalla</string>
+  <string id="10012">Opcions - Imatges</string>
+  <string id="10013">Opcions - Programes</string>
+  <string id="10014">Opcions - El Temps</string>
+  <string id="10015">Opcions - Música</string>
+  <string id="10016">Opcions - Sistema</string>
+  <string id="10017">Opcions - Vídeos</string>
+  <string id="10018">Opcions - Xarxa</string>
+  <string id="10019">Opcions - Aparença</string>
   <string id="10020">Scripts</string>
-  <string id="10021">Els Meus Videos/gènere</string>
-  <string id="10022">Els Meus Videos/actors</string>
-  <string id="10023">Els Meus Videos/any</string>
-  <string id="10025">Els Meus Videos/títol</string>
-  <string id="10028">Els Meus Videos/playlist</string>
-  <string id="10034">Opcions-&gt;Perfils</string>
-  <string id="10100">Si/no diàleg</string>
+  <string id="10021">Navegador web</string>
+  <string id="10028">Videos/Llista de reproducció</string>
+  <string id="10034">Opcions - Perfils</string>
+  <string id="10100">Sí/No diàleg</string>
   <string id="10101">Progrés del diàleg</string>
-  <string id="10500">La Meva Música/Playlist</string>
-  <string id="10501">La Meva Música/Arxius</string>
-  <string id="10502">La Meva Música/Llibreria</string>
-  <string id="10503">La Meva Música/Top 100</string>
-  <string id="10504">Top 100 Cançons</string>
-  <string id="10505">Top 100 Ã\80lbums</string>
-  <string id="10506">Els meus Programes</string>
+  <string id="10500">Música/Llista de reproducció</string>
+  <string id="10501">Música/Arxius</string>
+  <string id="10502">Música/Biblioteca</string>
+  <string id="10503">Editor de llista de reproducció</string>
+  <string id="10504">Top 100 cançons</string>
+  <string id="10505">Top 100 Ã lbums</string>
+  <string id="10506">Programes</string>
   <string id="10507">Configuració</string>
   <string id="10508">Pronòstic del temps</string>
   <string id="10509">Joc en xarxa</string>
   <string id="10510">Extensions</string>
   <string id="10511">Informació del Sistema</string>
-  <string id="10512">Música - Àlbums</string>
-  <string id="10513">Música - Artistes</string>
-  <string id="10514">Música - Gènere</string>
-  <string id="10515">Música - Top 100</string>
   <string id="10516">Música - Llibreria</string>
   <string id="10517">Música - Reproduïnt</string>
-  <string id="10518">Vídeo - Actors</string>
-  <string id="10519">Vídeo - Gèneres</string>
-  <string id="10520">Vídeo - Títol</string>
-  <string id="10521">Vídeo - Any</string>
   <string id="10522">Vídeo - Reproduïnt</string>
   <string id="10523">Info d'àlbum</string>
   <string id="10524">Info de la pel·lícula</string>
   <string id="12000">Seleccionar diàleg</string>
-  <string id="12001">La Meva Música/info</string>
+  <string id="12001">Música/Info</string>
   <string id="12002">Diàleg OK</string>
-  <string id="12003">Els Meus Videos/Info</string>
-  <string id="12004">Les Meves Scripts/Info</string>
+  <string id="12003">Videos/Info</string>
+  <string id="12004">Scripts/Info</string>
   <string id="12005">Pantalla completa</string>
   <string id="12006">Visualitzacions d'àudio</string>
-  <string id="12007">Les Meves Imatges/Diapositives</string>
   <string id="12008">Diàleg Apilar Fitxers</string>
   <string id="12009">Reconstruïr índex...</string>
   <string id="12010">Tornar a la meva Música</string>
   <string id="12011">Tornar als meus Vídeos</string>
-  <string id="12012">Actualitça llista de Trainers</string>
-  <string id="12013">Trainer</string>
-  <string id="12014">No s'han trobat Trainers</string>
-  <string id="12015">Opcions del Trainer</string>
-  <string id="12016">Trainer registrats perduts. Actualitza primer.</string>
-  <string id="12017">Autocontinua desde la darrera posició</string>
-  <string id="12018">No</string>
-  <string id="12019">Sí</string>
-  <string id="12020">Pregunta</string>
   <string id="12021">Comença des del principi</string>
-  <string id="12022">Continua desde la darrera posició</string>
+  <string id="12022">Continua desde %s</string>
   <string id="12310">0</string>
   <string id="12311">1</string>
   <string id="12312">2</string>
   <string id="12344">Les contrasenyes no son iguals.</string>
   <string id="12345">Accès Denegat</string>
   <string id="12346">S'ha excedit el limit d'intents.</string>
-  <string id="12347">La XBOX s'apagarà ara.</string>
+  <string id="12347">El sistema s'apagarà ara.</string>
   <string id="12348">Ítem Bloquejat</string>
   <string id="12353">Reactiva Bloqueig</string>
   <string id="12356">Canvia Bloqueig</string>
   <string id="12377">Això borrarà qualsevol valor enmagatzemat anterior</string>
   <string id="12378">Mostra cada imatge per</string>
   <string id="12379">Utilitza efectes Pan i Zoom</string>
-  <string id="12380">Reprodueix vídeos NTSC en modes PAL</string>
-  <string id="12381">Reprodueix vídeos PAL en modes NTSC</string>
-  <string id="12382">Reprodueix vídeos NTSC en PAL60</string>
   <string id="12383">format 12 hores</string>
   <string id="12384">format 24 hores</string>
   <string id="12385">Dia/Mes</string>
   <string id="12386">Mes/Dia</string>
-  <string id="12387">Rellegeix Base de Dades</string>
   <string id="12390">Actiu des de</string>
-  <string id="12391">Minuts</string>
-  <string id="12392">Hores</string>
-  <string id="12393">Dies</string>
+  <string id="12391">minuts</string>
+  <string id="12392">hores</string>
+  <string id="12393">dies</string>
   <string id="12394">Temps encès total</string>
   <string id="12600">El Temps</string>
   <string id="12900">Salvapantalles</string>
   <string id="13003">- Retràs</string>
   <string id="13004">- Duració mínima del arxiu</string>
   <string id="13005">Apagar</string>
-  <string id="13006">Dashboard</string>
+  <string id="13009">Surt</string>
+  <string id="13010">Hiberna</string>
+  <string id="13011">Suspen</string>
+  <string id="13012">Surt</string>
+  <string id="13013">Reinicia</string>
+  <string id="13014">Minimitza</string>
   <string id="13100">Filtre anti-vibració</string>
-  <string id="13150">Clau HDD:</string>
-  <string id="13151">Temp. HDD:</string>
-  <string id="13152">Model DVD:</string>
-  <string id="13153">Firmware DVD:</string>
-  <string id="13154">Model HDD:</string>
-  <string id="13155">Serial HDD:</string>
-  <string id="13156">Firmware HDD:</string>
-  <string id="13157">Contrasenya HDD:</string>
-  <string id="13158">Estat bloqueig HDD:</string>
-  <string id="13159">Màscara de subxarxa:</string>
-  <string id="13160">Porta d'enllaç:</string>
-  <string id="13161">DNS</string>
+  <string id="13159">Màscara de subxarxa</string>
+  <string id="13160">Porta d'enllaç</string>
+  <string id="13161">DNS primari</string>
   <string id="13162">Inici fallat</string>
-  <string id="13163">GamePads al port:</string>
-  <string id="13164">Teclat al port:</string>
-  <string id="13165">Ratolí al port: </string>
-  <string id="13166">Cascos/Micro al port:</string>
-  <string id="13167">MemoryStick al port:</string>
-  <string id="13168">IR-Remote al port:</string>
   <string id="13170">Mai</string>
   <string id="13171">Inmediatament</string>
-  <string id="13172">Després %i segons</string>
+  <string id="13172">Després de %i segons</string>
   <string id="13200">Perfils</string>
   <string id="13201">Borrar perfil '%s'?</string>
   <string id="13204">Darrer Perfil carregat:</string>
   <string id="13209">Interval d'alarma (en minuts)</string>
   <string id="13210">Iniciada, alarma en %im</string>
   <string id="13211">Alarma!</string>
-  <string id="13212">Cancel·lat amb %im%està fora</string>
+  <string id="13212">Cancel·lat quan quedava %im%is</string>
   <string id="13249">Buscar subtítols als RARs</string>
   <string id="13250">Navegar per als subtítols...</string>
   <string id="13251">Moure ítem</string>
   <string id="13252">Moure ítem aquí</string>
   <string id="13253">Cancel·lar moviment</string>
   <string id="13270">Hardware:</string>
-  <string id="13271">Velocitat CPU:</string>
+  <string id="13271">Ús CPU:</string>
   <string id="13274">Xbox connectada, pero no disponible DNS</string>
   <string id="13275">Disc Dur</string>
   <string id="13276">DVD-ROM</string>
   <string id="13279">Xarxa</string>
   <string id="13280">Vídeo</string>
   <string id="13281">Hardware</string>
-  <string id="13282">_</string>
   <string id="13283">Versió del Kernel:</string>
   <string id="13284">Velocitat CPU:</string>
-  <string id="13285">BIOS detectada:</string>
   <string id="13286">Codificador de vídeo:</string>
   <string id="13287">Resolució de pantalla:</string>
-  <string id="13288">Xbox Version:</string>
-  <string id="13289">Xbox Serial Number:</string>
-  <string id="13290">Fabricant XBOX:</string>
-  <string id="13291">ModChip:</string>
   <string id="13292">Cable A/V:</string>
-  <string id="13293">Regió Video &amp; XBE</string>
   <string id="13294">Regió DVD:</string>
   <string id="13295">Internet:</string>
-  <string id="13296">Xbox no està connectada.</string>
-  <string id="13297">Xbox no està connectada. Comprova opcions de xarxa.</string>
-  <string id="13298">Clau XBLIVE:</string>
+  <string id="13296">Connectat</string>
+  <string id="13297">No connectat. Comprova opcions de xarxa.</string>
   <string id="13299">Temperatura màxima</string>
   <string id="13300">Vel. del Ventilador:</string>
   <string id="13301">Autocontrol de temperatura</string>
   <string id="13302">Control Vel. Ventilador</string>
-  <string id="13303">Font de la Pell (Skin)</string>
+  <string id="13303">- Fonts</string>
   <string id="13304">Permetre moure a la vegada sequències bidireccionals</string>
   <string id="13305">Activar informació RSS</string>
   <string id="13306">Ocultar la icona de pujar la carpeta</string>
   <string id="13320">Estèreo</string>
   <string id="13321">Només esquerre</string>
   <string id="13322">Només dret</string>
-  <string id="13323">Activar CD+G</string>
+  <string id="13323">Activar suport per karaoke</string>
   <string id="13324">Translucidesa del Fons</string>
   <string id="13325">Translucidesa del Primer Pla</string>
   <string id="13326">Retras A/V</string>
   <string id="13334">Editar etiqueta</string>
   <string id="13335">Crear per defecte</string>
   <string id="13336">Borrar botó</string>
-  <string id="13338">LED frontal</string>
-  <string id="13339">Color del LED frontal</string>
   <string id="13340">Deixar-ho com està</string>
   <string id="13341">Verd</string>
   <string id="13342">Taronja</string>
   <string id="13347">Possar objecte a la cua</string>
   <string id="13348">Cercar a IMDB...</string>
   <string id="13349">Cercar info de tot</string>
-  <string id="13350">Reproduir ara...</string>
+  <string id="13350">Reproduint ara...</string>
   <string id="13351">Info del àlbum</string>
   <string id="13352">Explorar en Base Dades</string>
-  <string id="13353">Detenir l'exploració</string>
+  <string id="13353">Atura l'exploració</string>
   <string id="13354">Mètode Rende</string>
   <string id="13355">Pixel Shader</string>
   <string id="13356">YUY2 Overlays</string>
@@ -949,7 +965,7 @@ per aquesta visulització</string>
   <string id="13395">Opcions de vídeo</string>
   <string id="13396">Opcions d'àudio i vídeo</string>
   <string id="13397">Activar subtítols</string>
-  <string id="13398">Marques</string>
+  <string id="13398">Drecera</string>
   <string id="13399">Ignorar "The" al ordenar</string>
   <string id="13400">Barrejar pistes d'àlbums</string>
   <string id="13401">Navegar per %s</string>
@@ -957,14 +973,20 @@ per aquesta visulització</string>
   <string id="13403">Borra per defecte</string>
   <string id="13404">Continuar</string>
   <string id="13405">Obté miniatura</string>
+  <string id="13413">Descarregant</string>
+  <string id="13506">Baix(ràpid)</string>
+  <string id="13507">Mig</string>
+  <string id="13508">Alt</string>
+  <string id="13509">Molt alt(lent!)</string>
+  <string id="13552">%.1f Segon</string>
+  <string id="13553">%.1f Segons</string>
   <string id="14000">Agrupar</string>
-  <string id="14001">No agrupar</string>
+  <string id="14001">Desagrupar</string>
   <string id="14003">Descarregant fitxer de listes...</string>
   <string id="14004">Descarregant llista de streams...</string>
   <string id="14005">Analitzant llista de streams...</string>
   <string id="14006">La descarrega de la llista de streams ha fallat</string>
   <string id="14007">La descarrega del fitxer de llistes ha fallat</string>
-  <string id="14008">Activar notificacions Kai</string>
   <string id="14009">Directori de Jocs</string>
   <string id="14010">Autoconmutar les caràtules basant-se en</string>
   <string id="14011">Activar Autoconmutació en les vistes de caràtules</string>
@@ -982,21 +1004,19 @@ per aquesta visulització</string>
   <string id="14023">Sense TV</string>
   <string id="14024">Escrigui la ciutat més propera o el codi ZIP de USA</string>
   <string id="14025">Video/Audio/DVD Cache - Disc Dur</string>
-  <string id="14026">  - Video Cache - DVDRom</string>
-  <string id="14027">              - Xarxa Local</string>
-  <string id="14028">              - Internet</string>
-  <string id="14030">  - Audio Cache - DVDRom</string>
-  <string id="14031">              - Xarxa Local</string>
-  <string id="14032">              - Internet</string>
-  <string id="14034">  - DVD Cache - DVDRom</string>
-  <string id="14035">              - Xarxa Local</string>
-  <string id="14036">Servidors</string>
-  <string id="14037">Aparença</string>
+  <string id="14026">Video Cache - DVD-ROM</string>
+  <string id="14027">- Xarxa Local</string>
+  <string id="14028">- Internet</string>
+  <string id="14030">Audio Cache - DVD-ROM</string>
+  <string id="14031">- Xarxa Local</string>
+  <string id="14032">- Internet</string>
+  <string id="14034">- DVD cache - DVD-ROM</string>
+  <string id="14035">- Xarxa Local</string>
+  <string id="14036">Serveis</string>
   <string id="14038">Configuració de Xarxa canviada</string>
   <string id="14039">XBMC requereix reiniciar-se per a poder canviar la seva</string>
   <string id="14040">configuració de xarxa.  Desitja reiniciar ara?</string>
   <string id="14041">Postprocesat</string>
-  <string id="14042">Adreça IP del motor</string>
   <string id="14043">- Apagar encara que estigui reproduint</string>
   <string id="14044">%i mins</string>
   <string id="14045">%i segs</string>
@@ -1008,7 +1028,6 @@ per aquesta visulització</string>
   <string id="14051">Veure el rellotge en format 12 hores</string>
   <string id="14052">Invertir mes i dia en el menú principal</string>
   <string id="14053">Filtres GUI</string>
-  <string id="14054">Activar cerca a Internet</string>
   <string id="14055">Emprar exploració oculta</string>
   <string id="14056">Aturar l'exploració</string>
   <string id="14057">No es possible mentre s'explorar la informació dels medis</string>
@@ -1026,77 +1045,24 @@ per aquesta visulització</string>
   <string id="14069">Aplicar canvis?</string>
   <string id="14070">Aplicar canvis</string>
   <string id="14071">Permetre renombrar i borrar arxius</string>
-  <string id="14072">Activar XLink Kai</string>
-  <string id="14073">XLink Kai desactivat</string>
-  <string id="15000">XLink Kai</string>
-  <string id="15001">Servei no connectat</string>
-  <string id="15002">Intentar reconnectar?</string>
-  <string id="15003">Entra el teu missatge</string>
-  <string id="15004">Invitat a jugar %s.</string>
-  <string id="15005">Data: %s</string>
-  <string id="15006">De: %s</string>
-  <string id="15007">Invitació</string>
-  <string id="15008">Invitat a unir-se a  %s.</string>
-  <string id="15009">Desconnectat</string>
-  <string id="15010">Amics</string>
-  <string id="15011">Veure: Amics</string>
-  <string id="15012">Unir-se</string>
-  <string id="15013">Veu</string>
-  <string id="15014">Invitar</string>
+  <string id="14074">Establir zona horaria</string>
+  <string id="14076">Afegeix a preferits</string>
+  <string id="14077">Elimina de preferits</string>
+  <string id="14078">- Colors</string>
+  <string id="14080">Zona horaria</string>
+  <string id="14087">DVDs</string>
+  <string id="14090">Internacional</string>
+  <string id="14093">Seguretat</string>
   <string id="15015">Treure</string>
   <string id="15016">Jocs</string>
-  <string id="15017">Veure: Jocs</string>
-  <string id="15018">Entrar</string>
   <string id="15019">Afegir</string>
-  <string id="15020">Host</string>
-  <string id="15021">Arenas</string>
-  <string id="15022">Veure: Arenas</string>
-  <string id="15023">Jugar</string>
-  <string id="15024">Afegir</string>
-  <string id="15025">Host</string>
-  <string id="15026">Xat</string>
-  <string id="15027">Veure: Xat</string>
-  <string id="15028">Teclat</string>
-  <string id="15029">Es requereix contrasenya per unir-se</string>
-  <string id="15030">Servei desconnectat</string>
-  <string id="15031">Autenticació XLink Kai</string>
-  <string id="15032">Usuario i contrasenya rebutjades per el</string>
-  <string id="15033">servidor orbital. Verifica la configuració</string>
-  <string id="15034">ha entrat</string>
-  <string id="15035">ha iniciat un xat de veu</string>
-  <string id="15036">t'ha enviat una invitació</string>
-  <string id="15037">XBMC no es capaç de confirmar si la xarxa està disponible</string>
-  <string id="15038">Pots experimentar dificultats unin-te o fent de servidor de jocs.</string>
-  <string id="15039">XBMC es incapaç de localitzar el joc automaticament.</string>
-  <string id="15040">Inserta el DVD del joc a l'XBOX o prem 'A' per cancel·lar</string>
-  <string id="15041">i llença el joc manualment.</string>
-  <string id="15042">Accès denegat</string>
-  <string id="15043">%s s'uneix al xat.</string>
-  <string id="15044">%s surt del xat.</string>
-  <string id="15045">Entra el teu missatge personal</string>
-  <string id="15046">Arena Actual</string>
-  <string id="15047">Entra una contrasenya per a la teva arena</string>
-  <string id="15048">Entra una descripció per a la teva arena</string>
-  <string id="15049">Servir un joc (Host Game)</string>
-  <string id="15050">Servi un joc en arena privada</string>
-  <string id="15051">Limit de jugadors</string>
   <string id="15052">Contrasenya</string>
-  <string id="15053">Descripció</string>
-  <string id="15054">Diàleg Invitació</string>
-  <string id="15055">Escull joc:</string>
-  <string id="15056">Entra msg:</string>
-  <string id="15057">Envia</string>
-  <string id="15058">Host</string>
-  <string id="15059">Invitació acceptada!</string>
-  <string id="15060">Missatge aquí:</string>
-  <string id="15061">Has invitat a jugar  %s.</string>
   <string id="15100">Llibreria</string>
   <string id="15101">Base de dades</string>
   <string id="15102">* Tots els Àlbums</string>
   <string id="15103">* Tots els Artistes</string>
   <string id="15104">* Totes les Cançons</string>
   <string id="15105">* Tots els Gèneres</string>
-  <string id="15106">Recorda fitxers seleccionats en navegació futura</string>
   <string id="15107">Buffering...</string>
   <string id="15108">Sons de navegació</string>
   <string id="15109">Pell per defecte</string>
@@ -1118,11 +1084,14 @@ per aquesta visulització</string>
   <string id="15213">Reproduïnt usant...</string>
   <string id="15214">Utilitza Sincronització A/V suau</string>
   <string id="15215">Oculta noms de fitxers en vista miniatures</string>
-  <string id="15250">Envia Last.FM Radio to Last.FM</string>
-  <string id="15251">Connectant a Last.FM...</string>
-  <string id="15252">Buscant emissores...</string>
+  <string id="15218">Usuari Libre.fm</string>
+  <string id="15219">Contrasenya Libre.fm</string>
+  <string id="15220">Libre.fm</string>
+  <string id="15250">Envia radio Last.fm a Last.fm</string>
+  <string id="15251">Connectant a Last.fm...</string>
+  <string id="15252">Seleccionant emissora...</string>
   <string id="15253">Buscant artistes similars...</string>
-  <string id="15254">Buscant etiquetes similars.</string>
+  <string id="15254">Buscant etiquetes similars...</string>
   <string id="15255">Perfil (%name%)</string>
   <string id="15256">Etiquetes globals</string>
   <string id="15257">Artistes Top per etiqueta %name%</string>
@@ -1153,19 +1122,19 @@ per aquesta visulització</string>
   <string id="15282">Entra una etiqueta per trobar-ne de similars</string>
   <string id="15283">Pistes recentment escoltades per %name%</string>
   <string id="15300">Ruta no trobada o invàl·lida</string>
-  <string id="15301">No puc connectar al servidor</string>
-  <string id="15302">No es troben servidors</string>
-  <string id="15303">Grup de treball no es troba</string>
+  <string id="15301">No puc connectar al servidor de xarxa</string>
+  <string id="15302">No hi ha servidors</string>
+  <string id="15303">Grup de treball no trobat</string>
   <string id="15310">Obrint marcador multi-ruta</string>
   <string id="15311">Ruta:</string>
   <string id="16000">General</string>
-  <string id="16001">Configurar hardware audio</string>
-  <string id="16002">Búsqueda CDDB</string>
+  <string id="16002">Cerca a Internet</string>
   <string id="16003">Reproductor</string>
   <string id="16004">Reproduïr des del disc</string>
-  <string id="16009">Entra el nom de la Pel·lícula</string>
-  <string id="16010">Entra el Nom del Perfil</string>
-  <string id="16011">Entra el Nom del Àlbum</string>
+  <string id="16008">Entra el nou títol</string>
+  <string id="16009">Entra el nom de la pel·lícula</string>
+  <string id="16010">Entra el nom del perfil</string>
+  <string id="16011">Entra el nom de l'àlbum</string>
   <string id="16012">Entra el nom de la Llista</string>
   <string id="16013">Entra el nom del nou fitxer</string>
   <string id="16014">Entra el nom de la carpeta</string>
@@ -1176,12 +1145,12 @@ per aquesta visulització</string>
   <string id="16019">Auto Selecció</string>
   <string id="16020">Desentrellaçat</string>
   <string id="16021">Bob</string>
-  <string id="16022">Bob (Invertit)</string>
+  <string id="16022">Bob (invertit)</string>
   <string id="16023">Manejador Entrellaçat</string>
-  <string id="16024">Cancel·lant</string>
+  <string id="16024">Cancel·lant...</string>
   <string id="16025">Entra el Nom de l'Artista</string>
   <string id="16026">Llista de reproducció abortada</string>
-  <string id="16027">Masses items fallats consecutius</string>
+  <string id="16027">Un o més ítems no s'han pogut reproduir.</string>
   <string id="16030">Mode Party abortat</string>
   <string id="16031">Sense cançons coincidents en BD</string>
   <string id="16032">No puc inicialitzar BD</string>
@@ -1193,22 +1162,18 @@ per aquesta visulització</string>
   <string id="16103">Marca'l Vist</string>
   <string id="16104">Marca'l Per Veure</string>
   <string id="16105">Edita el Títol</string>
-  <string id="16106">Utilitza NTSC-M &amp; NTSC-J</string>
-  <string id="16107">Utilitza només NTSC-M</string>
-  <string id="16108">Utilitza només NTSC-J</string>
-  <string id="16109">Utilitza només PAL-60</string>
-  <string id="16110">Per Jocs a 60hz </string>
-  <string id="20000">Directori CDDA Rip</string>
+  <string id="16200">Operació cancel·lada</string>
+  <string id="16310">Temporal</string>
+  <string id="16311">Temporal/Espacial</string>
+  <string id="20000">Directori de música desada</string>
   <string id="20001">Utilitza reproductor de DVD extern</string>
   <string id="20002">Reproductor de DVD extern</string>
   <string id="20003">Directori de Trainers</string>
-  <string id="20004">Directori de Captures</string>
-  <string id="20005">Directori de Grabacions</string>
+  <string id="20004">Directori de captures</string>
   <string id="20006">Directori de Llistes</string>
   <string id="20007">Grabacions</string>
   <string id="20008">Captures</string>
   <string id="20009">Utilitza XBMC</string>
-  <string id="20010">Imatges d'artistes</string>
   <string id="20011">Llistes de Música</string>
   <string id="20012">Llistes de Vídeo</string>
   <string id="20013">Vols executar el joc?</string>
@@ -1218,8 +1183,6 @@ per aquesta visulització</string>
   <string id="20017">Miniatura Local</string>
   <string id="20018">Sense miniatura</string>
   <string id="20019">Escull miniatura</string>
-  <string id="20020">No puc usar KAI i trainers alhora</string>
-  <string id="20021">Escull que vols usar</string>
   <string id="20023">Conflicte</string>
   <string id="20024">Busca nou</string>
   <string id="20025">Busca tot</string>
@@ -1242,7 +1205,6 @@ per aquesta visulització</string>
   <string id="20053">Mode mestre esquerra</string>
   <string id="20054">Entra el mode mestre</string>
   <string id="20055">Miniatura Allmusic.com</string>
-  <string id="20056">Font de la +miniatura</string>
   <string id="20057">Esborra miniatura</string>
   <string id="20058">Afegeix perfil...</string>
   <string id="20059">Pregunta info per tots els àlbums</string>
@@ -1260,7 +1222,7 @@ per aquesta visulització</string>
   <string id="20071">Comença amb recursos multimedia a cero </string>
   <string id="20072">Assegurar-se que el directori seleccionat es pot escriure</string>
   <string id="20073">i el nou nom de directori és vàlid</string>
-  <string id="20074">Qualifiació MPAA:</string>
+  <string id="20074">Qualifiació MPAA</string>
   <string id="20075">Entra el codi mestre de bloqueig</string>
   <string id="20076">Preguntar pel codi mestre al iniciar</string>
   <string id="20077">Opcions de la Pell (Skin)</string>
@@ -1269,12 +1231,12 @@ per aquesta visulització</string>
   <string id="20080">Desactiva RSS durant la Música</string>
   <string id="20081">Activa Butons de marcadors</string>
   <string id="20082">Mostra info de XLink Kai</string>
-  <string id="20083">Mostra info de Música</string>
-  <string id="20084">Mostra info del Temps</string>
+  <string id="20083">Mostra info de música</string>
+  <string id="20084">Mostra info del temps</string>
   <string id="20085">Mostra info del sistema</string>
   <string id="20086">Mostra espai disponible C: E: F:</string>
   <string id="20087">Mostra espai disponible E: F: G:</string>
-  <string id="20088">Informació del Temps</string>
+  <string id="20088">Informació del temps</string>
   <string id="20089">Mostra espai lliure</string>
   <string id="20090">Entra el nom de un recurs compartit existent</string>
   <string id="20091">Bloqueja el codi</string>
@@ -1339,5 +1301,173 @@ per aquesta visulització</string>
   <string id="20151">Cancel·la temps d'apagada</string>
   <string id="20152">Bloqueja preferencies per %s</string>
   <string id="20153">Navega...</string>
-  <string id="29999">Filtre anti-parpalleig (AutoFlicker patch)</string>
-</strings>
\ No newline at end of file
+  <string id="20161">Total</string>
+  <string id="20162">Usat</string>
+  <string id="20163">de</string>
+  <string id="20171">Xarxa Windows (SMB)</string>
+  <string id="20172">Servidor XBMSP</string>
+  <string id="20173">Servidor FTP</string>
+  <string id="20175">Servidor UPnP</string>
+  <string id="20177">Fet</string>
+  <string id="20180">Símbols</string>
+  <string id="20181">Esborra</string>
+  <string id="20182">Espai</string>
+  <string id="20183">Recarrega pell</string>
+  <string id="20186">Espereu</string>
+  <string id="20253">Servidor WebDAV (HTTP)</string>
+  <string id="20254">Servidor WebDAV (HTTPS)</string>
+  <string id="20258">Client MythTV</string>
+  <string id="20300">Directori d'un servidor Web (HTTP)</string>
+  <string id="20301">Directori d'un servidor Web (HTTPS)</string>
+  <string id="20302">No s'ha pogut escriure al directori:</string>
+  <string id="20307">DNS secundari</string>
+  <string id="20308">Servidor DHCP:</string>
+  <string id="20309">Crear nou directori</string>
+  <string id="20314">Vídeos - Llibreria</string>
+  <string id="20316">Ordena per: ID</string>
+  <string id="20331">Fitxer</string>
+  <string id="20334">Carpeta</string>
+  <string id="20337">Actor</string>
+  <string id="20338">Pel·lícula</string>
+  <string id="20339">Director</string>
+  <string id="20342">Pel·lícules</string>
+  <string id="20343">Sèries de TV</string>
+  <string id="20348">Directors</string>
+  <string id="20350">vots</string>
+  <string id="20358">Temporada %i</string>
+  <string id="20359">Episodi</string>
+  <string id="20360">Episodis</string>
+  <string id="20364">Serie de TV</string>
+  <string id="20366">* Totes les temporades</string>
+  <string id="20367">Amaga els ja vistos</string>
+  <string id="20370">* Amagat per evitar spoilers *</string>
+  <string id="20372">Imatge de la temporada</string>
+  <string id="20373">Temporada</string>
+  <string id="20374">Descarregant informació de la pel·lícula</string>
+  <string id="20376">Títol original</string>
+  <string id="20381">Especials</string>
+  <string id="20420">Mai</string>
+  <string id="20421">Si només hi ha una temporada</string>
+  <string id="20422">Sempre</string>
+  <string id="20423">Té trailer</string>
+  <string id="20424">Fals</string>
+  <string id="20428">Un sol fitxer</string>
+  <string id="20429">Separat</string>
+  <string id="21378">Activa 480p</string>
+  <string id="21379">Activa 720p</string>
+  <string id="21380">Activa 1080i</string>
+  <string id="21385">Obre</string>
+  <string id="21387">Ràpid</string>
+  <string id="21388">Silenciós</string>
+  <string id="21396">Capítol</string>
+  <string id="21400">conté</string>
+  <string id="21401">no conté</string>
+  <string id="21402">és</string>
+  <string id="21403">no és</string>
+  <string id="21404">comença amb</string>
+  <string id="21405">acaba amb</string>
+  <string id="21406">més gran que</string>
+  <string id="21407">inferior a</string>
+  <string id="21408">després</string>
+  <string id="21409">abans</string>
+  <string id="21410">al final</string>
+  <string id="21411">no al final</string>
+  <string id="21418">Multi-llenguatge</string>
+  <string id="21423">Nova regla...</string>
+  <string id="21425">totes les regles</string>
+  <string id="21427">Limita a</string>
+  <string id="21428">Sense límit</string>
+  <string id="21429">Ordena per</string>
+  <string id="21430">ascendent</string>
+  <string id="21431">descendent</string>
+  <string id="21435">Edita</string>
+  <string id="21445">Còdec de video</string>
+  <string id="21446">Còdec d'àudio</string>
+  <string id="21447">Idioma de l'àudio</string>
+  <string id="21448">Idioma dels subtítols</string>
+  <string id="21450">- Edita</string>
+  <string id="21805">Resolució</string>
+  <string id="21806">Comentari</string>
+  <string id="21807">Color/Blanc i Negre</string>
+  <string id="21820">Data/Hora</string>
+  <string id="21821">Descripció</string>
+  <string id="21822">Fabricant de la càmara</string>
+  <string id="21823">Model de la càmara</string>
+  <string id="21824">Comentari EXIF</string>
+  <string id="21826">Obertura</string>
+  <string id="21827">Longitud focal</string>
+  <string id="21828">Distància focal</string>
+  <string id="21829">Exposició</string>
+  <string id="21830">Temps d'exposició</string>
+  <string id="21832">Mètode d'exposició</string>
+  <string id="21833">Es va utilitzar flash</string>
+  <string id="21834">Balanç de blancs</string>
+  <string id="21837">ISO</string>
+  <string id="21838">Zoom digital</string>
+  <string id="21840">Latitud GPS</string>
+  <string id="21841">Longitud GPS</string>
+  <string id="21842">Altitud GPS</string>
+  <string id="21843">Orientació</string>
+  <string id="21861">Paraules clau</string>
+  <string id="21863">Autor</string>
+  <string id="21865">Instruccions especials</string>
+  <string id="21866">Categoria</string>
+  <string id="21873">Ciutat</string>
+  <string id="21874">Estat</string>
+  <string id="21875">País</string>
+  <string id="21877">Data de creació</string>
+  <string id="21879">Codi de país</string>
+  <string id="22031">- Mida</string>
+  <string id="22032">- Colors</string>
+  <string id="22040">blanc/verd</string>
+  <string id="22041">blanc/vermell</string>
+  <string id="22042">blanc/blau</string>
+  <string id="22043">negre/blanc</string>
+  <string id="22080">Escull</string>
+  <string id="22082">Més...</string>
+  <string id="24012">Subtítols</string>
+  <string id="24013">Lletres</string>
+  <string id="24018">Serveis</string>
+  <string id="24020">Configura</string>
+  <string id="24021">Desactiva</string>
+  <string id="24022">Activa</string>
+  <string id="24037">Desinstal·la</string>
+  <string id="24038">Instal·la</string>
+  <string id="24051">Versió:</string>
+  <string id="24053">Llicència:</string>
+  <string id="24054">Canvis</string>
+  <string id="24068">Actualització disponible</string>
+  <string id="24069">Actualitza</string>
+  <string id="33006">Avui</string>
+  <string id="33007">Dem</string>
+  <string id="33012">Curt</string>
+  <string id="33013">Llarg</string>
+  <string id="33018">Aquesta nit</string>
+  <string id="33019">La pròxima nit</string>
+  <string id="33021">Precipitació</string>
+  <string id="33029">Detalls</string>
+  <string id="33049">Alerta</string>
+  <string id="33050">Alertes</string>
+  <string id="33053">Configura el</string>
+  <string id="33056">Mira</string>
+  <string id="33057">Escolta</string>
+  <string id="33059">Configura el</string>
+  <string id="33061">Menú</string>
+  <string id="33063">Opcions</string>
+  <string id="33072">Veure Llegeixme</string>
+  <string id="33073">Veure els canvis d'aquesta versió</string>
+  <string id="33078">Pàgina següent</string>
+  <string id="33079">M'agrada</string>
+  <string id="33080">L'odio</string>
+  <string id="34100">Configuració dels altaveus</string>
+  <string id="34101">2.0</string>
+  <string id="34102">2.1</string>
+  <string id="34103">3.0</string>
+  <string id="34104">3.1</string>
+  <string id="34105">4.0</string>
+  <string id="34106">4.1</string>
+  <string id="34107">5.0</string>
+  <string id="34108">5.1</string>
+  <string id="34109">7.0</string>
+  <string id="34110">7.1</string>
+</strings>
index e5ac419..1aeb898 100644 (file)
   <string id="62">joulu</string>
 
   <string id="71">Pohjoisesta</string>
-  <string id="72">Pohjoiskoillisesta</string>
+  <string id="72">Pohjoisen ja koillisen välistä</string>
   <string id="73">Koillisesta</string>
-  <string id="74">Itäkoillisesta</string>
+  <string id="74">Idän ja koillisen välistä</string>
   <string id="75">Idästä</string>
-  <string id="76">Itäkaakosta</string>
+  <string id="76">Idän ja kaakon välistä</string>
   <string id="77">Kaakosta</string>
-  <string id="78">Eteläkaakosta</string>
+  <string id="78">Etelän ja kaakon välistä</string>
   <string id="79">Etelästä</string>
-  <string id="80">Etelälounaasta</string>
-  <string id="81">Lounaaasta</string>
-  <string id="82">Länsilounaasta</string>
+  <string id="80">Etelän ja lounaan välistä</string>
+  <string id="81">Lounaasta</string>
+  <string id="82">Lännen ja lounaan välistä</string>
   <string id="83">Lännestä</string>
-  <string id="84">Länsiluoteesta</string>
+  <string id="84">Lännen ja luoteen välistä</string>
   <string id="85">Luoteesta</string>
-  <string id="86">Pohjoisluoteesta</string>
+  <string id="86">Pohjoisen ja luoteen välistä</string>
   <string id="87">Vaihteleva</string>
 
   <string id="98">Näytä: Autom.</string>
   <string id="241">Kokoruutu #%d</string>
   <string id="242">Ikkuna</string>
   <string id="243">Päivitysnopeus</string>
-  <string id="244">Kokonäyttö</string>
+  <string id="244">Kokoruutu</string>
   <string id="245">Mitoitus: (%i,%i)->(%i,%i) (Zoomaus x%2.2f) Kuvasuhde:%2.2f:1 (Pikselit: %2.2f:1) (Pystysiirto: %2.2f)</string>
 
   <string id="247">Skriptit</string>
   <string id="372">enimmäkseen</string>
   <string id="373">aurinkoista</string>
   <string id="374">pilvistä</string>
-  <string id="375">lunta</string>
-  <string id="376">sataa</string>
-  <string id="377">heikosti</string>
+  <string id="375">lumisadetta</string>
+  <string id="376">vesisadetta</string>
+  <string id="377">heikkoa</string>
   <string id="378">aamupäivällä</string>
   <string id="379">iltapäivällä</string>
   <string id="380">sadekuuroja</string>
   <string id="381">joitakin</string>
   <string id="382">hajanaisia</string>
-  <string id="383">tuulta</string>
+  <string id="383">tuulista</string>
   <string id="384">voimakasta</string>
   <string id="385">poutaa</string>
   <string id="386">selkeää</string>
   <string id="388">aamulla</string>
   <string id="389">sadekuuro</string>
   <string id="390">lumipyryä</string>
-  <string id="391">matala</string>
-  <string id="392">keskimääräinen</string>
-  <string id="393">korkea</string>
+  <string id="391">Matala</string>
+  <string id="392">Keskimääräinen</string>
+  <string id="393">Korkea</string>
   <string id="394">sumua</string>
   <string id="395">usvaa</string>
   <string id="396">Valitse sijainti</string>
   <string id="431">Ei välimuistia</string>
   <string id="432">Poista elokuva kirjastosta</string>
   <string id="433">Haluatko varmasti poistaa kohteen[CR]'%s'?</string>
-  <string id="434">%s nopeudella %i %s</string> <!--From <wind dir.> at <speed> <unit>-->
+  <string id="434">%s %i %s</string> <!--From <wind dir.> at <speed> <unit>-->
 
   <string id="437">Siirrettävä levy</string>
   <string id="438">Avataan tiedosto</string>
   <string id="1417">rakeita</string>
   <string id="1418">ukkosmyrskyjä</string>
   <string id="1419">ukkoskuuroja</string>
-  <string id="1420">keskimääräinen</string>
-  <string id="1421">erittäin kovaa</string>
+  <string id="1420">Kohtalainen</string>
+  <string id="1421">Hyvin voimakas</string>
   <string id="1422">tuulinen</string>
-  <string id="1423">sumua</string>
+  <string id="1423">utua</string>
 
   <!-- strings through to 1450 reserved for weather translation -->
 
diff --git a/lib/libXBMS/Makefile.in b/lib/libXBMS/Makefile.in
deleted file mode 100644 (file)
index 74b756a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-CFLAGS += -D_LINUX
-
-LIB=libxbms.a
-
-SRCS=ccbuffer.c ccutil.c ccxclient.c ccxclientconnxbox.c ccxdiscover.c ccxencode.c ccxmltrans.c
-
-include ../../Makefile.include
-
diff --git a/lib/libXBMS/ccbuffer.c b/lib/libXBMS/ccbuffer.c
deleted file mode 100644 (file)
index ae55d7f..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Buffer stuff.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#include "ccincludes.h"
-#include "ccbuffer.h"
-
-CcBuffer cc_buffer_allocate(void)
-{
-  CcBuffer buffer;
-
-  buffer = cc_xcalloc(1, sizeof (*buffer));
-  return buffer;
-}
-
-void cc_buffer_free(CcBuffer buffer)
-{
-  cc_buffer_uninit(buffer);
-  cc_xfree(buffer);
-}
-
-void cc_buffer_init(CcBuffer buffer)
-{
-  memset(buffer, 0, sizeof (*buffer));
-}
-
-void cc_buffer_uninit(CcBuffer buffer)
-{
-  if (buffer != NULL)
-    cc_xfree(buffer->data);
-  memset(buffer, 0, sizeof (*buffer));
-}
-
-size_t cc_buffer_len(CcBuffer buffer)
-{
-  return buffer->len;
-}
-
-unsigned char *cc_buffer_ptr(CcBuffer buffer)
-{
-  return buffer->data;
-}
-
-void cc_buffer_append(CcBuffer buffer, const unsigned char *data, size_t len)
-{
-  size_t ol;
-
-  ol = cc_buffer_len(buffer);
-  cc_buffer_append_space(buffer, len);
-  memcpy(buffer->data + ol, data, len);
-}
-
-void cc_buffer_prepend(CcBuffer buffer, const unsigned char *data, size_t len)
-{
-  size_t ol;
-
-  ol = cc_buffer_len(buffer);
-  cc_buffer_append_space(buffer, len);
-  memmove(buffer->data + len, buffer->data, ol);
-  memcpy(buffer->data, data, len);
-}
-
-void cc_buffer_append_space(CcBuffer buffer, size_t len)
-{
-  if (len > 0)
-    {
-      if (buffer->data == NULL)
-       {
-         buffer->data = cc_xmalloc(len);
-         buffer->len = 0;
-       }
-      else
-       {
-         buffer->data = cc_xrealloc(buffer->data, buffer->len + len);
-       }
-      buffer->len += len;
-    }
-}
-
-void cc_buffer_append_string(CcBuffer buffer, const char *string)
-{
-  if (*string != '\0')
-    cc_buffer_append(buffer, (const unsigned char *)string, strlen(string));
-}
-
-void cc_buffer_prepend_string(CcBuffer buffer, const char *string)
-{
-  if (*string != '\0')
-    cc_buffer_prepend(buffer, (const unsigned char *)string, strlen(string));
-}
-
-void cc_buffer_consume(CcBuffer buffer, size_t len)
-{
-  if (len > buffer->len)
-    {
-      cc_fatal("Buffer underflow.");
-    }
-  else if (len == 0)
-    {
-      /*NOTHING*/;
-    }
-  else if (len == buffer->len)
-    {
-      buffer->len = 0;
-    }
-  else
-    {
-      memmove(buffer->data, buffer->data + len, buffer->len - len);
-      buffer->len -= len;
-    }
-}
-
-void cc_buffer_consume_end(CcBuffer buffer, size_t len)
-{
-  if (len > buffer->len)
-    {
-      cc_fatal("Buffer underflow.");
-    }
-  else if (len == 0)
-    {
-      /*NOTHING*/;
-    }
-  else if (len == buffer->len)
-    {
-      buffer->len = 0;
-    }
-  else
-    {
-      buffer->len -= len;
-    }
-}
-
-void cc_buffer_clear(CcBuffer buffer)
-{
-  buffer->len = 0;
-}
-
-void cc_buffer_steal(CcBuffer buffer, unsigned char **data, size_t *len)
-{
-  buffer->data = cc_xrealloc(buffer->data, buffer->len + 1);
-  buffer->data[buffer->len] = '\0';
-  *data = buffer->data;
-  if (len != NULL)
-    *len = buffer->len;
-  buffer->data = NULL;
-  buffer->len = 0;
-}
-
-/* eof (ccbuffer.c) */
diff --git a/lib/libXBMS/ccbuffer.h b/lib/libXBMS/ccbuffer.h
deleted file mode 100644 (file)
index bede1a0..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Buffer stuff.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#ifndef CCBUFFER_H_INCLUDED
-#define CCBUFFER_H_INCLUDED 1
-
-struct CcBufferRec {
-  unsigned char *data;
-  size_t len;
-};
-
-typedef struct CcBufferRec *CcBuffer;
-typedef struct CcBufferRec CcBufferRec;
-
-CcBuffer cc_buffer_allocate(void);
-void cc_buffer_free(CcBuffer buffer);
-void cc_buffer_init(CcBuffer buffer);
-void cc_buffer_uninit(CcBuffer buffer);
-size_t cc_buffer_len(CcBuffer buffer);
-unsigned char *cc_buffer_ptr(CcBuffer buffer);
-void cc_buffer_append(CcBuffer buffer, const unsigned char *data, size_t len);
-void cc_buffer_append_space(CcBuffer buffer, size_t len);
-void cc_buffer_append_string(CcBuffer buffer, const char *string);
-void cc_buffer_consume(CcBuffer buffer, size_t len);
-void cc_buffer_consume_end(CcBuffer buffer, size_t len);
-void cc_buffer_clear(CcBuffer buffer);
-void cc_buffer_prepend(CcBuffer buffer, const unsigned char *data, size_t len);
-void cc_buffer_prepend_string(CcBuffer buffer, const char *string);
-void cc_buffer_steal(CcBuffer buffer, unsigned char **data, size_t *len);
-
-#endif /* CCBUFFER_H_INCLUDED */
-/* eof (ccbuffer.h) */
diff --git a/lib/libXBMS/ccincludes.h b/lib/libXBMS/ccincludes.h
deleted file mode 100644 (file)
index a6d7ba9..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Misc includes.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#ifndef CCINCLUDES_H_INCLUDED
-#define CCINCLUDES_H_INCLUDED 1
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <inttypes.h>
-
-#include "ccutil.h"
-
-#ifdef _XBOX
-#include <xtl.h>
-#elif defined(_LINUX)
-#include <unistd.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <sys/time.h>
-#include <inttypes.h>
-#include <netdb.h>
-#else
-#include <windows.h>
-#include <io.h>
-#include <time.h>
-#define snprintf _snprintf
-#endif /* _XBOX */
-
-#if defined(__FreeBSD__)
-#include <netinet/in.h>
-#endif
-
-//extern int errno;
-
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif /* ! PATH_MAX */
-
-#ifdef _LINUX
-#define CC_UINT_64_TYPE_NAME      uint64_t
-#else
-#define CC_UINT_64_TYPE_NAME     UINT64
-#endif
-#define CC_UINT_64_PRINTF_FORMAT  "%lu"
-
-#endif /* CCINCLUDES_H_INCLUDED */
-/* eof (ccincludes.h) */
diff --git a/lib/libXBMS/ccutil.c b/lib/libXBMS/ccutil.c
deleted file mode 100644 (file)
index 60882d1..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Misc utilities.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#include "ccincludes.h"
-#include "ccutil.h"
-
-void cc_fatal(const char *m)
-{
-#if 0
-  fprintf(stderr, "FATAL ERROR%s%s\n", 
-         (m != NULL) ? ": " : "",
-         (m != NULL) ? m :  "");
-#endif
-  exit(-1);
-}
-
-void *cc_xmalloc(size_t n)
-{
-  void *r;
-
-  r = malloc(n);
-  if (r == NULL)
-    cc_fatal("Out of memory");
-  return r;
-}
-
-void *cc_xcalloc(size_t n, size_t s)
-{
-  void *r;
-
-  r = calloc(n, s);
-  if (r == NULL)
-    cc_fatal("Out of memory");
-  return r;
-}
-
-void *cc_xrealloc(void *o, size_t n)
-{
-  void *r;
-
-  r = realloc(o, n);
-  if (r == NULL)
-    cc_fatal("Out of memory");
-  return r;
-}
-
-void *cc_xstrdup(const char *s)
-{
-  char *r;
-
-  r = strdup(s != NULL ? s : "");
-  if (r == NULL)
-    cc_fatal("Out of memory");
-  return r;
-}
-
-void *cc_xmemdup(const void *s, size_t len)
-{
-  unsigned char *r;
-
-  r = cc_xmalloc(len + 1);
-  r[len] = '\0';
-  if (len > 0)
-    memcpy(r, s, len);
-  return (void *)r;
-}
-
-void cc_xfree(void *p)
-{
-  if (p != NULL)
-    free(p);
-}
-
-/* eof (ccutil.c) */
diff --git a/lib/libXBMS/ccutil.h b/lib/libXBMS/ccutil.h
deleted file mode 100644 (file)
index 14569af..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Misc utilities.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#ifndef CCUTIL_H_INCLUDED
-#define CCUTIL_H_INCLUDED 1
-
-void cc_fatal(const char *m);
-void *cc_xmalloc(size_t n);
-void *cc_xcalloc(size_t n, size_t s);
-void *cc_xrealloc(void *o, size_t n);
-void *cc_xstrdup(const char *s);
-void *cc_xmemdup(const void *s, size_t len);
-void cc_xfree(void *p);
-
-struct CcStringListRec {
-  char *s;
-  struct CcStringListRec *next;
-};
-
-typedef struct CcStringListRec *CcStringList;
-
-#endif /* CCUTIL_H_INCLUDED */
-/* eof (ccutil.h) */
diff --git a/lib/libXBMS/ccxclient.c b/lib/libXBMS/ccxclient.c
deleted file mode 100644 (file)
index 52540fc..0000000
+++ /dev/null
@@ -1,1262 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  CcXstream Client Library for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#include "ccincludes.h"
-#include "ccbuffer.h"
-#include "ccxclient.h"
-#include "ccxencode.h"
-
-#ifndef __GNUC__
-#pragma code_seg()
-#pragma data_seg()
-#pragma bss_seg()
-#pragma const_seg()
-#endif
-
-static unsigned long lNextId = 0;
-unsigned long next_id()
-{
-  
-  lNextId = lNextId + 1 % 0xfffff; /* 20 bits in maximum */
-  if (lNextId == 0)
-    lNextId++;
-  return (lNextId << 12); /* Low 12 bits are zero */
-}
-
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-
-CcXstreamClientError cc_xstream_client_version_handshake(CcXstreamServerConnection s)
-{
-  unsigned char *c, x;
-  CcBufferRec buf[1];
-  char *hlp1, *hlp2, *hlp3;
-  int i;
-
-  cc_buffer_init(buf);
-  
-  for (i = 0; 1; i++)
-    {
-      if (i > 2048)
-       {
-         cc_buffer_uninit(buf);
-         return CC_XSTREAM_CLIENT_FATAL_ERROR;
-       }
-      c = cc_xstream_client_read_data(s, 1, CCXSTREAM_CLIENT_TIMEOUT_SECONDS * 1000U);
-      if (c == NULL)
-       {
-         cc_buffer_uninit(buf);
-         return CC_XSTREAM_CLIENT_FATAL_ERROR;
-       }
-      x = c[0];
-      cc_xfree(c);
-      if (x == '\n')
-       break;
-      else if (x != '\r')
-       cc_buffer_append(buf, &x, 1);
-    }
-  hlp1 = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  cc_buffer_uninit(buf);
-  /* OK, we parse the version string.  Supported versions are between
-     the first and the second space characters in the string.
-     Versions are in the comma separated list.  This code is somewhat
-     spaghetti, but it does the trick and ensures that supported
-     versions list contain string CC_XSTREAM_CLIENT_VERSION.  The
-     reason for complexity is that it can be the first or last item in
-     the list.  It can also be the only item in the list.  And of
-     course string we got from the server may be nonstandard and we
-     can't crash because of it. */
-  hlp2 = strchr(hlp1, ' ');
-  if (hlp2 == NULL)
-    {
-      cc_xfree(hlp1);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  hlp2++;
-  hlp3 = strchr(hlp2, ' ');
-  if (hlp3 == NULL)
-    {
-      cc_xfree(hlp1);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  *hlp3 = '\0';
-  while ((hlp3 = strrchr(hlp2, ',')) != NULL)
-    {
-      *hlp3 = '\0';
-      hlp3++;
-      if (strcmp(hlp3, CC_XSTREAM_CLIENT_VERSION) == 0)
-       break;
-    }
-  if (hlp3 == NULL)
-    {
-      if (strcmp(hlp2, CC_XSTREAM_CLIENT_VERSION) != 0)
-       {
-         cc_xfree(hlp1);
-         return CC_XSTREAM_CLIENT_FATAL_ERROR;
-       }
-    }
-  cc_xfree(hlp1);
-  if (cc_xstream_client_write_data(s, (unsigned char *)CC_XSTREAM_CLIENT_VERSION_STR "\n", strlen(CC_XSTREAM_CLIENT_VERSION_STR  "\n"), 0) == 0)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  return CC_XSTREAM_CLIENT_OK;
-}
-
-unsigned long cc_xstream_client_mkpacket_setcwd(const char *path, 
-                                               unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_SETCWD);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, path);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_upcwd(unsigned long levels,
-                                              unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_UPCWD);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, levels);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_filelist_open(unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILELIST_OPEN);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_filelist_read(unsigned long handle,
-                                                      unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILELIST_READ);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, handle);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_file_info(const char *path,
-                                                  unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILE_INFO);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, path);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_file_open(const char *path,
-                                                  unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILE_OPEN);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, path);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_file_read(unsigned long handle, size_t len,
-                                                  unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILE_READ);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, handle);
-  cc_xstream_buffer_encode_int(buf, len);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_seek(unsigned long handle, 
-                                             int seek_type, CC_UINT_64_TYPE_NAME bytes,
-                                             unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_FILE_SEEK);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, handle);
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)seek_type);
-  cc_xstream_buffer_encode_int64(buf, bytes);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_close(unsigned long handle,
-                                              unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_CLOSE);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, handle);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_close_all(unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_CLOSE_ALL);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_setconfoption(const char *option, 
-                                                      const char *value,
-                                                      unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_SET_CONFIGURATION_OPTION);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, option);
-  cc_xstream_buffer_encode_string(buf, value);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_authentication_init(const char *method,
-                                                            unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_AUTHENTICATION_INIT);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, method);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_authenticate_password(unsigned long handle,
-                                                              const char *user_id,
-                                                              const char *password,
-                                                              unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_AUTHENTICATE);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_int(buf, handle);
-  cc_xstream_buffer_encode_string(buf, user_id);
-  cc_xstream_buffer_encode_string(buf, password);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-unsigned long cc_xstream_client_mkpacket_server_discovery(unsigned char **p, size_t *p_len)
-{
-  CcBufferRec buf[1];
-  unsigned int r;
-
-  /* Initialize the buffer. */
-  cc_buffer_init(buf);
-  /* Encode packet. */
-  cc_xstream_buffer_encode_byte(buf, (unsigned char)CC_XSTREAM_XBMSP_PACKET_SERVER_DISCOVERY_QUERY);
-  r = next_id();
-  cc_xstream_buffer_encode_int(buf, r);
-  cc_xstream_buffer_encode_string(buf, CC_XSTREAM_CLIENT_VERSION_STR);
-  cc_xstream_buffer_encode_packet_length(buf);
-  /* Return payload */
-  *p = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  *p_len = cc_buffer_len(buf);
-  /* Free the buffer */
-  cc_buffer_uninit(buf);
-  /* Return the command id. */
-  return r;
-}
-
-void cc_xstream_client_reply_packet_free(CcXstreamReplyPacket packet)
-{
-  if (packet != NULL)
-    {
-      cc_xfree(packet->string1);
-      cc_xfree(packet->string2);
-    }
-  cc_xfree(packet);
-}
-
-CcXstreamReplyPacket cc_xstream_client_reply_packet_parse(const unsigned char *packet,
-                                                         size_t packet_len)
-{
-  CcXstreamPacket pt;
-  unsigned long id, handle, err;
-  unsigned char *s1, *s2;
-  size_t sl1, sl2;
-  CcXstreamReplyPacket r;
-
-  if (packet_len < 5)
-    return NULL;
-
-  id = cc_xstream_decode_int(packet + 1);
-
-  switch (packet[0])
-    {
-    case CC_XSTREAM_XBMSP_PACKET_OK:
-      if (packet_len != 5)
-       return NULL;
-      pt = CC_XSTREAM_XBMSP_PACKET_OK;
-      s1 = s2 = NULL;
-      sl1 = sl2 = 0;
-      err = handle = 0;
-      break;
-
-    case CC_XSTREAM_XBMSP_PACKET_ERROR:
-      if (packet_len < 10)
-       return NULL;
-      pt = CC_XSTREAM_XBMSP_PACKET_ERROR;
-      err = packet[5];
-      s1 = s2 = NULL;
-      sl1 = sl2 = 0;
-      handle = 0;
-      break;
-
-    case CC_XSTREAM_XBMSP_PACKET_HANDLE:
-      if (packet_len != 9)
-       return NULL;
-      pt = CC_XSTREAM_XBMSP_PACKET_HANDLE;
-      handle = cc_xstream_decode_int(packet + 5);
-      s1 = s2 = NULL;
-      sl1 = sl2 = 0;
-      err = 0;
-      break;
-
-    case CC_XSTREAM_XBMSP_PACKET_FILE_DATA:
-      pt = CC_XSTREAM_XBMSP_PACKET_FILE_DATA;
-      sl1 = cc_xstream_decode_int(packet + 5);
-      if (packet_len < (sl1 + 13))
-       return NULL;
-      sl2 = cc_xstream_decode_int(packet + 9 + sl1);
-      if (packet_len != (13 + sl1 + sl2))
-       return NULL;
-      s1 = cc_xmemdup(packet + 9, sl1);
-      s2 = cc_xmemdup(packet + 13 + sl1, sl2);
-      err = handle = 0;
-      break;
-
-    case CC_XSTREAM_XBMSP_PACKET_FILE_CONTENTS:
-      if (packet_len < 5)
-       return NULL;
-      pt = CC_XSTREAM_XBMSP_PACKET_FILE_CONTENTS;
-      sl1 = cc_xstream_decode_int(packet + 5);
-      if (packet_len != (sl1 + 9))
-       return NULL;
-      s1 = cc_xmemdup(packet + 9, sl1);
-      s2 = NULL;
-      sl2 = 0;
-      err = handle = 0;
-      break;
-
-    default:
-      return NULL;
-    }
-  r = cc_xcalloc(1, sizeof (*r));
-  r->type = pt;
-  r->id = id;
-  r->handle = handle;
-  r->error = err;
-  r->string1 = s1;
-  r->string2 = s2;
-  r->string1_len = sl1;
-  r->string2_len = sl2;
-  return r;
-}
-
-CcXstreamClientError cc_xstream_client_reply_packet_read(CcXstreamServerConnection s,
-                                                        CcXstreamReplyPacket *packet)
-{
-  unsigned char *lb, *pb;
-  size_t len;
-  CcXstreamReplyPacket p;
-
-  if ((lb = cc_xstream_client_read_data(s, 4, CCXSTREAM_CLIENT_TIMEOUT_SECONDS * 1000U)) == NULL)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  len = cc_xstream_decode_int(lb);
-  cc_xfree(lb);
-  if (len > 0x20000)
-    {
-      fprintf(stderr, "Too long packet (len=%u)\n", (unsigned int)len);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  if ((pb = cc_xstream_client_read_data(s, len, CCXSTREAM_CLIENT_TIMEOUT_SECONDS * 1000U)) == NULL)
-    {
-      free(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  p = cc_xstream_client_reply_packet_parse(pb, len);
-  cc_xfree(pb);
-  if (p == NULL)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  *packet = p;
-  return CC_XSTREAM_CLIENT_OK;
-}
-
-CcXstreamClientError cc_xstream_client_setcwd(CcXstreamServerConnection s,
-                                             const char *path)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_setcwd(path, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_upcwd(CcXstreamServerConnection s,
-                                            unsigned long levels)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_upcwd(levels, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-
-CcXstreamClientError cc_xstream_client_close(CcXstreamServerConnection s,
-                                            unsigned long handle)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_close(handle, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_close_all(CcXstreamServerConnection s)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_close_all(&pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_open(CcXstreamServerConnection s,
-                                                const char *path,
-                                                unsigned long *handle)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_file_open(path, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_HANDLE)
-    {
-      *handle = rp->handle;
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_read(CcXstreamServerConnection s,
-                                                unsigned long handle,
-                                                size_t len,
-                                                unsigned char **data,
-                                                size_t *data_len)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_file_read(handle, len, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    {
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_FILE_CONTENTS)
-    {
-      *data = rp->string1;
-      *data_len = rp->string1_len;
-      rp->string1 = NULL;
-      rp->string1_len = 0;
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_dir_open(CcXstreamServerConnection s,
-                                               unsigned long *handle)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_filelist_open(&pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_HANDLE)
-    {
-      *handle = rp->handle;
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_dir_read(CcXstreamServerConnection s,
-                                               unsigned long handle,
-                                               char **name,
-                                               char **info)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_filelist_read(handle, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_FILE_DATA)
-    {
-      *name = (char *)rp->string1;
-      *info = (char *)rp->string2;
-      rp->string1 = NULL;
-      rp->string1_len = 0;
-      rp->string2 = NULL;
-      rp->string2_len = 0;
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_forward(CcXstreamServerConnection s,
-                                                   unsigned long handle,
-                                                   CC_UINT_64_TYPE_NAME bytes,
-                                                   int seek_eof_if_fails)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_seek(handle, 2, bytes, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      if (seek_eof_if_fails)
-       return cc_xstream_client_file_end(s, handle);
-      else
-       return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_backwards(CcXstreamServerConnection s,
-                                                     unsigned long handle,
-                                                     CC_UINT_64_TYPE_NAME bytes,
-                                                     int rewind_if_fails)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_seek(handle, 3, bytes, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      if (rewind_if_fails)
-       return cc_xstream_client_file_rewind(s, handle);
-      else
-       return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_rewind(CcXstreamServerConnection s,
-                                                  unsigned long handle)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_seek(handle, 0, 0, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_end(CcXstreamServerConnection s,
-                                                  unsigned long handle)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_seek(handle, 1, 0, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_file_info(CcXstreamServerConnection s,
-                                                const char *path,
-                                                        char **info)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_file_info(path, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_FILE_DATA)
-    {
-      *info = (char *)rp->string2;
-      rp->string2 = NULL;
-      rp->string2_len = 0;
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_set_configuration_option(CcXstreamServerConnection s,
-                                                               const char *option,
-                                                               const char *value)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-
-  id = cc_xstream_client_mkpacket_setconfoption(option, value, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-CcXstreamClientError cc_xstream_client_password_authenticate(CcXstreamServerConnection s,
-                                                            const char *user_id,
-                                                            const char *password)
-{
-  unsigned char *pb;
-  size_t pb_len;
-  unsigned long id;
-  CcXstreamReplyPacket rp;
-  unsigned int handle;
-
-  id = cc_xstream_client_mkpacket_authentication_init("password", &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    {
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_HANDLE)
-    {
-      handle = rp->handle;
-      cc_xstream_client_reply_packet_free(rp);
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  id = cc_xstream_client_mkpacket_authenticate_password(handle, user_id, password, &pb, &pb_len);
-  if (cc_xstream_client_write_data(s, pb, pb_len, 0) == 0)
-    {
-      cc_xfree(pb);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  cc_xfree(pb);
-  if (cc_xstream_client_reply_packet_read(s, &rp) != CC_XSTREAM_CLIENT_OK)
-    {
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  if (rp->id != id)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_OK)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_OK;
-    }
-  else if (rp->type == CC_XSTREAM_XBMSP_PACKET_ERROR)
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-    }
-  else
-    {
-      cc_xstream_client_reply_packet_free(rp);
-      return CC_XSTREAM_CLIENT_FATAL_ERROR;
-    }
-  /*NOTREACHED*/
-}
-
-/* eof (ccxclient.c) */
diff --git a/lib/libXBMS/ccxclient.h b/lib/libXBMS/ccxclient.h
deleted file mode 100644 (file)
index 8c5266c..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  CcXstream Client Library for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-
-#ifndef CC_XCLIENT_H_INCLUDED
-#define CC_XCLIENT_H_INCLUDED 1
-
-#include "ccxversion.h"
-#include "ccxpacket.h"
-
-/* The definition of CcXstreamServerConnection is system dependent.
-   In unix like systems this is simply int that is a file descriptor
-   of the connection socket. */
-#ifdef _XBOX
-typedef SOCKET CcXstreamServerConnection;
-#else /* _XBOX */
-typedef int CcXstreamServerConnection;
-#endif /* _XBOX */
-
-typedef struct CcXstreamReplyPacketRec *CcXstreamReplyPacket;
-
-struct CcXstreamReplyPacketRec {
-  CcXstreamPacket type;
-  unsigned long id;
-  unsigned long handle;
-  unsigned long error;
-  unsigned char *string1;
-  size_t string1_len;
-  unsigned char *string2;
-  size_t string2_len;
-};
-
-typedef enum {
-  /* Command was succesful and session can continue. */
-  CC_XSTREAM_CLIENT_OK = 0,
-  /* Command was failed but session is ok. */
-  CC_XSTREAM_CLIENT_COMMAND_FAILED = 1,
-  /* Command was probably failed and session is broken. */
-  CC_XSTREAM_CLIENT_FATAL_ERROR = 2,
-  /* Server host not found. */
-  CC_XSTREAM_CLIENT_SERVER_NOT_FOUND = 3,
-  /* Server host found but connection attempt failed. */
-  CC_XSTREAM_CLIENT_SERVER_CONNECTION_FAILED = 4
-} CcXstreamClientError;
-
-CcXstreamClientError cc_xstream_client_connect(const char *host,
-                                              int port,
-                                              CcXstreamServerConnection *s);
-
-CcXstreamClientError cc_xstream_client_disconnect(CcXstreamServerConnection s);
-                                              
-unsigned char *cc_xstream_client_read_data(CcXstreamServerConnection s, 
-                                          size_t len, 
-                                          unsigned long timeout_ms);
-int cc_xstream_client_write_data(CcXstreamServerConnection s, 
-                                unsigned char *buf,
-                                size_t len, 
-                                unsigned long timeout_ms);
-
-/* Make a packet that can be sent to the server directly.  Return
-   value is an operation identifier that is selecte by the client
-   library and embedded into the packet.  Server always returns a
-   packet with same id number.  This is a low level interface that may
-   be used, if fully asynchronous client is needed. */
-
-CcXstreamClientError cc_xstream_client_version_handshake(CcXstreamServerConnection s);
-
-unsigned long cc_xstream_client_mkpacket_setcwd(const char *path, 
-                                               unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_upcwd(unsigned long levels,
-                                              unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_filelist_open(unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_filelost_read(unsigned long handle,
-                                                      unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_file_info(const char *path,
-                                                  unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_file_open(const char *path,
-                                                  unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_file_read(unsigned long handle, size_t len,
-                                                  unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_seek(unsigned long handle, 
-                                             int seek_type, CC_UINT_64_TYPE_NAME bytes,
-                                             unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_close(unsigned long handle,
-                                              unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_close_all(unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_setconfoption(const char *option, 
-                                                      const char *value,
-                                                      unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_authentication_init(const char *method,
-                                                            unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_authenticate_password(unsigned long handle,
-                                                              const char *user_id,
-                                                              const char *password,
-                                                              unsigned char **p, size_t *p_len);
-
-unsigned long cc_xstream_client_mkpacket_server_discovery(unsigned char **p, size_t *p_len);
-
-
-/* Packet reading and parsing fuctionality is also quite low level.
-   It is mainly needed for applications that implement fully
-   asynchronous protocol session. */
-
-/* Packet is passed to this function without length field. */
-CcXstreamReplyPacket cc_xstream_client_reply_packet_parse(const unsigned char *packet,
-                                                         size_t packet_len);
-
-/* Read a packet from the socket and parse it. */
-CcXstreamClientError cc_xstream_client_reply_packet_read(CcXstreamServerConnection s,
-                                                        CcXstreamReplyPacket *packet);
-
-/* Free the packet. */
-void cc_xstream_client_reply_packet_free(CcXstreamReplyPacket packet);
-
-/* Following interfaces provide a synchronous interface to the server.
-   If this interface is used, the user can't send his own commands
-   directly bypassing this interface. */
-
-CcXstreamClientError cc_xstream_client_setcwd(CcXstreamServerConnection s,
-                                             const char *path);
-CcXstreamClientError cc_xstream_client_upcwd(CcXstreamServerConnection s,
-                                            unsigned long levels);
-CcXstreamClientError cc_xstream_client_close_all(CcXstreamServerConnection s);
-CcXstreamClientError cc_xstream_client_file_open(CcXstreamServerConnection s,
-                                                const char *path,
-                                                unsigned long *handle);
-CcXstreamClientError cc_xstream_client_file_read(CcXstreamServerConnection s,
-                                                unsigned long handle,
-                                                size_t len,
-                                                unsigned char **data,
-                                                size_t *data_len);
-CcXstreamClientError cc_xstream_client_dir_open(CcXstreamServerConnection s,
-                                               unsigned long *handle);
-CcXstreamClientError cc_xstream_client_dir_read(CcXstreamServerConnection s,
-                                               unsigned long handle,
-                                               char **name,
-                                               char **info);
-CcXstreamClientError cc_xstream_client_close(CcXstreamServerConnection s,
-                                            unsigned long handle);
-CcXstreamClientError cc_xstream_client_file_forward(CcXstreamServerConnection s,
-                                                   unsigned long handle,
-                                                   CC_UINT_64_TYPE_NAME bytes,
-                                                   int seek_eof_if_fails);
-CcXstreamClientError cc_xstream_client_file_backwards(CcXstreamServerConnection s,
-                                                     unsigned long handle,
-                                                     CC_UINT_64_TYPE_NAME bytes,
-                                                     int rewind_if_fails);
-
-CcXstreamClientError cc_xstream_client_file_rewind(CcXstreamServerConnection s,
-                                                  unsigned long handle);
-CcXstreamClientError cc_xstream_client_file_end(CcXstreamServerConnection s,
-                                               unsigned long handle);
-CcXstreamClientError cc_xstream_client_file_info(CcXstreamServerConnection s,
-                                                const char *path,
-                                                        char **info);
-CcXstreamClientError cc_xstream_client_set_configuration_option(CcXstreamServerConnection s,
-                                                               const char *option,
-                                                               const char *value);
-CcXstreamClientError cc_xstream_client_password_authenticate(CcXstreamServerConnection s,
-                                                            const char *user_id,
-                                                            const char *password);
-
-/* Server discovery function.  May not be supported in all systems. */
-
-typedef void (*CcXstreamServerDiscoveryCB)(const char *addr,
-                                          const char *port,
-                                          const char *version,
-                                          const char *comment,
-                                          void *context);
-
-CcXstreamClientError ccx_client_discover_servers(CcXstreamServerDiscoveryCB callback, void *context);
-
-
-#define CC_XSTREAM_CLIENT_VERSION_STR "XBMSP-1.0 CcXstream Client Library " CC_XSTREAM_SW_VERSION
-#define CC_XSTREAM_CLIENT_VERSION     "1.0"
-
-/* If the server end is inresponsive for 10 seconds, connection will halt. */
-#define CCXSTREAM_CLIENT_TIMEOUT_SECONDS 10
-
-#endif /* CC_XCLIENT_H_INCLUDED */
-/* eof (ccxclient.h) */
diff --git a/lib/libXBMS/ccxclientconnxbox.c b/lib/libXBMS/ccxclientconnxbox.c
deleted file mode 100644 (file)
index 09e293e..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  CcXstream Client Library for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-#include "ccincludes.h"
-#include "ccbuffer.h"
-#include "ccxclient.h"
-
-#if !defined(_WIN32)
-#define CC_XSTREAM_SOCKET_FD_TYPE          int
-#define CC_XSTREAM_SOCKET_CLOSE            close
-#define CC_XSTREAM_SOCKET_WRITE(s, b, l)   write((s), (b), (l))
-#define CC_XSTREAM_SOCKET_READ(s, b, l)    read((s), (b), (l))
-#else /* _WIN32 */
-#define CC_XSTREAM_SOCKET_FD_TYPE          SOCKET
-#define CC_XSTREAM_SOCKET_CLOSE            closesocket
-#define CC_XSTREAM_SOCKET_WRITE(s, b, l)   send((s), (b), (l), 0)
-#define CC_XSTREAM_SOCKET_READ(s, b, l)    recv((s), (b), (l), 0)
-#endif
-
-static void cc_xstream_client_socket_setup(CC_XSTREAM_SOCKET_FD_TYPE sock)
-{
-#ifdef TCP_NODELAY
-  int i;
-
-  i = 1;
-  setsockopt(sock, IPPROTO_TCP,TCP_NODELAY, (char *)(&i), sizeof (i));
-#endif /* TCP_NODELAY */
-}
-
-CcXstreamClientError cc_xstream_client_connect(const char *host,
-                                              int port,
-                                              CcXstreamServerConnection *s)
-{
-  CC_XSTREAM_SOCKET_FD_TYPE sock;
-  struct sockaddr_in sa;
-#ifndef _XBOX
-  struct hostent *he;
-#endif /* ! _XBOX */
-
-  memset(&sa, 0, sizeof (sa));
-  sa.sin_port = htons(port);
-  sa.sin_family = AF_INET;
-  if (inet_addr(host) == INADDR_NONE)
-    {
-#ifndef _XBOX
-      he = gethostbyname(host);
-      if ((he == NULL) || (he->h_addrtype != AF_INET) || (he->h_length != 4))
-       return CC_XSTREAM_CLIENT_SERVER_NOT_FOUND;
-      memcpy(&(sa.sin_addr), he->h_addr, 4);
-#else  /* ! _XBOX */
-      return CC_XSTREAM_CLIENT_SERVER_NOT_FOUND;
-#endif  /* ! _XBOX */
-    }
-  else
-    {
-      sa.sin_addr.s_addr = inet_addr(host);
-    }
-  sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
-  if (sock < 0)
-    return CC_XSTREAM_CLIENT_FATAL_ERROR;
-  if (connect(sock, (struct sockaddr *)&sa, sizeof (sa)) != 0)
-    {
-      CC_XSTREAM_SOCKET_CLOSE(sock);
-      return CC_XSTREAM_CLIENT_SERVER_CONNECTION_FAILED;
-    }
-  cc_xstream_client_socket_setup(sock);
-  *s = (CcXstreamServerConnection)sock;
-  return CC_XSTREAM_CLIENT_OK;
-}
-
-CcXstreamClientError cc_xstream_client_disconnect(CcXstreamServerConnection s)
-{
-  CC_XSTREAM_SOCKET_FD_TYPE sock;
-
-  sock = (CC_XSTREAM_SOCKET_FD_TYPE)s;
-  CC_XSTREAM_SOCKET_CLOSE(s);
-  return CC_XSTREAM_CLIENT_OK;
-}
-
-unsigned char *cc_xstream_client_read_data(CcXstreamServerConnection s, 
-                                          size_t len, 
-                                          unsigned long timeout_ms)
-{
-  unsigned char *buf;
-  size_t done;
-  CC_XSTREAM_SOCKET_FD_TYPE sock;
-  int rv;
-  struct timeval tv;
-  fd_set fds;
-
-  /* Convert the conenction handle to simple file descriptor. */
-  sock = (CC_XSTREAM_SOCKET_FD_TYPE)s;
-
-  /* We terminate incoming buffer just to make code safer. 
-     Caller should not count on it anyway. */
-  buf = cc_xmalloc(len + 1);
-  buf[len] = '\0'; 
-
-  for (done = 0; done < len; /*NOTHING*/)
-    {
-      if (timeout_ms > 0)
-       {
-         tv.tv_sec = timeout_ms / 1000U;
-         tv.tv_usec = (timeout_ms % 1000U) * 1000U;
-         FD_ZERO(&fds);
-         FD_SET(sock, &fds);
-         if (select(sock + 1, &fds, NULL, NULL, &tv) != 1)
-           {
-             /* Timeout or error, we don't really care. */
-             cc_xfree(buf);
-             return NULL;
-           }
-       }
-      rv = CC_XSTREAM_SOCKET_READ(sock, buf + done, len - done);
-      if (rv < 1)
-       {
-         cc_xfree(buf);
-         return NULL;
-       }
-      done += rv;
-    }
-  return buf;
-}
-
-int cc_xstream_client_write_data(CcXstreamServerConnection s,
-                                unsigned char *buf,
-                                size_t len,
-                                unsigned long timeout_ms)
-{
-  size_t done;
-  CC_XSTREAM_SOCKET_FD_TYPE sock;
-  int rv;
-  struct timeval tv;
-  fd_set fds;
-
-  /* Convert the conenction handle to simple file descriptor. */
-  sock = (CC_XSTREAM_SOCKET_FD_TYPE)s;
-
-  for (done = 0; done < len; /*NOTHING*/)
-    {
-      if (timeout_ms > 0)
-       {
-         tv.tv_sec = timeout_ms / 1000U;
-         tv.tv_usec = (timeout_ms % 1000U) * 1000U;
-         FD_ZERO(&fds);
-         FD_SET(sock, &fds);
-         if (select(sock + 1, NULL, &fds, NULL, &tv) != 1)
-           {
-             /* Timeout or error, we don't really care. */
-             cc_xfree(buf);
-             return 0;
-           }
-       }
-      rv = CC_XSTREAM_SOCKET_WRITE(sock, buf + done, len - done);
-      if (rv < 1)
-       return 0;
-      done += rv;
-    }
-  return 1;
-}
-
-/* eof (ccxclientconn.c) */
diff --git a/lib/libXBMS/ccxdiscover.c b/lib/libXBMS/ccxdiscover.c
deleted file mode 100644 (file)
index b2502ef..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  CcXstream Client Library for XBMC Media Center (Server Discovery)
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-#include "ccincludes.h"
-#include "ccbuffer.h"
-#include "ccxclient.h"
-#include "ccxencode.h"
-
-static unsigned long timeout_start()
-{
-#if defined (__linux__) || defined(__APPLE__) || defined (__NetBSD__) || defined (__FreeBSD__) || defined (__CYGWIN__) || defined (sun)
-  struct timeval tv;
-  unsigned long r;
-
-  gettimeofday(&tv, NULL);
-  r = (((unsigned long)tv.tv_sec) % 200000000U) * 10U;
-  r += ((unsigned long)tv.tv_usec) / 100000U;
-  return r;
-#elif defined (_XBOX)
-  return ((unsigned long)(GetTickCount()) / 100U);
-#else
-  time_t t;
-
-  t = time(NULL);
-  return (((unsigned long)t) % 200000000U) * 10U;
-#endif
-}
-
-static int timeout_exceeded(unsigned long start_time)
-{
-  unsigned long t;
-
-  t = timeout_start();
-  return ((t < start_time) || ((start_time + 9) < t));
-}
-
-CcXstreamClientError ccx_client_discover_servers(CcXstreamServerDiscoveryCB callback, void *context)
-{
-  struct sockaddr_in sa, ra;
-#if defined (_XBOX) || defined (WIN32)
-  size_t sa_len, ra_len;
-#else
-  socklen_t sa_len, ra_len;
-#endif
-  unsigned long handle, p_len, p_handle;
-  unsigned char *packet, ch;
-  size_t packet_len;
-  int found = 0, l, c;
-#if defined (_XBOX) || defined (WIN32)
-  SOCKET sock;
-#else
-  int sock;
-#endif
-  unsigned long t0;
-  fd_set rs;
-  struct timeval tv;
-  CcBufferRec buf[1], seen_buf[1];
-  char *p_address, *p_port, *p_version, *p_comment;
-
-  memset(&sa, 0, sizeof (sa));
-  sa.sin_family = AF_INET;
-  sa.sin_addr.s_addr = htonl(INADDR_BROADCAST);
-  sa.sin_port = htons(CC_XSTREAM_DEFAULT_PORT);
-  sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-  if (sock < 0)
-    return CC_XSTREAM_CLIENT_COMMAND_FAILED;
-  c = 1;
-  setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)(&c), sizeof (c));
-  handle = cc_xstream_client_mkpacket_server_discovery(&packet, &packet_len);
-  sa_len = sizeof (sa);
-  sendto(sock,  packet, packet_len, 0, (struct sockaddr *)(&sa), sa_len);
-  t0 = timeout_start();
-  cc_buffer_init(seen_buf);
-  while (1)
-    {
-      if (timeout_exceeded(t0))
-       {
-         cc_buffer_uninit(seen_buf);
-         break;
-       }
-      FD_ZERO(&rs);
-      FD_SET(sock, &rs);
-      tv.tv_sec = 0;
-      tv.tv_usec = 350000;
-      switch (select(sock + 1, &rs, NULL, NULL, &tv))
-       {
-       case -1:
-#if defined (_XBOX) || defined (WIN32)
-         closesocket(sock);
-#else
-         close(sock);
-#endif
-         cc_buffer_uninit(seen_buf);
-         cc_xfree(packet);
-         return (found > 0) ? CC_XSTREAM_CLIENT_OK : CC_XSTREAM_CLIENT_COMMAND_FAILED;
-         /*NOTREACHED*/
-         
-       case 0:
-         /* Resend packet if we got timeout. */
-         sendto(sock,  packet, packet_len, 0, (struct sockaddr *)(&sa), sa_len);
-         break;
-
-       default:
-         memset(&ra, 0, sizeof (ra));
-         cc_buffer_init(buf);
-         cc_buffer_append_space(buf, 2000);
-         ra_len = sizeof (ra);
-         l = recvfrom(sock, cc_buffer_ptr(buf), cc_buffer_len(buf), 0, (struct sockaddr *)(&ra), &ra_len);
-         if (l > 0)
-           {
-             cc_buffer_consume_end(buf, cc_buffer_len(buf) - l);
-             if (cc_xstream_buffer_decode_int(buf, &p_len) &&
-                 (p_len == cc_buffer_len(buf)) &&
-                 cc_xstream_buffer_decode_byte(buf, &ch) &&
-                 ((CcXstreamPacket)ch == CC_XSTREAM_XBMSP_PACKET_SERVER_DISCOVERY_REPLY) &&
-                 cc_xstream_buffer_decode_int(buf, &p_handle) &&
-                 (p_handle == handle) &&
-                 cc_xstream_buffer_decode_string(buf, (unsigned char **)(&p_address), NULL) &&
-                 cc_xstream_buffer_decode_string(buf, (unsigned char **)(&p_port), NULL) &&
-                 cc_xstream_buffer_decode_string(buf, (unsigned char **)(&p_version), NULL) &&
-                 cc_xstream_buffer_decode_string(buf, (unsigned char **)(&p_comment), NULL) &&
-                 (cc_buffer_len(buf) == 0))
-               {
-                 if (strlen(p_address) == 0)
-                   {
-                     cc_xfree(p_address);
-#ifdef _XBOX
-                     {
-                       unsigned char *b;
-
-                       b = (unsigned char *)(&(ra.sin_addr.s_addr));
-                       p_address = cc_xmalloc(32);
-                       sprintf(p_address, "%d.%d.%d.%d", (int)(b[0]), (int)(b[1]), (int)(b[2]), (int)(b[3]));
-                     }
-#else
-                     p_address = cc_xstrdup(inet_ntoa(ra.sin_addr));
-#endif
-                   }
-                 if (strlen(p_port) == 0)
-                   {
-                     cc_xfree(p_port);
-                     p_port = cc_xmalloc(16);
-#ifdef _XBOX
-                     sprintf(p_port, "%d", (int)(ntohs(ra.sin_port)));
-#else
-                     snprintf(p_port, 16, "%d", (int)(ntohs(ra.sin_port)));
-#endif
-                   }
-                 cc_buffer_append_string(buf, ">");
-                 cc_buffer_append_string(buf, p_address);
-                 cc_buffer_append_string(buf, ":");
-                 cc_buffer_append_string(buf, p_port);
-                 cc_buffer_append_string(buf, "<");
-                 ch = 0;
-                 /* Terminate both buffers with '\0' */
-                 cc_buffer_append(buf, &ch, 1);
-                 cc_buffer_append(seen_buf, &ch, 1);
-                 if (strstr((char *)cc_buffer_ptr(seen_buf), (char *)cc_buffer_ptr(buf)) == NULL)
-                   {
-                     /* Don't forget to remove the terminating '\0' */
-                     cc_buffer_consume_end(seen_buf, 1);
-                     cc_buffer_append_string(seen_buf, (char *)cc_buffer_ptr(buf));
-                     if (callback != NULL)
-                       (*callback)(p_address, p_port, p_version, p_comment, context);
-                     found++;
-                   }
-                 else
-                   {
-                     /* Don't forget to remove the terminating '\0' */
-                     cc_buffer_consume_end(seen_buf, 1);
-                   }
-                 cc_buffer_clear(buf);
-                 cc_xfree(p_address);
-                 cc_xfree(p_port);
-                 cc_xfree(p_version);
-                 cc_xfree(p_comment);
-               }
-           }
-         cc_buffer_uninit(buf);
-         break;
-       }
-    }
-#if defined (_XBOX) || defined (WIN32)
-  closesocket(sock);
-#else
-  close(sock);
-#endif
-  cc_xfree(packet);
-
-  return (found > 0) ? CC_XSTREAM_CLIENT_OK : CC_XSTREAM_CLIENT_SERVER_NOT_FOUND;
-}
-
-/* eof (ccxdiscover.c) */
diff --git a/lib/libXBMS/ccxencode.c b/lib/libXBMS/ccxencode.c
deleted file mode 100644 (file)
index 94f8a36..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Protocol packet encode/decode for CcXstream Server for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#include "ccincludes.h"
-#include "ccbuffer.h"
-#include "ccxencode.h"
-
-void cc_xstream_encode_int(unsigned char *buf, unsigned long x)
-{
-  buf[3] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  buf[2] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  buf[1] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  buf[0] = (unsigned char)(x & 0xff);
-}
-
-void cc_xstream_buffer_encode_int(CcBuffer buf, unsigned long x)
-{
-  cc_buffer_append_space(buf, 4);
-  cc_xstream_encode_int(cc_buffer_ptr(buf) + cc_buffer_len(buf) - 4, x);
-}
-
-void cc_xstream_buffer_encode_int64(CcBuffer buf, CC_UINT_64_TYPE_NAME x)
-{
-  unsigned char nb[8];
-
-  nb[7] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[6] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[5] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[4] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[3] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[2] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[1] = (unsigned char)(x & 0xff);
-  x >>= 8;
-  nb[0] = (unsigned char)(x & 0xff);
-  cc_buffer_append(buf, nb, 8);
-}
-
-void cc_xstream_buffer_encode_byte(CcBuffer buf, unsigned char b)
-{
-  cc_buffer_append(buf, &b, 1);
-}
-
-void cc_xstream_buffer_encode_data_string(CcBuffer buf, const unsigned char *str, size_t str_len)
-{
-  cc_xstream_buffer_encode_int(buf, (unsigned long)str_len);
-  cc_buffer_append(buf, str, str_len);
-}
-
-void cc_xstream_buffer_encode_string(CcBuffer buf, const char *str)
-{
-  size_t str_len;
-
-  str_len = strlen(str);
-  cc_xstream_buffer_encode_int(buf, (unsigned long)str_len);
-  cc_buffer_append(buf, (unsigned char *)str, str_len);
-}
-
-void cc_xstream_buffer_encode_packet_length(CcBuffer buf)
-{
-  unsigned long len;
-  unsigned char hlp[4];
-
-  len = (unsigned long)cc_buffer_len(buf);
-  cc_xstream_encode_int(hlp, len);
-  cc_buffer_prepend(buf, hlp, 4);
-}
-
-
-unsigned long cc_xstream_decode_int(const unsigned char *buf)
-{
-  unsigned long r;
-
-  r = (unsigned long)(buf[0]);
-  r <<= 8;
-  r |= (unsigned long)(buf[1]);
-  r <<= 8;
-  r |= (unsigned long)(buf[2]);
-  r <<= 8;
-  r |= (unsigned long)(buf[3]);
-  return r;
-}
-
-int cc_xstream_buffer_decode_int(CcBuffer buf, unsigned long *x)
-{
-  if (cc_buffer_len(buf) < 4)
-    return 0;
-  *x = cc_xstream_decode_int(cc_buffer_ptr(buf));
-  cc_buffer_consume(buf, 4);
-  return 1;
-}
-
-int cc_xstream_buffer_decode_int64(CcBuffer buf, CC_UINT_64_TYPE_NAME *x)
-{
-  CC_UINT_64_TYPE_NAME r;
-  unsigned char *b;
-  int i;
-
-  if (cc_buffer_len(buf) < 8)
-    return 0;
-  r = 0;
-  for (i = 0; i < 8; i++)
-    {
-      b = cc_buffer_ptr(buf) + i;
-      r = (r << 8) | (CC_UINT_64_TYPE_NAME)(*b);
-    }
-  *x = r;
-  cc_buffer_consume(buf, 8);
-  return 1;
-}
-
-int cc_xstream_buffer_decode_byte(CcBuffer buf, unsigned char *b)
-{
-  if (cc_buffer_len(buf) < 1)
-    return 0;
-  *b = *(cc_buffer_ptr(buf));
-  cc_buffer_consume(buf, 1);
-  return 1;
-}
-
-int cc_xstream_buffer_decode_string(CcBuffer buf, unsigned char **str, size_t *str_len)
-{
-  unsigned long len;
-
-  if (cc_buffer_len(buf) < 4)
-    return 0;
-  len = cc_xstream_decode_int(cc_buffer_ptr(buf));
-  if ((len + 4) > cc_buffer_len(buf))
-    return 0;
-  cc_buffer_consume(buf, 4);
-  if (str_len != NULL)
-    *str_len = (size_t)len;
-  *str = cc_xmemdup(cc_buffer_ptr(buf), len);
-  cc_buffer_consume(buf, len);
-  return 1;
-}
-
-/* eof (ccxencode.c) */
diff --git a/lib/libXBMS/ccxencode.h b/lib/libXBMS/ccxencode.h
deleted file mode 100644 (file)
index 18d68b3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Protocol packet encode/decode for CcXstream Server for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#ifndef CC_XENCODE_H_INCLUDED
-#define CC_XENCODE_H_INCLUDED 1
-
-#include "ccbuffer.h"
-
-void cc_xstream_encode_int(unsigned char *buf, unsigned long x);
-void cc_xstream_buffer_encode_int(CcBuffer buf, unsigned long x);
-void cc_xstream_buffer_encode_int64(CcBuffer buf, CC_UINT_64_TYPE_NAME x);
-void cc_xstream_buffer_encode_byte(CcBuffer buf, unsigned char b);
-void cc_xstream_buffer_encode_string(CcBuffer buf, const char *str);
-void cc_xstream_buffer_encode_data_string(CcBuffer buf, const unsigned char *str, size_t str_len);
-void cc_xstream_buffer_encode_packet_length(CcBuffer buf);
-
-unsigned long cc_xstream_decode_int(const unsigned char *buf);
-int cc_xstream_buffer_decode_int(CcBuffer buf, unsigned long *x);
-int cc_xstream_buffer_decode_int64(CcBuffer buf, CC_UINT_64_TYPE_NAME *x);
-int cc_xstream_buffer_decode_byte(CcBuffer buf, unsigned char *b);
-int cc_xstream_buffer_decode_string(CcBuffer buf, unsigned char **str, size_t *str_len);
-
-#endif /* CC_XENCODE_H_INCLUDED */
-/* eof (ccxencode.h) */
diff --git a/lib/libXBMS/ccxmltrans.c b/lib/libXBMS/ccxmltrans.c
deleted file mode 100644 (file)
index ef06dc0..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-// Place the code and data below here into the LIBXBMS section.
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Translate raw strings so that they can be inserted into xml.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#include "ccincludes.h"
-#include "ccbuffer.h"
-#include "ccxmltrans.h"
-
-typedef struct {
-   char *raw;
-   char *xml;
-} CcXstreamXmlTranslationRec, *CcXstreamXmlTranslation;
-
-#ifndef __GNUC__
-#pragma code_seg()
-#pragma data_seg()
-#pragma bss_seg()
-#pragma const_seg()
-#endif
-
-static CcXstreamXmlTranslationRec cc_xml_translation[] = {
-  { ">", "&gt;" },
-  { "<", "&lt;" },
-  { "/", "&slash;" },
-  { "\\", "&backslash;" },
-  { "\"", "&doublequote;" },
-  { "&", "&amp;" },
-  { NULL, NULL }
-};
-
-#ifndef __GNUC__
-#pragma code_seg( "LIBXBMS" )
-#pragma data_seg( "LIBXBMS_RW" )
-#pragma bss_seg( "LIBXBMS_RW" )
-#pragma const_seg( "LIBXBMS_RD" )
-#pragma comment(linker, "/merge:LIBXBMS_RW=LIBXBMS")
-#pragma comment(linker, "/merge:LIBXBMS_RD=LIBXBMS")
-#endif
-
-char *cc_xstream_xml_encode(const char *raw)
-{
-  CcBufferRec buf[1];
-  const char *tmp;
-  char *r, cb[16];
-  int i;
-  unsigned int x;
-
-  cc_buffer_init(buf);
-  for (tmp = raw; *tmp != '\0'; /*NOTHING*/)
-    {
-      for (i = 0; cc_xml_translation[i].raw != NULL; i++)
-       {
-         if (strncmp(tmp, cc_xml_translation[i].raw, strlen(cc_xml_translation[i].raw)) == 0)
-           {
-             cc_buffer_append_string(buf, cc_xml_translation[i].xml);
-             tmp += strlen(cc_xml_translation[i].raw);
-             break;
-           }
-       }
-      if (cc_xml_translation[i].raw == NULL)
-       {
-         if (isprint(*tmp) && ((! isspace(*tmp)) || (*tmp == ' ')))
-           {
-             cc_buffer_append(buf, (unsigned char *)tmp, 1);
-           }
-         else
-           {
-             x = (unsigned int)(*tmp);
-             sprintf(cb, "&%04x;", x);
-             cc_buffer_append_string(buf, cb);
-           }
-         tmp++;
-       }
-    }
-  r = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  cc_buffer_uninit(buf);
-  return r;
-}
-
-char *cc_xstream_xml_decode(const char *xml)
-{
-  CcBufferRec buf[1];
-  const char *tmp;
-  char *r;
-  unsigned long l;
-  unsigned char c;
-  int i;
-
-  cc_buffer_init(buf);
-  for (tmp = xml; *tmp != '\0'; /*NOTHING*/)
-    {
-      for (i = 0; cc_xml_translation[i].xml != NULL; i++)
-       {
-         if (strncmp(tmp, cc_xml_translation[i].xml, strlen(cc_xml_translation[i].xml)) == 0)
-           {
-             cc_buffer_append_string(buf, cc_xml_translation[i].raw);
-             tmp += strlen(cc_xml_translation[i].xml);
-             break;
-           }
-       }
-      if (cc_xml_translation[i].raw == NULL)
-       {
-         if ((tmp[0] == '&') &&
-             (tmp[1] == '0') &&
-             (tmp[2] == '0') &&
-             (isxdigit(tmp[3])) &&
-             (isxdigit(tmp[4])) &&
-             (tmp[5] == ';'))
-           {
-             l = strtoul(tmp + 1, NULL, 16);
-             c = (unsigned char)l;
-             cc_buffer_append(buf, &c, 1);
-             tmp += 6;
-           }
-         else
-           {
-             cc_buffer_append(buf, (unsigned char *)tmp, 1);
-             tmp++;
-           }
-       }
-    }
-  r = cc_xmemdup(cc_buffer_ptr(buf), cc_buffer_len(buf));
-  cc_buffer_uninit(buf);
-  return r;
-}
-
-/* eof (ccxmltrans.c) */
diff --git a/lib/libXBMS/ccxmltrans.h b/lib/libXBMS/ccxmltrans.h
deleted file mode 100644 (file)
index c279a79..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Translate raw strings so that they can be inserted into xml.
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#ifndef CC_XMLTRANS_H_INCLUDED
-#define CC_XMLTRANS_H_INCLUDED 1
-
-char *cc_xstream_xml_encode(const char *raw);
-char *cc_xstream_xml_decode(const char *xml);
-
-#endif /* CC_XMLTRANS_H_INCLUDED */
-/* eof (ccxmltrans.h) */
diff --git a/lib/libXBMS/ccxpacket.h b/lib/libXBMS/ccxpacket.h
deleted file mode 100644 (file)
index aa01dfd..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*   -*- c -*-
- * 
- *  ----------------------------------------------------------------------
- *  Protocol packet definitions for CcXstream Server for XBMC Media Center
- *  ----------------------------------------------------------------------
- *
- *  Copyright (c) 2002-2003 by PuhPuh
- *  
- *  This code is copyrighted property of the author.  It can still
- *  be used for any non-commercial purpose following conditions:
- *  
- *      1) This copyright notice is not removed.
- *      2) Source code follows any distribution of the software
- *         if possible.
- *      3) Copyright notice above is found in the documentation
- *         of the distributed software.
- *  
- *  Any express or implied warranties are disclaimed.  Author is
- *  not liable for any direct or indirect damages caused by the use
- *  of this software.
- *
- *  ----------------------------------------------------------------------
- *
- *  This code has been integrated into XBMC Media Center.  
- *  As such it can me copied, redistributed and modified under
- *  the same conditions as the XBMC itself.
- *
- */
-
-#ifndef CC_XPACKET_H_INCLUDED
-#define CC_XPACKET_H_INCLUDED 1
-
-typedef enum {
-  /* Server -> Client */
-  CC_XSTREAM_XBMSP_PACKET_OK = 1,
-  CC_XSTREAM_XBMSP_PACKET_ERROR = 2,
-  CC_XSTREAM_XBMSP_PACKET_HANDLE = 3,
-  CC_XSTREAM_XBMSP_PACKET_FILE_DATA = 4,
-  CC_XSTREAM_XBMSP_PACKET_FILE_CONTENTS = 5,
-  CC_XSTREAM_XBMSP_PACKET_AUTHENTICATION_CONTINUE = 6,
-  /* Client -> Server */
-  CC_XSTREAM_XBMSP_PACKET_NULL = 10,
-  CC_XSTREAM_XBMSP_PACKET_SETCWD = 11,
-  CC_XSTREAM_XBMSP_PACKET_FILELIST_OPEN = 12,
-  CC_XSTREAM_XBMSP_PACKET_FILELIST_READ = 13,
-  CC_XSTREAM_XBMSP_PACKET_FILE_INFO = 14,
-  CC_XSTREAM_XBMSP_PACKET_FILE_OPEN = 15,
-  CC_XSTREAM_XBMSP_PACKET_FILE_READ = 16,
-  CC_XSTREAM_XBMSP_PACKET_FILE_SEEK = 17,
-  CC_XSTREAM_XBMSP_PACKET_CLOSE = 18,
-  CC_XSTREAM_XBMSP_PACKET_CLOSE_ALL = 19,
-  CC_XSTREAM_XBMSP_PACKET_SET_CONFIGURATION_OPTION = 20,
-  CC_XSTREAM_XBMSP_PACKET_AUTHENTICATION_INIT = 21,
-  CC_XSTREAM_XBMSP_PACKET_AUTHENTICATE = 22,
-  CC_XSTREAM_XBMSP_PACKET_UPCWD = 23,
-  /* Server discovery packets */
-  CC_XSTREAM_XBMSP_PACKET_SERVER_DISCOVERY_QUERY = 90,
-  CC_XSTREAM_XBMSP_PACKET_SERVER_DISCOVERY_REPLY = 91
-} CcXstreamPacket;
-
-typedef enum {
-  CC_XSTREAM_XBMSP_ERROR_OK = 0,
-  CC_XSTREAM_XBMSP_ERROR_FAILURE = 1,
-  CC_XSTREAM_XBMSP_ERROR_UNSUPPORTED = 2,
-  CC_XSTREAM_XBMSP_ERROR_NO_SUCH_FILE = 3,
-  CC_XSTREAM_XBMSP_ERROR_INVALID_FILE = 4,
-  CC_XSTREAM_XBMSP_ERROR_INVALID_HANDLE = 5,
-  CC_XSTREAM_XBMSP_ERROR_OPEN_FAILED = 6,
-  CC_XSTREAM_XBMSP_ERROR_TOO_MANY_OPEN_FILES = 7,
-  CC_XSTREAM_XBMSP_ERROR_TOO_LONG_READ = 8,
-  CC_XSTREAM_XBMSP_ERROR_ILLEGAL_SEEK = 9,
-  CC_XSTREAM_XBMSP_ERROR_OPTION_IS_READ_ONLY = 10,
-  CC_XSTREAM_XBMSP_ERROR_INVALID_OPTION_VALUE = 11,
-  CC_XSTREAM_XBMSP_ERROR_AUTHENTICATION_NEEDED = 12,
-  CC_XSTREAM_XBMSP_ERROR_AUTHENTICATION_FAILED = 13
-} CcXstreamError;
-
-#define CC_XSTREAM_DEFAULT_PORT 1400
-
-#endif /* CC_XPACKET_H_INCLUDED */
-/* eof (ccxpacket.h) */
diff --git a/lib/libXBMS/ccxversion.h b/lib/libXBMS/ccxversion.h
deleted file mode 100644 (file)
index 79f6cd0..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef CC_XSTREAM_SW_VERSION
-#define CC_XSTREAM_SW_VERSION "1.0.14 for XBox"
-#endif /* ! CC_XSTREAM_SW_VERSION */
diff --git a/lib/libXBMS/libXBMS/libXBMS.vcproj b/lib/libXBMS/libXBMS/libXBMS.vcproj
deleted file mode 100644 (file)
index e8438ae..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-       ProjectType="Visual C++"
-       Version="9,00"
-       Name="libXBMS"
-       ProjectGUID="{706163E2-5422-4A94-8464-082ADA8C2769}"
-       RootNamespace="libXBMS"
-       Keyword="Win32Proj"
-       TargetFrameworkVersion="196613"
-       >
-       <Platforms>
-               <Platform
-                       Name="Win32"
-               />
-       </Platforms>
-       <ToolFiles>
-       </ToolFiles>
-       <Configurations>
-               <Configuration
-                       Name="Debug|Win32"
-                       OutputDirectory="$(SolutionDir)libs\$(ProjectName)\$(ConfigurationName)\"
-                       IntermediateDirectory="$(SolutionDir)objs\$(ProjectName)\$(ConfigurationName)\"
-                       ConfigurationType="4"
-                       CharacterSet="1"
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                       />
-                       <Tool
-                               Name="VCCustomBuildTool"
-                       />
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCMIDLTool"
-                       />
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               Optimization="0"
-                               AdditionalIncludeDirectories="..\..\..\win32\"
-                               PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE"
-                               MinimalRebuild="true"
-                               BasicRuntimeChecks="3"
-                               RuntimeLibrary="1"
-                               UsePrecompiledHeader="0"
-                               WarningLevel="3"
-                               DebugInformationFormat="4"
-                               CompileAs="1"
-                       />
-                       <Tool
-                               Name="VCManagedResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCPreLinkEventTool"
-                       />
-                       <Tool
-                               Name="VCLibrarianTool"
-                       />
-                       <Tool
-                               Name="VCALinkTool"
-                       />
-                       <Tool
-                               Name="VCXDCMakeTool"
-                       />
-                       <Tool
-                               Name="VCBscMakeTool"
-                       />
-                       <Tool
-                               Name="VCFxCopTool"
-                       />
-                       <Tool
-                               Name="VCPostBuildEventTool"
-                       />
-               </Configuration>
-               <Configuration
-                       Name="Release|Win32"
-                       OutputDirectory="$(SolutionDir)libs\$(ProjectName)\$(ConfigurationName)\"
-                       IntermediateDirectory="$(SolutionDir)objs\$(ProjectName)\$(ConfigurationName)\"
-                       ConfigurationType="4"
-                       CharacterSet="1"
-                       WholeProgramOptimization="1"
-                       >
-                       <Tool
-                               Name="VCPreBuildEventTool"
-                       />
-                       <Tool
-                               Name="VCCustomBuildTool"
-                       />
-                       <Tool
-                               Name="VCXMLDataGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCWebServiceProxyGeneratorTool"
-                       />
-                       <Tool
-                               Name="VCMIDLTool"
-                       />
-                       <Tool
-                               Name="VCCLCompilerTool"
-                               Optimization="3"
-                               EnableIntrinsicFunctions="true"
-                               WholeProgramOptimization="false"
-                               AdditionalIncludeDirectories="..\..\..\win32\"
-                               PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE"
-                               RuntimeLibrary="0"
-                               EnableFunctionLevelLinking="true"
-                               UsePrecompiledHeader="0"
-                               WarningLevel="3"
-                               DebugInformationFormat="3"
-                               CompileAs="1"
-                       />
-                       <Tool
-                               Name="VCManagedResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCResourceCompilerTool"
-                       />
-                       <Tool
-                               Name="VCPreLinkEventTool"
-                       />
-                       <Tool
-                               Name="VCLibrarianTool"
-                       />
-                       <Tool
-                               Name="VCALinkTool"
-                       />
-                       <Tool
-                               Name="VCXDCMakeTool"
-                       />
-                       <Tool
-                               Name="VCBscMakeTool"
-                       />
-                       <Tool
-                               Name="VCFxCopTool"
-                       />
-                       <Tool
-                               Name="VCPostBuildEventTool"
-                       />
-               </Configuration>
-       </Configurations>
-       <References>
-       </References>
-       <Files>
-               <Filter
-                       Name="Source Files"
-                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-                       >
-                       <File
-                               RelativePath="..\ccbuffer.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccutil.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxclient.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxclientconnxbox.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxdiscover.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxencode.c"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxmltrans.c"
-                               >
-                       </File>
-               </Filter>
-               <Filter
-                       Name="Header Files"
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-                       >
-                       <File
-                               RelativePath="..\ccbuffer.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccincludes.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccutil.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxclient.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxencode.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxmltrans.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxpacket.h"
-                               >
-                       </File>
-                       <File
-                               RelativePath="..\ccxversion.h"
-                               >
-                       </File>
-               </Filter>
-       </Files>
-       <Globals>
-       </Globals>
-</VisualStudioProject>
diff --git a/lib/libXBMS/libXBMS/libXBMS.vcxproj b/lib/libXBMS/libXBMS/libXBMS.vcxproj
deleted file mode 100644 (file)
index 2d9d4eb..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{706163E2-5422-4A94-8464-082ADA8C2769}</ProjectGuid>
-    <RootNamespace>libXBMS</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\project\VS2010Express\XBMC for Windows.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\project\VS2010Express\XBMC for Windows.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)libs\$(TargetName)\$(Configuration)\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)objs\$(TargetName)\$(Configuration)\</IntDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\xbmc\win32\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>Full</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>..\..\..\xbmc\win32\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <PrecompiledHeader>
-      </PrecompiledHeader>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <CompileAs>CompileAsC</CompileAs>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\ccbuffer.c" />
-    <ClCompile Include="..\ccutil.c" />
-    <ClCompile Include="..\ccxclient.c" />
-    <ClCompile Include="..\ccxclientconnxbox.c" />
-    <ClCompile Include="..\ccxdiscover.c" />
-    <ClCompile Include="..\ccxencode.c" />
-    <ClCompile Include="..\ccxmltrans.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\ccbuffer.h" />
-    <ClInclude Include="..\ccincludes.h" />
-    <ClInclude Include="..\ccutil.h" />
-    <ClInclude Include="..\ccxclient.h" />
-    <ClInclude Include="..\ccxencode.h" />
-    <ClInclude Include="..\ccxmltrans.h" />
-    <ClInclude Include="..\ccxpacket.h" />
-    <ClInclude Include="..\ccxversion.h" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/lib/libXBMS/libXBMS/libXBMS.vcxproj.filters b/lib/libXBMS/libXBMS/libXBMS.vcxproj.filters
deleted file mode 100644 (file)
index 31fef67..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
-    </Filter>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
-      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="..\ccbuffer.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccutil.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccxclient.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccxclientconnxbox.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccxdiscover.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccxencode.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-    <ClCompile Include="..\ccxmltrans.c">
-      <Filter>Source Files</Filter>
-    </ClCompile>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\ccbuffer.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccincludes.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccutil.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccxclient.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccxencode.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccxmltrans.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccxpacket.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="..\ccxversion.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-  </ItemGroup>
-</Project>
\ No newline at end of file
index 5b747d0..ca0a627 100644 (file)
@@ -22,8 +22,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcmyth_dll", "..\..\lib\c
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpcre", "..\..\lib\win32\pcre\libpcre\libpcre.vcxproj", "{D8097C41-605D-4917-8957-9DF7F44A18CD}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXBMS", "..\..\lib\libXBMS\libXBMS\libXBMS.vcxproj", "{706163E2-5422-4A94-8464-082ADA8C2769}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libXDAAP", "..\..\lib\libXDAAP\libXDAAP_win32\libXDAAP_win32.vcxproj", "{19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libenca", "..\..\lib\enca\libenca_win32\libenca_win32.vcxproj", "{22B25AEC-7223-46FC-8356-4418327EFDE1}"
@@ -164,14 +162,6 @@ Global
                {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (DirectX)|Win32.Build.0 = Release|Win32
                {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32
                {D8097C41-605D-4917-8957-9DF7F44A18CD}.Release (OpenGL)|Win32.Build.0 = Release|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (DirectX)|Win32.Build.0 = Debug|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Debug (OpenGL)|Win32.Build.0 = Debug|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Release (DirectX)|Win32.ActiveCfg = Release|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Release (DirectX)|Win32.Build.0 = Release|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Release (OpenGL)|Win32.ActiveCfg = Release|Win32
-               {706163E2-5422-4A94-8464-082ADA8C2769}.Release (OpenGL)|Win32.Build.0 = Release|Win32
                {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (DirectX)|Win32.ActiveCfg = Debug|Win32
                {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (DirectX)|Win32.Build.0 = Debug|Win32
                {19B16CD0-3B47-47B7-AB0E-81EF2BF1B187}.Debug (OpenGL)|Win32.ActiveCfg = Debug|Win32
index b58dd8d..410f994 100644 (file)
     <ClCompile Include="..\..\xbmc\FileSystem\FileShoutcast.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\FileSpecialProtocol.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\FileTuxBox.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\FileXBMSP.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\FileZip.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\FTPDirectory.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\FTPParse.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\VTPDirectory.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\VTPFile.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\VTPSession.cpp" />
-    <ClCompile Include="..\..\xbmc\FileSystem\XBMSDirectory.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\ZipDirectory.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\ZipManager.cpp" />
     <ClCompile Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.cpp" />
     <ClInclude Include="..\..\xbmc\FileSystem\FileShoutcast.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\FileSpecialProtocol.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\FileTuxBox.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\FileXBMSP.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\FileZip.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\FTPDirectory.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\FTPParse.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\VTPDirectory.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\VTPFile.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\VTPSession.h" />
-    <ClInclude Include="..\..\xbmc\FileSystem\XBMSDirectory.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\ZipDirectory.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\ZipManager.h" />
     <ClInclude Include="..\..\xbmc\FileSystem\MusicDatabaseDirectory\DirectoryNode.h" />
index 32e687b..0464eb1 100644 (file)
     <ClCompile Include="..\..\xbmc\FileSystem\FileTuxBox.cpp">
       <Filter>filesystem</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\FileXBMSP.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\xbmc\FileSystem\FileZip.cpp">
       <Filter>filesystem</Filter>
     </ClCompile>
     <ClCompile Include="..\..\xbmc\FileSystem\VTPSession.cpp">
       <Filter>filesystem</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\xbmc\FileSystem\XBMSDirectory.cpp">
-      <Filter>filesystem</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\xbmc\FileSystem\ZipDirectory.cpp">
       <Filter>filesystem</Filter>
     </ClCompile>
     <ClInclude Include="..\..\xbmc\FileSystem\FileTuxBox.h">
       <Filter>filesystem</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\FileXBMSP.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\xbmc\FileSystem\FileZip.h">
       <Filter>filesystem</Filter>
     </ClInclude>
     <ClInclude Include="..\..\xbmc\FileSystem\VTPSession.h">
       <Filter>filesystem</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\xbmc\FileSystem\XBMSDirectory.h">
-      <Filter>filesystem</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\xbmc\FileSystem\ZipDirectory.h">
       <Filter>filesystem</Filter>
     </ClInclude>
index dbe538f..2b2ac5e 100644 (file)
@@ -774,11 +774,6 @@ bool CFileItem::IsSmb() const
   return URIUtils::IsSmb(m_strPath);
 }
 
-bool CFileItem::IsXBMS() const
-{
-  return URIUtils::IsXBMS(m_strPath);
-}
-
 bool CFileItem::IsURL() const
 {
   return URIUtils::IsURL(m_strPath);
@@ -1990,13 +1985,10 @@ void CFileItemList::Stack()
     if (item->m_bIsFolder)
     {
       // only check known fast sources?
-      // xbms included because it supports file existance
       // NOTES:
-      // 1. xbms would not have worked previously: item->m_strPath.Left(5).Equals("xbms", false)
-      // 2. rars and zips may be on slow sources? is this supposed to be allowed?
+      // 1. rars and zips may be on slow sources? is this supposed to be allowed?
       if( !item->IsRemote()
         || item->IsSmb()
-        || item->IsXBMS()
         || URIUtils::IsInRAR(item->m_strPath)
         || URIUtils::IsInZIP(item->m_strPath)
         )
index 59c5868..fc81dc2 100644 (file)
@@ -176,10 +176,6 @@ CStdString CUtil::GetTitleFromPath(const CStdString& strFileNameAndPath, bool bI
       strFilename = url.GetHostName();
     }
   }
-  // XBMSP Network
-  else if (url.GetProtocol() == "xbms" && strFilename.IsEmpty())
-    strFilename = "XBMSP Network";
-
   // iTunes music share (DAAP)
   else if (url.GetProtocol() == "daap" && strFilename.IsEmpty())
     strFilename = g_localizeStrings.Get(20174);
@@ -1300,6 +1296,9 @@ bool CUtil::TestSplitExec()
   CUtil::SplitExecFunction("ActivateWindow(Video, \"C:\\\\\\\\test\\\\\\foo\\\\\")", function, params);
   if (function != "ActivateWindow" || params.size() != 2 || params[0] != "Video" || params[1] != "C:\\\\test\\\\foo\\")
     return false;
+  CUtil::SplitExecFunction("SetProperty(Foo,\"\")", function, params);
+  if (function != "SetProperty" || params.size() != 2 || params[0] != "Foo" || params[1] != "")
+   return false;
   return true;
 }
 #endif
@@ -1389,7 +1388,7 @@ void CUtil::SplitExecFunction(const CStdString &execString, CStdString &function
     CLog::Log(LOGWARNING, "%s(%s) - end of string while searching for ) or \"", __FUNCTION__, execString.c_str());
   if (whiteSpacePos)
     parameter = parameter.Left(whiteSpacePos);
-  if (!parameter.IsEmpty())
+  if (!parameter.IsEmpty() || parameters.size())
     parameters.push_back(parameter);
 }
 
index e1f9788..2e5df70 100644 (file)
@@ -52,9 +52,6 @@
 #include "SMBDirectory.h"
 #endif
 #endif
-#if defined(HAS_FILESYSTEM_CCX)
-#include "XBMSDirectory.h"
-#endif
 #ifdef HAS_FILESYSTEM_CDDA
 #include "CDDADirectory.h"
 #endif
@@ -160,9 +157,6 @@ IDirectory* CFactoryDirectory::Create(const CStdString& strPath)
     if (strProtocol == "smb") return new CSMBDirectory();
 #endif
 #endif
-#ifdef HAS_FILESYSTEM_CCX
-    if (strProtocol == "xbms") return new CXBMSDirectory();
-#endif
 #ifdef HAS_FILESYSTEM
 #ifdef HAS_FILESYSTEM_DAAP
     if (strProtocol == "daap") return new CDAAPDirectory();
index 8f00447..337f00e 100644 (file)
@@ -37,9 +37,6 @@
 #include "FileSmb.h"
 #endif
 #endif
-#ifdef HAS_FILESYSTEM_CCX
-#include "FileXBMSP.h"
-#endif
 #ifdef HAS_FILESYSTEM_CDDA
 #include "FileCDDA.h"
 #endif
@@ -141,9 +138,6 @@ IFile* CFileFactory::CreateLoader(const CURL& url)
     else if (strProtocol == "smb") return new CFileSMB();
 #endif
 #endif
-#ifdef HAS_FILESYSTEM_CCX
-    else if (strProtocol == "xbms") return new CFileXBMSP();
-#endif
 #ifdef HAS_FILESYSTEM
 #ifdef HAS_FILESYSTEM_RTV
     else if (strProtocol == "rtv") return new CFileRTV();
diff --git a/xbmc/filesystem/FileXBMSP.cpp b/xbmc/filesystem/FileXBMSP.cpp
deleted file mode 100644 (file)
index 0ec99f7..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
-* XBMC Media Center
-* Copyright (c) 2002 Frodo
-* Portions Copyright (c) by the authors of ffmpeg and xvid
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "FileXBMSP.h"
-#include "utils/URIUtils.h"
-#include "Directory.h"
-#include "SectionLoader.h"
-#include "URL.h"
-#include "settings/AdvancedSettings.h"
-#include "utils/CharsetConverter.h"
-#include "utils/log.h"
-
-#include <sys/stat.h>
-
-using namespace XFILE;
-
-namespace XFILE
-{
-
-static UINT64 strtouint64(const char *s)
-{
-  UINT64 r = 0;
-
-  while ((*s != 0) && (isspace(*s)))
-    s++;
-  if (*s == '+')
-    s++;
-  while ((*s != 0) && (isdigit(*s)))
-  {
-    r = r * ((UINT64)10);
-    r += ((UINT64)(*s)) - ((UINT64)'0');
-    s++;
-  }
-  return r;
-}
-
-//////////////////////////////////////////////////////////////////////
-// Construction/Destruction
-//////////////////////////////////////////////////////////////////////
-
-CFileXBMSP::CFileXBMSP()
-{
-  CSectionLoader::Load("LIBXBMS");
-  m_fileSize = 0;
-  m_bOpened = false;
-}
-
-CFileXBMSP::~CFileXBMSP()
-{
-  Close();
-  CSectionLoader::Unload("LIBXBMS");
-}
-
-//*********************************************************************************************
-bool CFileXBMSP::Open(const CURL& urlUtf8)
-{
-  CStdString strURL = urlUtf8.Get();
-  g_charsetConverter.utf8ToStringCharset(strURL);
-
-  CURL url(strURL);
-  const char* strUserName = url.GetUserName().c_str();
-  const char* strPassword = url.GetPassWord().c_str();
-  const char* strHostName = url.GetHostName().c_str();
-  const char* strFileName = url.GetFileName().c_str();
-  int iport = url.GetPort();
-
-  char *tmp1, *tmp2, *info;
-
-  if (m_bOpened) Close();
-
-  m_bOpened = false;
-  m_fileSize = 0;
-  m_filePos = 0;
-
-  if (g_advancedSettings.m_logLevel >= LOG_LEVEL_DEBUG_SAMBA)
-    CLog::Log(LOGDEBUG,"xbms:open: %s",strFileName);
-
-  if (cc_xstream_client_connect(strHostName,
-                                (iport > 0) ? iport : 1400,
-                                &m_connection) != CC_XSTREAM_CLIENT_OK)
-  {
-    CLog::Log(LOGDEBUG, "xbms:unable to connect");
-    return false;
-  }
-  if (cc_xstream_client_version_handshake(m_connection) != CC_XSTREAM_CLIENT_OK)
-  {
-    CLog::Log(LOGDEBUG, "xbms:unable handshake");
-    cc_xstream_client_disconnect(m_connection);
-
-    return false;
-  }
-
-  // Authenticate here!
-  if ((strPassword != NULL) && (strlen(strPassword) > 0))
-  {
-    // We don't check the return value here.  If authentication
-    // step fails, let's try if server lets us log in without
-    // authentication.
-    cc_xstream_client_password_authenticate(m_connection,
-                                            (strUserName != NULL) ? strUserName : "",
-                                            strPassword);
-  }
-
-  CStdString strFile = URIUtils::GetFileName(strFileName);
-
-  char szPath[1024];
-  strcpy(szPath, "");
-  if (strFile.size() != strlen(strFileName) )
-  {
-    strncpy(szPath, strFileName, strlen(strFileName) - (strFile.size() + 1) );
-    szPath[ strlen(strFileName) - (strFile.size() + 1)] = 0;
-  }
-
-
-  CStdString strDir;
-  strDir = "";
-
-  if (g_advancedSettings.m_logLevel >= LOG_LEVEL_DEBUG_SAMBA)
-    CLog::Log(LOGDEBUG,"xbms:setdir:/");
-
-  if (cc_xstream_client_setcwd(m_connection, "/") == CC_XSTREAM_CLIENT_OK)
-  {
-    CStdString strPath = szPath;
-    for (int i = 0; i < (int)strPath.size(); ++i)
-    {
-      if (strPath[i] == '/' || strPath[i] == '\\')
-      {
-        if (strDir != "")
-        {
-          if (g_advancedSettings.m_logLevel >= LOG_LEVEL_DEBUG_SAMBA)
-            CLog::Log(LOGDEBUG,"xbms:setdir: %s",strDir.c_str());
-
-          if (cc_xstream_client_setcwd(m_connection, strDir.c_str()) != CC_XSTREAM_CLIENT_OK)
-          {
-            CLog::Log(LOGDEBUG, "xbms:unable set dir");
-            if (m_connection != 0) cc_xstream_client_disconnect(m_connection);
-            return false;
-          }
-        }
-        strDir = "";
-      }
-      else
-      {
-        strDir += strPath[i];
-      }
-    }
-  }
-  else
-  {
-    CLog::Log(LOGDEBUG, "xbms:unable set dir");
-    if (m_connection != 0) cc_xstream_client_disconnect(m_connection);
-    return false;
-  }
-  if (strDir.size() > 0)
-  {
-    if (g_advancedSettings.m_logLevel >= LOG_LEVEL_DEBUG_SAMBA)
-      CLog::Log(LOGDEBUG,"xbms:setdir: %s",strDir.c_str());
-
-    if (cc_xstream_client_setcwd(m_connection, strDir.c_str()) != CC_XSTREAM_CLIENT_OK)
-    {
-      CLog::Log(LOGDEBUG, "xbms:unable set dir");
-      if (m_connection != 0) cc_xstream_client_disconnect(m_connection);
-      return false;
-    }
-  }
-
-  if (cc_xstream_client_file_info(m_connection, strFile.c_str(), &info) != CC_XSTREAM_CLIENT_OK)
-  {
-    CLog::Log(LOGDEBUG, "xbms:unable to get info for file: %s", strFile.c_str());
-    cc_xstream_client_disconnect(m_connection);
-    return false;
-  }
-
-  if (strstr(info, "<ATTRIB>file</ATTRIB>") != NULL)
-  {
-    tmp1 = strstr(info, "<SIZE>");
-    tmp2 = strstr(info, "</SIZE>");
-    if ((tmp1 != NULL) && (tmp2 != NULL) && (tmp2 > tmp1) && ((tmp2 - tmp1) < 22))
-    {
-      m_fileSize = strtouint64(tmp1 + 6);
-    }
-    else
-    {
-      m_fileSize = 4000000000U;
-    }
-  }
-  else
-  {
-    m_fileSize = 4000000000U;
-  }
-  free(info);
-
-  if (cc_xstream_client_file_open(m_connection, strFile.c_str(), &m_handle) != CC_XSTREAM_CLIENT_OK)
-  {
-    CLog::Log(LOGDEBUG, "xbms:unable to open file: %s", strFile.c_str());
-    cc_xstream_client_disconnect(m_connection);
-
-    return false;
-  }
-  m_bOpened = true;
-
-  return true;
-}
-
-bool CFileXBMSP::Exists(const CURL& url)
-{
-  bool exist(true);
-  exist = CFileXBMSP::Open(url);
-  Close();
-  return exist;
-}
-
-int CFileXBMSP::Stat(const CURL& url, struct __stat64* buffer)
-{
-  memset(buffer, 0, sizeof(struct __stat64));
-  if (Open(url))
-  {
-    buffer->st_size = this->m_fileSize;
-    buffer->st_mode = _S_IFREG;
-    Close();
-    errno = 0;
-    return 0;
-  }
-
-  int dot = url.GetFileName().rfind('.');
-  int slash = url.GetFileName().rfind('/');
-  if (dot <= slash)
-    if (CDirectory::Exists(url.Get()))
-    {
-      buffer->st_mode = _S_IFDIR;
-      return 0;
-    }
-
-  errno = ENOENT;
-  return -1;
-}
-
-//*********************************************************************************************
-unsigned int CFileXBMSP::Read(void *lpBuf, int64_t uiBufSize)
-{
-  unsigned char *buf = NULL;
-  size_t buflen = 0;
-  size_t readsize;
-
-  if (!m_bOpened) return 0;
-
-  /* ccx has a max read size of 120k */
-  if(uiBufSize > 120*1024)
-    readsize = 120*1024;
-  else
-    readsize = (size_t)uiBufSize;
-
-  if (cc_xstream_client_file_read(m_connection, m_handle, readsize, &buf, &buflen) !=
-      CC_XSTREAM_CLIENT_OK)
-  {
-    CLog::Log(LOGERROR, "xbms:cc_xstream_client_file_read reported error on read");
-    free(buf);
-    return 0;
-  }
-  memcpy(lpBuf, buf, buflen);
-  m_filePos += buflen;
-
-  free(buf);
-
-  return buflen;
-}
-
-//*********************************************************************************************
-void CFileXBMSP::Close()
-{
-
-  if (m_bOpened)
-  {
-    cc_xstream_client_close(m_connection, m_handle);
-    cc_xstream_client_disconnect(m_connection);
-  }
-  m_bOpened = false;
-  m_fileSize = 0;
-}
-
-//*********************************************************************************************
-int64_t CFileXBMSP::Seek(int64_t iFilePosition, int iWhence)
-{
-  UINT64 newpos;
-
-  if (!m_bOpened) return -1;
-
-  switch (iWhence)
-  {
-  case SEEK_SET:
-    // cur = pos
-    newpos = iFilePosition;
-    break;
-  case SEEK_CUR:
-    // cur += pos
-    newpos = m_filePos + iFilePosition;
-    break;
-  case SEEK_END:
-    // end += pos
-    newpos = m_fileSize + iFilePosition;
-    break;
-  default:
-    return -1;
-  }
-
-  // We can't seek beyond EOF
-  if (newpos > m_fileSize) return -1;
-
-  if (newpos == m_filePos) return m_filePos;
-
-  if ( newpos == 0 )
-  {
-    // goto beginning
-    if (cc_xstream_client_file_rewind(m_connection, m_handle) == CC_XSTREAM_CLIENT_OK)
-    {
-      m_filePos = newpos;
-    }
-    else
-    {
-      return -1;
-    }
-  }
-  else if ( newpos == m_fileSize )
-  {
-    // goto end
-    if (cc_xstream_client_file_end(m_connection, m_handle) == CC_XSTREAM_CLIENT_OK)
-    {
-      m_filePos = newpos;
-    }
-    else
-    {
-      return -1;
-    }
-  }
-  else if (newpos > m_filePos)
-  {
-    //Fix for broken seeking when we are at position 0 when using -dvd-device
-    if (m_filePos == 0)
-    {
-      char cBuf[1];
-      Read(cBuf, 1);
-    }
-    if (newpos == m_filePos) return m_filePos;
-    if (cc_xstream_client_file_forward(m_connection, m_handle, (size_t)(newpos - m_filePos), 0) == CC_XSTREAM_CLIENT_OK)
-    {
-      m_filePos = newpos;
-    }
-    else
-    {
-      return -1;
-    }
-  }
-  else if (newpos < m_filePos)
-  {
-    if (cc_xstream_client_file_backwards(m_connection, m_handle, (size_t)(m_filePos - newpos), 0) == CC_XSTREAM_CLIENT_OK)
-    {
-      m_filePos = newpos;
-    }
-    else
-    {
-      return -1;
-    }
-  }
-  return m_filePos;
-}
-
-//*********************************************************************************************
-int64_t CFileXBMSP::GetLength()
-{
-  if (!m_bOpened) return 0;
-  return m_fileSize;
-}
-
-//*********************************************************************************************
-int64_t CFileXBMSP::GetPosition()
-{
-  if (!m_bOpened) return 0;
-  return m_filePos;
-}
-
-}
-
-
diff --git a/xbmc/filesystem/FileXBMSP.h b/xbmc/filesystem/FileXBMSP.h
deleted file mode 100644 (file)
index 1667c1f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-* XBMC Media Center
-* Copyright (c) 2002 Frodo
-* Portions Copyright (c) by the authors of ffmpeg and xvid
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-// FileXBMSP.h: interface for the CFileXBMSP class.
-//
-//////////////////////////////////////////////////////////////////////
-
-#if !defined(AFX_FILEXMBMSP_H___INCLUDED_)
-#define AFX_FILEXMBMSP_H___INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "IFile.h"
-
-#ifdef _LINUX
-#include "PlatformDefs.h" // SOCKET
-#endif
-
-extern "C"
-{
-#include "libXBMS/ccincludes.h"
-#include "libXBMS/ccxclient.h"
-}
-
-namespace XFILE
-{
-
-class CFileXBMSP : public IFile
-{
-public:
-  CFileXBMSP();
-  virtual ~CFileXBMSP();
-  virtual int64_t GetPosition();
-  virtual int64_t GetLength();
-  virtual bool Open(const CURL& url);
-  virtual bool Exists(const CURL& url);
-  virtual int Stat(const CURL& url, struct __stat64* buffer);
-  virtual unsigned int Read(void* lpBuf, int64_t uiBufSize);
-  virtual int64_t Seek(int64_t iFilePosition, int iWhence = SEEK_SET);
-  virtual void Close();
-protected:
-  uint64_t m_fileSize;
-  uint64_t m_filePos;
-  SOCKET m_socket;
-private:
-  CcXstreamServerConnection m_connection;
-  unsigned long m_handle;
-  bool m_bOpened;
-
-};
-}
-
-#endif // !defined(AFX_FILEXMBMSP_H___INCLUDED_)
index c471040..7f636f6 100644 (file)
@@ -89,10 +89,8 @@ SRCS=AddonsDirectory.cpp \
 
 ifeq (@HAVE_XBMC_NONFREE@,1)
 SRCS+=FileRar.cpp \
-      FileXBMSP.cpp \
       RarDirectory.cpp \
       RarManager.cpp \
-      XBMSDirectory.cpp \
 
 endif
 
diff --git a/xbmc/filesystem/XBMSDirectory.cpp b/xbmc/filesystem/XBMSDirectory.cpp
deleted file mode 100644 (file)
index dddb848..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- *      Copyright (C) 2005-2008 Team XBMC
- *      http://www.xbmc.org
- *
- *  This Program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2, or (at your option)
- *  any later version.
- *
- *  This Program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with XBMC; see the file COPYING.  If not, write to
- *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *  http://www.gnu.org/copyleft/gpl.html
- *
- */
-
-#include "XBMSDirectory.h"
-#include "SectionLoader.h"
-#include "URL.h"
-#include "FileItem.h"
-#include "utils/CharsetConverter.h"
-#include "utils/URIUtils.h"
-
-using namespace XFILE;
-
-extern "C"
-{
-#include "libXBMS/ccincludes.h"
-#include "libXBMS/ccbuffer.h"
-#include "libXBMS/ccxclient.h"
-#include "libXBMS/ccxmltrans.h"
-}
-
-
-struct DiscoveryCallbackContext
-{
-  CFileItemList *items;
-  const char *username;
-  const char *password;
-};
-
-static void DiscoveryCallback(const char *addr, const char *port, const char *version,
-                              const char *comment, void *context);
-
-CXBMSDirectory::CXBMSDirectory(void)
-{
-  CSectionLoader::Load("LIBXBMS");
-}
-
-CXBMSDirectory::~CXBMSDirectory(void)
-{
-  CSectionLoader::Unload("LIBXBMS");
-}
-
-bool CXBMSDirectory::GetDirectory(const CStdString& strPathUtf8, CFileItemList &items)
-{
-  unsigned long handle;
-  char *filename, *fileinfo;
-
-  CStdString strPath=strPathUtf8;
-  g_charsetConverter.utf8ToStringCharset(strPath);
-
-  CURL url(strPath);
-
-  CStdString strRoot = strPath;
-  URIUtils::AddSlashAtEnd(strPath);
-
-  CcXstreamServerConnection conn = 0;
-
-  if (strPath == "xbms://")
-  {
-    if (url.GetFileName() == "")
-    {
-      int iOldSize=items.Size();
-      // Let's do the automatic discovery.
-      struct DiscoveryCallbackContext dc_context;
-      CStdString strPassword = url.GetPassWord();
-      CStdString strUserName = url.GetUserName();
-
-      dc_context.items = &items;
-      dc_context.username = ((strUserName.c_str() != NULL) && (strlen(strUserName.c_str()) > 0)) ? strUserName.c_str() : NULL;
-      dc_context.password = ((strPassword.c_str() != NULL) && (strlen(strPassword.c_str()) > 0)) ? strPassword.c_str() : NULL;
-      ccx_client_discover_servers(DiscoveryCallback, (void *)(&dc_context));
-
-      return (items.Size()>iOldSize);
-    }
-  }
-
-  if (cc_xstream_client_connect(url.GetHostName().c_str(),
-                                (url.HasPort()) ? url.GetPort() : 1400, &conn) != CC_XSTREAM_CLIENT_OK)
-  {
-    if (conn != 0) cc_xstream_client_disconnect(conn);
-
-    return false;
-  }
-
-  if (cc_xstream_client_version_handshake(conn) != CC_XSTREAM_CLIENT_OK)
-  {
-    if (conn != 0) cc_xstream_client_disconnect(conn);
-
-    return false;
-  }
-
-  // Authenticate here!
-  CStdString strPassword = url.GetPassWord();
-  CStdString strUserName = url.GetUserName();
-  if (strPassword.size() && strUserName.size())
-  {
-    // We don't check the return value here.  If authentication
-    // step fails, let's try if server lets us log in without
-    // authentication.
-    cc_xstream_client_password_authenticate(conn,
-                                            strUserName.c_str(),
-                                            strPassword.c_str() );
-  }
-  CStdString strFileName = url.GetFileName();
-  CStdString strDir;
-  strDir = "";
-  if (cc_xstream_client_setcwd(conn, "/") == CC_XSTREAM_CLIENT_OK)
-  {
-    CStdString strFile = url.GetFileName();
-    for (int i = 0; i < (int)strFile.size(); ++i)
-    {
-      if (strFile[i] == '/' || strFile[i] == '\\')
-      {
-        if (strDir != "")
-        {
-          if (cc_xstream_client_setcwd(conn, strDir.c_str()) != CC_XSTREAM_CLIENT_OK)
-          {
-            if (conn != 0) cc_xstream_client_disconnect(conn);
-            return false;
-          }
-        }
-        strDir = "";
-      }
-      else
-      {
-        strDir += strFile[i];
-      }
-    }
-  }
-  else
-  {
-    if (conn != 0) cc_xstream_client_disconnect(conn);
-    return false;
-  }
-  if (strDir.size() > 0)
-  {
-    if (cc_xstream_client_setcwd(conn, strDir.c_str()) != CC_XSTREAM_CLIENT_OK)
-    {
-      if (conn != 0) cc_xstream_client_disconnect(conn);
-
-      return false;
-    }
-  }
-
-  if (cc_xstream_client_dir_open(conn, &handle) != CC_XSTREAM_CLIENT_OK)
-  {
-    if (conn != 0) cc_xstream_client_disconnect(conn);
-
-    return false;
-  }
-
-  while (cc_xstream_client_dir_read(conn, handle, &filename, &fileinfo) == CC_XSTREAM_CLIENT_OK)
-  {
-    if (*filename == '\0')
-    {
-      free(filename);
-      free(fileinfo);
-      break;
-    }
-    bool bIsDirectory = false;
-
-    if (strstr(fileinfo, "<ATTRIB>directory</ATTRIB>"))
-      bIsDirectory = true;
-
-    CStdString strLabel=filename;
-    g_charsetConverter.unknownToUTF8(strLabel);
-    CFileItemPtr pItem(new CFileItem(strLabel));
-
-    char* pstrSizeStart = strstr(fileinfo, "<SIZE>");
-    char* pstrSizeEnd = strstr(fileinfo, "</SIZE>");
-    if (pstrSizeStart && pstrSizeEnd)
-    {
-      char szSize[128];
-      pstrSizeStart += strlen("<SIZE>");
-      strncpy(szSize, pstrSizeStart, pstrSizeEnd - pstrSizeStart);
-      szSize[pstrSizeEnd - pstrSizeStart] = 0;
-      pItem->m_dwSize = _atoi64(szSize);
-    }
-
-    char* pstrModificationStart = strstr(fileinfo, "<MODIFICATION>");
-    char* pstrModificationEnd = strstr(fileinfo, "</MODIFICATION>");
-    if (pstrModificationStart && pstrModificationEnd)
-    {
-      char szModification[128];
-      pstrModificationStart += strlen("<MODIFICATION>");
-      strncpy(szModification, pstrModificationStart, pstrModificationEnd - pstrModificationStart);
-      szModification[pstrModificationEnd - pstrModificationStart] = 0;
-      int64_t lTimeDate = _atoi64(szModification);
-
-      FILETIME fileTime, localTime;
-      LONGLONG ll = Int32x32To64(lTimeDate, 10000000) + 116444736000000000LL;
-      fileTime.dwLowDateTime = (DWORD) (ll & 0xFFFFFFFF);
-      fileTime.dwHighDateTime = (DWORD)(ll >> 32);
-
-      FileTimeToLocalFileTime(&fileTime, &localTime);
-      pItem->m_dateTime=localTime;
-
-    }
-
-
-    pItem->m_strPath = strRoot;
-    pItem->m_strPath += filename;
-    g_charsetConverter.unknownToUTF8(pItem->m_strPath);
-    pItem->m_bIsFolder = bIsDirectory;
-    if (pItem->m_bIsFolder)
-      URIUtils::AddSlashAtEnd(pItem->m_strPath);
-
-    items.Add(pItem);
-
-    free(filename);
-    free(fileinfo);
-  }
-  cc_xstream_client_close_all(conn);
-
-  if (conn != 0)
-    cc_xstream_client_disconnect(conn);
-
-  return true;
-}
-
-static void DiscoveryCallback(const char *addr, const char *port, const char *version,
-                              const char *comment, void *context)
-{
-  struct DiscoveryCallbackContext *c = (struct DiscoveryCallbackContext *)context;
-
-  //Construct name
-  CStdString itemName = "Server: ";
-  CStdString strPath = "xbms://";
-  itemName += addr;
-
-  if (strcmp(port, "1400") != 0)
-  {
-    itemName += " Port: ";
-    itemName += port;
-  }
-  if (strlen(comment) > 0)
-  {
-    itemName += " (";
-    itemName += comment;
-    itemName += ")";
-  }
-
-  // Construct URL
-  if (c->username != NULL)
-  {
-    strPath += c->username;
-    if (c->password != NULL)
-    {
-      strPath += ":";
-      strPath += c->password;
-    }
-    strPath += "@";
-  }
-  strPath += addr;
-  strPath += ":";
-  strPath += port;
-  strPath += "/";
-
-  // Add to items
-  g_charsetConverter.unknownToUTF8(itemName);
-  CFileItemPtr pItem(new CFileItem(itemName));
-  pItem->m_strPath = strPath;
-  g_charsetConverter.unknownToUTF8(pItem->m_strPath);
-  pItem->m_bIsFolder = true;
-  pItem->m_bIsShareOrDrive = true;
-  pItem->SetIconImage("DefaultNetwork.png");
-  c->items->Add(pItem);
-}
-bool CXBMSDirectory::Exists(const char* strPath)
-{
-  CFileItemList items;
-  CStdString strPath2(strPath);
-  if (GetDirectory(strPath2,items))
-    return true;
-
-  return false;
-}
-
diff --git a/xbmc/filesystem/XBMSDirectory.h b/xbmc/filesystem/XBMSDirectory.h
deleted file mode 100644 (file)
index 98aac74..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-/*
- *      Copyright (C) 2005-2008 Team XBMC
- *      http://www.xbmc.org
- *
- *  This Program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2, or (at your option)
- *  any later version.
- *
- *  This Program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with XBMC; see the file COPYING.  If not, write to
- *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *  http://www.gnu.org/copyleft/gpl.html
- *
- */
-
-#include "IDirectory.h"
-
-namespace XFILE
-{
-class CXBMSDirectory :
-      public IDirectory
-{
-public:
-  CXBMSDirectory(void);
-  virtual ~CXBMSDirectory(void);
-  virtual bool GetDirectory(const CStdString& strPath, CFileItemList &items);
-  virtual bool Exists(const char* strPath);
-};
-}
index d6f984f..e98adc9 100644 (file)
@@ -214,39 +214,20 @@ bool CBaseTexture::LoadFromFile(const CStdString& texturePath, unsigned int maxW
   }
 
   CGImageRef image = CGImageSourceCreateImageAtIndex(imageSource, 0, NULL);
-  
-  //get the orientation of the image for displaying it correctly
-  CFDictionaryRef imagePropertiesDictionary = CGImageSourceCopyPropertiesAtIndex(imageSource,0, NULL);
-  if (imagePropertiesDictionary != nil)
-  {
-    CFNumberRef orientation = (CFNumberRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyOrientation);
-    if (orientation != nil)
+
+  int rotate = 0;
+  if (autoRotate)
+  { // get the orientation of the image for displaying it correctly
+    CFDictionaryRef imagePropertiesDictionary = CGImageSourceCopyPropertiesAtIndex(imageSource,0, NULL);
+    if (imagePropertiesDictionary != nil)
     {
-      int switchValue = 0;
-      int rotationAngle = 0;
-       CFNumberGetValue(orientation, kCFNumberIntType, &switchValue);  
-      // possible values taken from
-      // http://developer.apple.com/library/mac/#samplecode/ImageApp/Listings/ImageDoc_m.html
-      switch(switchValue)
-      {
-        case 3: //rotated 180°
-          rotationAngle = 180;
-          break;
-        case 6: //rotated 90°
-          rotationAngle = 270;
-          break;
-        case 8: //rotated 270°
-          rotationAngle = 90;
-          break;
-      }
-      
-      //rotate the image if needed        
-      if (rotationAngle != 0)
+      CFNumberRef orientation = (CFNumberRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyOrientation);
+      if (orientation != nil)
       {
-        CLog::Log(LOGDEBUG,"Rotating the image about %i degrees", rotationAngle);
-        CGImageRef rotatedImage = CGImageCreateRotatedByAngle(image, (float)rotationAngle);
-        CFRelease(image);
-        image = rotatedImage;
+        int value = 0;
+        CFNumberGetValue(orientation, kCFNumberIntType, &value);
+        if (value)
+          rotate = value - 1;
       }
     }
   }
@@ -283,7 +264,8 @@ bool CBaseTexture::LoadFromFile(const CStdString& texturePath, unsigned int maxW
     CLog::Log(LOGDEBUG, "Texture manager texture clamp:new texture size: %i x %i", width, height);
   }
 
-  Allocate(width, height, XB_FMT_A8R8G8B8);    
+  Allocate(width, height, XB_FMT_A8R8G8B8);
+  m_orientation = rotate;
     
   CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
 
index 50a377d..e065928 100644 (file)
@@ -1398,7 +1398,7 @@ int CBuiltins::Execute(const CStdString& execString)
     if (window)
       window->SetProperty(params[0],params[1]);
   }
-  else if (execute.Equals("clearproperty") && params.size() == 2)
+  else if (execute.Equals("clearproperty") && params.size())
   {
     CGUIWindow *window = g_windowManager.GetWindow(g_windowManager.GetFocusedWindow());
     if (window)
index 684034d..fa2bfe3 100644 (file)
@@ -157,6 +157,7 @@ JSON_STATUS CAudioLibrary::GetGenres(const CStdString &method, ITransportLayer *
   if (!param.isMember("fields"))
     param["fields"] = Value(arrayValue);
   param["fields"].append("genre");
+  param["fields"].append("thumbnail");
 
   CFileItemList items;
   if (musicdatabase.GetGenresNav("", items))
index 7699f22..357ea64 100644 (file)
@@ -83,7 +83,7 @@ void CFileItemHandler::FillDetails(ISerializable* info, CFileItemPtr item, const
       }
     }
 
-    if (serialization.isMember(field))
+    if (serialization.isMember(field) && !result.isMember(field))
       result[field] = serialization[field];
   }
 }
@@ -127,7 +127,20 @@ void CFileItemHandler::HandleFileItemList(const char *ID, bool allowFile, const
 void CFileItemHandler::HandleFileItem(const char *ID, bool allowFile, const char *resultname, CFileItemPtr item, const Json::Value &parameterObject, const Json::Value &validFields, Json::Value &result)
 {
   Value object;
-  if (allowFile)
+  bool hasFileField = false;
+  bool hasThumbnailField = false;
+
+  for (unsigned int i = 0; i < validFields.size(); i++)
+  {
+    CStdString field = validFields[i].asString();
+
+    if (field == "file")
+      hasFileField = true;
+    if (field == "thumbnail")
+      hasThumbnailField = true;
+  }
+
+  if (allowFile && hasFileField)
   {
     if (item->HasVideoInfoTag() && !item->GetVideoInfoTag()->m_strFileNameAndPath.IsEmpty())
       object["file"] = item->GetVideoInfoTag()->m_strFileNameAndPath.c_str();
@@ -148,7 +161,7 @@ void CFileItemHandler::HandleFileItem(const char *ID, bool allowFile, const char
       object[ID] = item->GetVideoInfoTag()->m_iDbId;
   }
 
-  if (!item->GetThumbnailImage().IsEmpty())
+  if (hasThumbnailField && !item->GetThumbnailImage().IsEmpty())
     object["thumbnail"] = item->GetThumbnailImage().c_str();
 
   if (item->HasVideoInfoTag())
index d199bd4..fee46ab 100644 (file)
@@ -106,14 +106,34 @@ JSON_STATUS CFileOperations::GetDirectory(const CStdString &method, ITransportLa
         filteredFiles.Add(items[i]);
     }
 
-    HandleFileItemList(NULL, true, "files", filteredDirectories, parameterObject, result);
+    // Check if the "fields" list exists
+    // and make sure it contains the "file"
+    // field
+    Value param = parameterObject;
+    if (!param.isMember("fields"))
+      param["fields"] = Value(arrayValue);
+
+    bool hasFileField = false;
+    for (unsigned int i = 0; i < param["fields"].size(); i++)
+    {
+      if (param["fields"][i].asString().compare("file") == 0)
+      {
+        hasFileField = true;
+        break;
+      }
+    }
+
+    if (!hasFileField)
+      param["fields"].append("file");
+
+    HandleFileItemList(NULL, true, "files", filteredDirectories, param, result);
     for (unsigned int index = 0; index < result["files"].size(); index++)
     {
       result["files"][index]["filetype"] = "directory";
     }
     int count = result["limits"]["total"].asInt();
 
-    HandleFileItemList(NULL, true, "files", filteredFiles, parameterObject, result);
+    HandleFileItemList(NULL, true, "files", filteredFiles, param, result);
     for (unsigned int index = count; index < result["files"].size(); index++)
     {
       result["files"][index]["filetype"] = "file";
index 221e84c..f299899 100644 (file)
@@ -555,7 +555,8 @@ namespace JSONRPC
                               "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
                               "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
                               "\"runtime\", \"set\", \"showlink\", \"streamDetails\", \"top250\", \"votes\","
-                              "\"writingcredits\", \"firstaired\", \"season\", \"episode\", \"showtitle\" ]"
+                              "\"writingcredits\", \"firstaired\", \"season\", \"episode\", \"showtitle\","
+                              "\"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -726,7 +727,8 @@ namespace JSONRPC
                               "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
                               "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
                               "\"runtime\", \"set\", \"showlink\", \"streamDetails\", \"top250\", \"votes\","
-                              "\"writingcredits\", \"firstaired\", \"season\", \"episode\", \"showtitle\" ]"
+                              "\"writingcredits\", \"firstaired\", \"season\", \"episode\", \"showtitle\","
+                              "\"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1065,7 +1067,8 @@ namespace JSONRPC
                 "\"items\": { \"type\": \"string\","
                     "\"enum\": [ \"instrument\", \"style\", \"mood\", \"born\", \"formed\","
                                  "\"description\", \"genre\", \"died\", \"disbanded\","
-                                 "\"yearsactive\", \"musicbrainzartistid\", \"fanart\" ]"
+                                 "\"yearsactive\", \"musicbrainzartistid\", \"fanart\","
+                                 "\"thumbnail\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1113,7 +1116,7 @@ namespace JSONRPC
                     "\"enum\": [ \"title\", \"description\", \"artist\", \"genre\","
                                  "\"theme\", \"mood\", \"style\", \"type\", \"label\"," 
                                  "\"rating\", \"year\", \"musicbrainzalbumid\","
-                                 "\"musicbrainzalbumartistid\", \"fanart\" ]"
+                                 "\"musicbrainzalbumartistid\", \"fanart\", \"thumbnail\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1179,7 +1182,7 @@ namespace JSONRPC
                                 "\"rating\", \"album\", \"track\", \"duration\", \"comment\","
                                 "\"lyrics\", \"musicbrainztrackid\", \"musicbrainzartistid\","
                                 "\"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
-                                "\"playcount\", \"fanart\" ]"
+                                "\"playcount\", \"fanart\", \"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1194,7 +1197,7 @@ namespace JSONRPC
                         "\"properties\": {"
                             "\"songid\": { \"$ref\": \"Library.Id\", \"required\": true },"
                             "\"label\": { \"type\": \"string\", \"required\": true },"
-                            "\"file\": { \"type\": \"string\", \"required\": true },"
+                            "\"file\": { \"type\": \"string\" },"
                             "\"fanart\": { \"type\": \"string\" },"
                             "\"thumbnail\": { \"type\": \"string\" },"
                             "\"title\": { \"type\": \"string\" },"
@@ -1281,7 +1284,8 @@ namespace JSONRPC
                                 "\"tagline\", \"plot\", \"plotoutline\", \"originaltitle\", \"lastplayed\","
                                 "\"playcount\", \"writer\", \"studio\", \"mpaa\", \"cast\", \"country\","
                                 "\"imdbnumber\", \"premiered\", \"productioncode\", \"runtime\", \"set\","
-                                "\"showlink\", \"streamDetails\", \"top250\", \"votes\", \"writingcredits\", \"fanart\" ]"
+                                "\"showlink\", \"streamDetails\", \"top250\", \"votes\", \"writingcredits\","
+                                "\"fanart\", \"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1296,7 +1300,7 @@ namespace JSONRPC
                         "\"properties\": {"
                             "\"movieid\": { \"$ref\": \"Library.Id\", \"required\": true },"
                             "\"label\": { \"type\": \"string\", \"required\": true },"
-                            "\"file\": { \"type\": \"string\", \"required\": true },"
+                            "\"file\": { \"type\": \"string\" },"
                             "\"fanart\": { \"type\": \"string\" },"
                             "\"thumbnail\": { \"type\": \"string\" },"
                             "\"title\": { \"type\": \"string\" },"
@@ -1393,7 +1397,8 @@ namespace JSONRPC
                     "\"description\": \"Requesting the cast field will result in increased response times\","
                     "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"plot\","
                                "\"studio\", \"mpaa\", \"cast\", \"playcount\", \"episode\","
-                               "\"imdbnumber\", \"premiered\", \"votes\", \"lastplayed\", \"fanart\" ]"
+                               "\"imdbnumber\", \"premiered\", \"votes\", \"lastplayed\","
+                               "\"fanart\", \"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1407,7 +1412,7 @@ namespace JSONRPC
                         "\"properties\": {"
                             "\"tvshowid\": { \"$ref\": \"Library.Id\", \"required\": true },"
                             "\"label\": { \"type\": \"string\", \"required\": true },"
-                            "\"file\": { \"type\": \"string\", \"required\": true },"
+                            "\"file\": { \"type\": \"string\" },"
                             "\"fanart\": { \"type\": \"string\" },"
                             "\"thumbnail\": { \"type\": \"string\" },"
                             "\"title\": { \"type\": \"string\" },"
@@ -1454,7 +1459,7 @@ namespace JSONRPC
             "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
             "{ \"name\": \"fields\", \"type\": \"array\", \"id\": \"Library.Fields.Season\", \"uniqueItems\": true,"
                 "\"items\": { \"type\": \"string\","
-                    "\"enum\": [ \"season\", \"showtitle\", \"playcount\", \"episode\", \"fanart\" ]"
+                    "\"enum\": [ \"season\", \"showtitle\", \"playcount\", \"episode\", \"fanart\", \"thumbnail\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1493,7 +1498,8 @@ namespace JSONRPC
                     "\"enum\": [ \"title\", \"plot\", \"votes\", \"rating\", \"writingcredits\","
                               "\"firstaired\", \"playcount\", \"runtime\", \"director\","
                               "\"productioncode\", \"season\", \"episode\", \"originaltitle\","
-                              "\"showtitle\", \"cast\", \"streamDetails\", \"lastplayed\", \"fanart\" ]"
+                              "\"showtitle\", \"cast\", \"streamDetails\", \"lastplayed\", \"fanart\","
+                              "\"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1507,7 +1513,7 @@ namespace JSONRPC
                         "\"properties\": {"
                             "\"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true },"
                             "\"label\": { \"type\": \"string\", \"required\": true },"
-                            "\"file\": { \"type\": \"string\", \"required\": true },"
+                            "\"file\": { \"type\": \"string\" },"
                             "\"fanart\": { \"type\": \"string\" },"
                             "\"thumbnail\": { \"type\": \"string\" },"
                             "\"title\": { \"type\": \"string\" },"
@@ -1561,7 +1567,7 @@ namespace JSONRPC
                     "\"enum\": [ \"title\", \"playcount\", \"runtime\", \"director\","
                                 "\"studio\", \"year\", \"plot\", \"album\", \"artist\","
                                 "\"genre\", \"track\", \"streamDetails\", \"lastplayed\","
-                                "\"fanart\" ]"
+                                "\"fanart\", \"thumbnail\", \"file\" ]"
                 "}"
             "},"
             "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
@@ -1575,7 +1581,7 @@ namespace JSONRPC
                         "\"properties\": {"
                             "\"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true },"
                             "\"label\": { \"type\": \"string\", \"required\": true },"
-                            "\"file\": { \"type\": \"string\", \"required\": true },"
+                            "\"file\": { \"type\": \"string\" },"
                             "\"fanart\": { \"type\": \"string\" },"
                             "\"thumbnail\": { \"type\": \"string\" },"
                             "\"title\": { \"type\": \"string\" },"
index ef59c5c..3643a4e 100644 (file)
@@ -133,7 +133,6 @@ void CGUIDialogNetworkSetup::OnInitWindow()
   pSpin->AddLabel(g_localizeStrings.Get(20257), NET_PROTOCOL_VTP);
   pSpin->AddLabel(g_localizeStrings.Get(20258), NET_PROTOCOL_MYTH);
   pSpin->AddLabel(g_localizeStrings.Get(21331), NET_PROTOCOL_TUXBOX);
-  pSpin->AddLabel(g_localizeStrings.Get(20172), NET_PROTOCOL_XBMSP);
   pSpin->AddLabel(g_localizeStrings.Get(20301), NET_PROTOCOL_HTTPS);
   pSpin->AddLabel(g_localizeStrings.Get(20300), NET_PROTOCOL_HTTP);
   pSpin->AddLabel(g_localizeStrings.Get(20254), NET_PROTOCOL_DAVS);
@@ -198,8 +197,6 @@ void CGUIDialogNetworkSetup::OnProtocolChange()
     m_port = "80";
   else if (m_protocol == NET_PROTOCOL_HTTPS || m_protocol == NET_PROTOCOL_DAVS)
     m_port = "443";
-  else if (m_protocol == NET_PROTOCOL_XBMSP)
-    m_port = "1400";
   else if (m_protocol == NET_PROTOCOL_DAAP)
     m_port = "3689";
   else if (m_protocol == NET_PROTOCOL_HTSP)
@@ -224,7 +221,7 @@ void CGUIDialogNetworkSetup::UpdateButtons()
   {
     SET_CONTROL_LABEL(CONTROL_SERVER_ADDRESS, 1009);  // Server Address
   }
-  if (m_protocol == NET_PROTOCOL_XBMSP || m_protocol == NET_PROTOCOL_DAAP)
+  if (m_protocol == NET_PROTOCOL_DAAP)
     SendMessage(GUI_MSG_SET_TYPE, CONTROL_SERVER_ADDRESS, CGUIEditControl::INPUT_TYPE_IPADDRESS, 1016);
   else
     SendMessage(GUI_MSG_SET_TYPE, CONTROL_SERVER_ADDRESS, CGUIEditControl::INPUT_TYPE_TEXT, 1016);
@@ -261,8 +258,7 @@ void CGUIDialogNetworkSetup::UpdateButtons()
 
   // port
   SET_CONTROL_LABEL2(CONTROL_PORT_NUMBER, m_port);
-  CONTROL_ENABLE_ON_CONDITION(CONTROL_PORT_NUMBER, m_protocol == NET_PROTOCOL_XBMSP ||
-                                                   m_protocol == NET_PROTOCOL_FTP ||
+  CONTROL_ENABLE_ON_CONDITION(CONTROL_PORT_NUMBER, m_protocol == NET_PROTOCOL_FTP ||
                                                    m_protocol == NET_PROTOCOL_HTTP ||
                                                    m_protocol == NET_PROTOCOL_HTTPS ||
                                                    m_protocol == NET_PROTOCOL_DAV ||
@@ -304,8 +300,6 @@ CStdString CGUIDialogNetworkSetup::ConstructPath() const
   CURL url;
   if (m_protocol == NET_PROTOCOL_SMB)
     url.SetProtocol("smb");
-  else if (m_protocol == NET_PROTOCOL_XBMSP)
-    url.SetProtocol("xbms");
   else if (m_protocol == NET_PROTOCOL_FTP)
     url.SetProtocol("ftp");
   else if (m_protocol == NET_PROTOCOL_HTTP)
@@ -344,7 +338,6 @@ CStdString CGUIDialogNetworkSetup::ConstructPath() const
        (m_protocol == NET_PROTOCOL_DAV) ||
        (m_protocol == NET_PROTOCOL_DAVS) ||
        (m_protocol == NET_PROTOCOL_RSS) ||
-       (m_protocol == NET_PROTOCOL_XBMSP && !m_server.IsEmpty()) ||
        (m_protocol == NET_PROTOCOL_DAAP && !m_server.IsEmpty()) ||
        (m_protocol == NET_PROTOCOL_HTSP) ||
        (m_protocol == NET_PROTOCOL_VTP) ||
@@ -365,8 +358,6 @@ void CGUIDialogNetworkSetup::SetPath(const CStdString &path)
   const CStdString &protocol = url.GetProtocol();
   if (protocol == "smb")
     m_protocol = NET_PROTOCOL_SMB;
-  else if (protocol == "xbms")
-    m_protocol = NET_PROTOCOL_XBMSP;
   else if (protocol == "ftp")
     m_protocol = NET_PROTOCOL_FTP;
   else if (protocol == "http")
index faf6952..daab73d 100644 (file)
@@ -32,9 +32,6 @@ extern "C"
   int     GetDarwinExecutablePath(char* path, uint32_t *pathsize);
 
   bool    DarwinHasVideoToolboxDecoder(void);
-  
-  typedef struct CGImage *CGImageRef;
-  CGImageRef CGImageCreateRotatedByAngle(CGImageRef imgRef, float angle);
 #ifdef __cplusplus
 }
 #endif
index 0094c29..a912106 100644 (file)
@@ -196,33 +196,4 @@ bool DarwinHasVideoToolboxDecoder(void)
   return bDecoderAvailable;
 }
 
-
-CGImageRef CGImageCreateRotatedByAngle(CGImageRef imgRef, float angle)
-{
-  // image rotation function taken from
-  // https://gist.github.com/585377
-  float angleInRadians = angle * (M_PI / 180);
-  float width = CGImageGetWidth(imgRef);
-  float height = CGImageGetHeight(imgRef);
-  
-  CGRect imgRect = CGRectMake(0, 0, width, height);
-  CGAffineTransform transform = CGAffineTransformMakeRotation(angleInRadians);
-  CGRect rotatedRect = CGRectApplyAffineTransform(imgRect, transform);
-  
-  CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
-  CGContextRef bmContext = CGBitmapContextCreate(NULL,rotatedRect.size.width, rotatedRect.size.height,
-    8, 0, colorSpace, kCGImageAlphaPremultipliedFirst);
-  CGContextSetAllowsAntialiasing(bmContext, 1);
-  CGContextSetInterpolationQuality(bmContext, kCGInterpolationHigh);
-  CGColorSpaceRelease(colorSpace);
-  CGContextTranslateCTM(bmContext, +(rotatedRect.size.width/2), +(rotatedRect.size.height/2));
-  CGContextRotateCTM(bmContext, angleInRadians);
-  CGContextDrawImage(bmContext, CGRectMake(-width/2, -height/2, width, height), imgRef);
-  
-  CGImageRef rotatedImage = CGBitmapContextCreateImage(bmContext);
-  CFRelease(bmContext);
-  
-  return rotatedImage;
-}
-
 #endif
index c1747b3..39e085c 100644 (file)
@@ -10,6 +10,8 @@ INCLUDES=-I$(abs_top_srcdir) \
 SRCS = \
        SDLMain.mm \
        XBMCHelper.m \
+       AutoPool.mm \
+       DarwinUtils.mm \
        CocoaInterface.mm \
        CoreAudio.cpp \
        OSXGNUReplacements.c \
index cb1b3c2..c5e6a75 100644 (file)
@@ -72,7 +72,7 @@
     
     eaglLayer.opaque = TRUE;
     eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
-      //[NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking,
+      [NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking,
       //kEAGLColorFormatRGB565, kEAGLDrawablePropertyColorFormat,
       kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
       nil];
index 5ecd316..014f6e9 100644 (file)
 #if defined(_LINUX) || defined(__APPLE__)
   #if defined(HAVE_XBMC_NONFREE)
     #define HAS_FILESYSTEM_RAR
-    #define HAS_FILESYSTEM_CCX
   #endif
 #else
   #define HAS_FILESYSTEM_RAR
-  #define HAS_FILESYSTEM_CCX
 #endif
 
 /*****************
index e8c0c89..1de5196 100644 (file)
@@ -597,16 +597,6 @@ bool URIUtils::IsURL(const CStdString& strFile)
   return strFile.Find("://") >= 0;
 }
 
-bool URIUtils::IsXBMS(const CStdString& strFile)
-{
-  CStdString strFile2(strFile);
-
-  if (IsStack(strFile))
-    strFile2 = CStackDirectory::GetFirstStackedFile(strFile);
-
-  return strFile2.Left(5).Equals("xbms:");
-}
-
 bool URIUtils::IsFTP(const CStdString& strFile)
 {
   CStdString strFile2(strFile);
index 4e739d6..cb8757d 100644 (file)
@@ -2698,17 +2698,18 @@ CVideoInfoTag CVideoDatabase::GetDetailsByTypeAndId(VIDEODB_CONTENT_TYPE type, i
   return details;
 }
 
-bool CVideoDatabase::GetStreamDetailsForFileId(CStreamDetails& details, int idFile) const
+bool CVideoDatabase::GetStreamDetails(CVideoInfoTag& tag) const
 {
-  if (idFile < 0)
+  if (tag.m_iFileId < 0)
     return false;
 
   bool retVal = false;
 
   dbiplus::Dataset *pDS = m_pDB->CreateDataset();
-  CStdString strSQL = PrepareSQL("SELECT * FROM streamdetails WHERE idFile = %i", idFile);
+  CStdString strSQL = PrepareSQL("SELECT * FROM streamdetails WHERE idFile = %i", tag.m_iFileId);
   pDS->query(strSQL);
 
+  CStreamDetails& details = tag.m_streamDetails;
   details.Reset();
   while (!pDS->eof())
   {
@@ -2756,6 +2757,9 @@ bool CVideoDatabase::GetStreamDetailsForFileId(CStreamDetails& details, int idFi
   pDS->close();
   details.DetermineBestStreams();
 
+  if (details.GetVideoDuration() > 0)
+    tag.m_strRuntime.Format("%i", details.GetVideoDuration() / 60 );
+
   return retVal;
 }
 
@@ -2773,7 +2777,7 @@ CVideoInfoTag CVideoDatabase::GetDetailsForMovie(auto_ptr<Dataset> &pDS, bool ne
   GetCommonDetails(pDS, details);
   movieTime += CTimeUtils::GetTimeMS() - time; time = CTimeUtils::GetTimeMS();
 
-  GetStreamDetailsForFileId(details.m_streamDetails, details.m_iFileId);
+  GetStreamDetails(details);
 
   if (needsCast)
   {
@@ -2879,7 +2883,7 @@ CVideoInfoTag CVideoDatabase::GetDetailsForEpisode(auto_ptr<Dataset> &pDS, bool
   details.m_strStudio = pDS->fv(VIDEODB_DETAILS_EPISODE_TVSHOW_STUDIO).get_asString();
   details.m_strPremiered = pDS->fv(VIDEODB_DETAILS_EPISODE_TVSHOW_AIRED).get_asString();
 
-  GetStreamDetailsForFileId(details.m_streamDetails, details.m_iFileId);
+  GetStreamDetails(details);
 
   if (needsCast)
   {
@@ -2943,7 +2947,7 @@ CVideoInfoTag CVideoDatabase::GetDetailsForMusicVideo(auto_ptr<Dataset> &pDS)
   GetCommonDetails(pDS, details);
   movieTime += CTimeUtils::GetTimeMS() - time; time = CTimeUtils::GetTimeMS();
 
-  GetStreamDetailsForFileId(details.m_streamDetails, details.m_iFileId);
+  GetStreamDetails(details);
 
   details.m_strPictureURL.Parse();
   return details;
index 0ec9ba7..b18f647 100644 (file)
@@ -367,7 +367,6 @@ public:
   void GetTvShowInfo(const CStdString& strPath, CVideoInfoTag& details, int idTvShow = -1);
   bool GetEpisodeInfo(const CStdString& strFilenameAndPath, CVideoInfoTag& details, int idEpisode = -1);
   void GetMusicVideoInfo(const CStdString& strFilenameAndPath, CVideoInfoTag& details, int idMVideo=-1);
-  bool GetStreamDetailsForFileId(CStreamDetails& details, int idFile) const;
 
   int GetPathId(const CStdString& strPath);
   int GetTvShowId(const CStdString& strPath);
@@ -655,6 +654,7 @@ protected:
 
   void GetDetailsFromDB(std::auto_ptr<dbiplus::Dataset> &pDS, int min, int max, const SDbTableOffsets *offsets, CVideoInfoTag &details, int idxOffset = 2);
   CStdString GetValueString(const CVideoInfoTag &details, int min, int max, const SDbTableOffsets *offsets) const;
+  bool GetStreamDetails(CVideoInfoTag& tag) const;
 
 private:
   virtual bool CreateTables();
index 36d7006..af19225 100644 (file)
@@ -1511,6 +1511,11 @@ void CGUIWindowVideoBase::MarkWatched(const CFileItemPtr &item, bool bMark)
     for (int i=0;i<items.Size();++i)
     {
       CFileItemPtr pItem=items[i];
+      if (pItem->m_bIsFolder)
+      {
+        MarkWatched(pItem, bMark);
+        continue;
+      }
 
       if (pItem->HasVideoInfoTag() &&
           (( bMark && pItem->GetVideoInfoTag()->m_playCount) ||
index 4a2df70..0077dfc 100644 (file)
@@ -413,45 +413,28 @@ void CGUIWindowVideoNav::LoadVideoInfo(CFileItemList &items)
     return; // don't load for listings that have content set
 
   CStdString content = m_database.GetContentForPath(items.m_strPath);
-  if (content.IsEmpty())
-  {
-    items.SetContent("files");
-    return;
-  }
-  items.SetContent(content);
+  items.SetContent(content.IsEmpty() ? "files" : content);
 
   bool clean = (g_guiSettings.GetBool("myvideos.cleanstrings") &&
                 !items.IsVirtualDirectoryRoot() &&
                 m_stackingAvailable);
 
-  if (!content.IsEmpty())
+  for (int i = 0; i < items.Size(); i++)
   {
-    for (int i = 0; i < items.Size(); i++)
-    {
-      CFileItemPtr pItem = items[i];
-      CFileItem item;
-      if (m_database.GetItemForPath(content, pItem->m_strPath, item))
-      { // copy info across
-        pItem->UpdateInfo(item);
-        pItem->m_strPath = item.m_strPath;
-        // if we switch from a file to a folder item it means we really shouldn't be sorting files and
-        // folders separately
-        if (pItem->m_bIsFolder != item.m_bIsFolder)
-          items.SetSortIgnoreFolders(true);
-        pItem->m_bIsFolder = item.m_bIsFolder;
-      }
-      else
-      {
-        if (clean)
-          pItem->CleanString();
-      }
+    CFileItemPtr pItem = items[i];
+    CFileItem item;
+    if (!content.IsEmpty() && m_database.GetItemForPath(content, pItem->m_strPath, item))
+    { // copy info across
+      pItem->UpdateInfo(item);
+      pItem->m_strPath = item.m_strPath;
+      // if we switch from a file to a folder item it means we really shouldn't be sorting files and
+      // folders separately
+      if (pItem->m_bIsFolder != item.m_bIsFolder)
+        items.SetSortIgnoreFolders(true);
+      pItem->m_bIsFolder = item.m_bIsFolder;
     }
-  }
-  else
-  {
-    for (int i = 0; i < items.Size(); i++)
-    {
-      CFileItemPtr pItem = items[i];
+    else
+    { // grab the playcount and clean the label
       int playCount = m_database.GetPlayCount(*pItem);
       if (playCount >= 0)
         pItem->SetOverlayImage(CGUIListItem::ICON_OVERLAY_UNWATCHED, playCount > 0);
index 748fc3f..ee50bc0 100644 (file)
@@ -1029,8 +1029,6 @@ void CGUIMediaWindow::ShowShareErrorMessage(CFileItem* pItem)
 
     if (pItem->m_iDriveType != CMediaSource::SOURCE_TYPE_REMOTE) //  Local shares incl. dvd drive
       idMessageText=15300;
-    else if (url.GetProtocol() == "xbms" && strHostName.IsEmpty()) //  xbms server discover
-      idMessageText=15302;
     else if (url.GetProtocol() == "smb" && strHostName.IsEmpty()) //  smb workgroup
       idMessageText=15303;
     else  //  All other remote shares
index 8175d4c..4f56a7f 100644 (file)
@@ -1209,8 +1209,6 @@ void CGUIWindowFileManager::ShowShareErrorMessage(CFileItem* pItem)
 
     if (pItem->m_iDriveType!=CMediaSource::SOURCE_TYPE_REMOTE) //  Local shares incl. dvd drive
       idMessageText=15300;
-    else if (url.GetProtocol()=="xbms" && strHostName.IsEmpty()) //  xbms server discover
-      idMessageText=15302;
     else if (url.GetProtocol()=="smb" && strHostName.IsEmpty()) //  smb workgroup
       idMessageText=15303;
     else  //  All other remote shares