aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarshallnz <jmarshallnz@svn>2009-09-28 21:42:43 +0000
committerjmarshallnz <jmarshallnz@svn>2009-09-28 21:42:43 +0000
commit6cb1f29164bc71302a935777ae725dca01482c21 (patch)
treed4654b6dec7398092156043db712bd84d2abf1b1
parentff9f7598436be15f1fb11b15a0225dc48e679853 (diff)
fixed: Win32 build, and standard-typed XBTFReader (writer needs doing as well)
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@23232 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
-rw-r--r--guilib/TextureBundleXBT.cpp9
-rw-r--r--guilib/XBTF.cpp60
-rw-r--r--guilib/XBTF.h65
-rw-r--r--guilib/XBTFReader.cpp10
-rw-r--r--project/VS2008Express/guilib.vcproj34
-rw-r--r--xbmc/cores/VideoRenderers/WinRenderer.cpp2
-rw-r--r--xbmc/lib/libsquish/lib/squish.libbin0 -> 615728 bytes
7 files changed, 109 insertions, 71 deletions
diff --git a/guilib/TextureBundleXBT.cpp b/guilib/TextureBundleXBT.cpp
index 8e10e5b631..cb622d5911 100644
--- a/guilib/TextureBundleXBT.cpp
+++ b/guilib/TextureBundleXBT.cpp
@@ -19,7 +19,7 @@
*
*/
-#include "squish.h"
+#include "lib/libsquish/squish.h"
#include "system.h"
#include "TextureBundleXBT.h"
#include "Texture.h"
@@ -40,6 +40,7 @@
#if !defined(__GNUC__)
#pragma comment(lib,"../../xbmc/lib/liblzo/lzo.lib")
+#pragma comment (lib,"../../xbmc/lib/libsquish/lib/squish.lib")
#endif
CTextureBundleXBT::CTextureBundleXBT(void)
@@ -199,7 +200,7 @@ int CTextureBundleXBT::LoadAnim(const CStdString& Filename, CBaseTexture*** ppTe
bool CTextureBundleXBT::ConvertFrameToTexture(const CStdString& name, CXBTFFrame& frame, int format, CBaseTexture** ppTexture)
{
// found texture - allocate the necessary buffers
- unsigned char* PackedBuf = (unsigned char*) malloc(frame.GetPackedSize());
+ unsigned char* PackedBuf = (unsigned char*) malloc((size_t)frame.GetPackedSize());
if (PackedBuf == NULL)
{
CLog::Log(LOGERROR, "Out of memory loading texture: %s (need %llu bytes)", name.c_str(), frame.GetPackedSize());
@@ -227,8 +228,8 @@ bool CTextureBundleXBT::ConvertFrameToTexture(const CStdString& name, CXBTFFrame
if (format == XB_FMT_LZO)
{
- lzo_uint s = frame.GetUnpackedSize();
- if (lzo1x_decompress(PackedBuf, frame.GetPackedSize(), UnpackedBuf, &s, NULL) != LZO_E_OK ||
+ lzo_uint s = (lzo_uint)frame.GetUnpackedSize();
+ if (lzo1x_decompress(PackedBuf, (lzo_uint)frame.GetPackedSize(), UnpackedBuf, &s, NULL) != LZO_E_OK ||
s != frame.GetUnpackedSize())
{
CLog::Log(LOGERROR, "Error loading texture: %s: Decompression error", name.c_str());
diff --git a/guilib/XBTF.cpp b/guilib/XBTF.cpp
index e1d756b009..ce6e79112e 100644
--- a/guilib/XBTF.cpp
+++ b/guilib/XBTF.cpp
@@ -30,90 +30,90 @@ CXBTFFrame::CXBTFFrame()
m_offset = 0;
}
-unsigned int CXBTFFrame::GetWidth() const
+uint32_t CXBTFFrame::GetWidth() const
{
return m_width;
}
-void CXBTFFrame::SetWidth(unsigned int width)
+void CXBTFFrame::SetWidth(uint32_t width)
{
m_width = width;
}
-unsigned int CXBTFFrame::GetHeight() const
+uint32_t CXBTFFrame::GetHeight() const
{
return m_height;
}
-void CXBTFFrame::SetHeight(unsigned int height)
+void CXBTFFrame::SetHeight(uint32_t height)
{
m_height = height;
}
-unsigned long long CXBTFFrame::GetPackedSize() const
+uint64_t CXBTFFrame::GetPackedSize() const
{
return m_packedSize;
}
-void CXBTFFrame::SetPackedSize(unsigned long long size)
+void CXBTFFrame::SetPackedSize(uint64_t size)
{
m_packedSize = size;
}
-unsigned long long CXBTFFrame::GetUnpackedSize() const
+uint64_t CXBTFFrame::GetUnpackedSize() const
{
return m_unpackedSize;
}
-void CXBTFFrame::SetUnpackedSize(unsigned long long size)
+void CXBTFFrame::SetUnpackedSize(uint64_t size)
{
m_unpackedSize = size;
}
-void CXBTFFrame::SetX(unsigned int x)
+void CXBTFFrame::SetX(uint32_t x)
{
m_x = x;
}
-unsigned int CXBTFFrame::GetX() const
+uint32_t CXBTFFrame::GetX() const
{
return m_x;
}
-void CXBTFFrame::SetY(unsigned int y)
+void CXBTFFrame::SetY(uint32_t y)
{
m_y = y;
}
-unsigned int CXBTFFrame::GetY() const
+uint32_t CXBTFFrame::GetY() const
{
return m_y;
}
-unsigned long long CXBTFFrame::GetOffset() const
+uint64_t CXBTFFrame::GetOffset() const
{
return m_offset;
}
-void CXBTFFrame::SetOffset(unsigned long long offset)
+void CXBTFFrame::SetOffset(uint64_t offset)
{
m_offset = offset;
}
-unsigned int CXBTFFrame::GetDuration() const
+uint32_t CXBTFFrame::GetDuration() const
{
return m_duration;
}
-void CXBTFFrame::SetDuration(unsigned int duration)
+void CXBTFFrame::SetDuration(uint32_t duration)
{
m_duration = duration;
}
-unsigned long long CXBTFFrame::GetHeaderSize() const
+uint64_t CXBTFFrame::GetHeaderSize() const
{
- unsigned long long result =
+ uint64_t result =
sizeof(m_width) +
sizeof(m_height) +
sizeof(m_x) +
@@ -128,7 +128,7 @@ unsigned long long CXBTFFrame::GetHeaderSize() const
CXBTFFile::CXBTFFile()
{
- bzero(m_path, sizeof(m_path));
+ memset(m_path, 0, sizeof(m_path));
m_loop = 0;
m_format = XB_FMT_UNKNOWN;
}
@@ -148,26 +148,26 @@ char* CXBTFFile::GetPath()
void CXBTFFile::SetPath(const std::string& path)
{
- bzero(m_path, sizeof(m_path));
+ memset(m_path, 0, sizeof(m_path));
strncpy(m_path, path.c_str(), sizeof(m_path) - 1);
}
-int CXBTFFile::GetLoop() const
+uint32_t CXBTFFile::GetLoop() const
{
return m_loop;
}
-void CXBTFFile::SetLoop(int loop)
+void CXBTFFile::SetLoop(uint32_t loop)
{
m_loop = loop;
}
-unsigned int CXBTFFile::GetFormat() const
+uint32_t CXBTFFile::GetFormat() const
{
return m_format;
}
-void CXBTFFile::SetFormat(unsigned int format)
+void CXBTFFile::SetFormat(uint32_t format)
{
m_format = format;
}
@@ -177,13 +177,13 @@ std::vector<CXBTFFrame>& CXBTFFile::GetFrames()
return m_frames;
}
-unsigned long long CXBTFFile::GetHeaderSize() const
+uint64_t CXBTFFile::GetHeaderSize() const
{
- unsigned long long result =
+ uint64_t result =
sizeof(m_path) +
sizeof(m_loop) +
sizeof(m_format) +
- sizeof(unsigned int); /* Number of frames */
+ sizeof(uint32_t); /* Number of frames */
for (size_t i = 0; i < m_frames.size(); i++)
{
@@ -197,12 +197,12 @@ CXBTF::CXBTF()
{
}
-unsigned long long CXBTF::GetHeaderSize() const
+uint64_t CXBTF::GetHeaderSize() const
{
- unsigned long long result =
+ uint64_t result =
4 /* Magic */ +
1 /* Vesion */ +
- sizeof(unsigned int) /* Number of Files */;
+ sizeof(uint32_t) /* Number of Files */;
for (size_t i = 0; i < m_files.size(); i++)
{
diff --git a/guilib/XBTF.h b/guilib/XBTF.h
index 0a0d10ab2d..1a24630c5a 100644
--- a/guilib/XBTF.h
+++ b/guilib/XBTF.h
@@ -23,6 +23,7 @@
#include <string>
#include <vector>
+#include <stdint.h>
#define XBTF_MAGIC "XBTF"
#define XBTF_VERSION "1"
@@ -40,33 +41,33 @@ class CXBTFFrame
{
public:
CXBTFFrame();
- unsigned int GetWidth() const;
- void SetWidth(unsigned int width);
- unsigned int GetX() const;
- void SetX(unsigned int x);
- unsigned int GetY() const;
- void SetY(unsigned int y);
- unsigned int GetHeight() const;
- void SetHeight(unsigned int height);
- unsigned long long GetUnpackedSize() const;
- void SetUnpackedSize(unsigned long long size);
- unsigned long long GetPackedSize() const;
- void SetPackedSize(unsigned long long size);
- unsigned long long GetOffset() const;
- void SetOffset(unsigned long long offset);
- unsigned long long GetHeaderSize() const;
- unsigned int GetDuration() const;
- void SetDuration(unsigned int duration);
+ uint32_t GetWidth() const;
+ void SetWidth(uint32_t width);
+ uint32_t GetX() const;
+ void SetX(uint32_t x);
+ uint32_t GetY() const;
+ void SetY(uint32_t y);
+ uint32_t GetHeight() const;
+ void SetHeight(uint32_t height);
+ uint64_t GetUnpackedSize() const;
+ void SetUnpackedSize(uint64_t size);
+ uint64_t GetPackedSize() const;
+ void SetPackedSize(uint64_t size);
+ uint64_t GetOffset() const;
+ void SetOffset(uint64_t offset);
+ uint64_t GetHeaderSize() const;
+ uint32_t GetDuration() const;
+ void SetDuration(uint32_t duration);
private:
- unsigned int m_width;
- unsigned int m_height;
- unsigned int m_x;
- unsigned int m_y;
- unsigned long long m_packedSize;
- unsigned long long m_unpackedSize;
- unsigned long long m_offset;
- unsigned int m_duration;
+ uint32_t m_width;
+ uint32_t m_height;
+ uint32_t m_x;
+ uint32_t m_y;
+ uint64_t m_packedSize;
+ uint64_t m_unpackedSize;
+ uint64_t m_offset;
+ uint32_t m_duration;
};
class CXBTFFile
@@ -76,18 +77,18 @@ public:
CXBTFFile(const CXBTFFile& ref);
char* GetPath();
void SetPath(const std::string& path);
- int GetLoop() const;
- void SetLoop(int loop);
- unsigned int GetFormat() const;
- void SetFormat(unsigned int format);
+ uint32_t GetLoop() const;
+ void SetLoop(uint32_t loop);
+ uint32_t GetFormat() const;
+ void SetFormat(uint32_t format);
std::vector<CXBTFFrame>& GetFrames();
unsigned long long GetHeaderSize() const;
private:
char m_path[256];
- int m_loop;
- unsigned int m_format;
+ uint32_t m_loop;
+ uint32_t m_format;
std::vector<CXBTFFrame> m_frames;
};
@@ -95,7 +96,7 @@ class CXBTF
{
public:
CXBTF();
- unsigned long long GetHeaderSize() const;
+ uint64_t GetHeaderSize() const;
std::vector<CXBTFFile>& GetFiles();
private:
diff --git a/guilib/XBTFReader.cpp b/guilib/XBTFReader.cpp
index 2cae0343bb..6a0f990a6c 100644
--- a/guilib/XBTFReader.cpp
+++ b/guilib/XBTFReader.cpp
@@ -23,6 +23,10 @@
#include "XBTFReader.h"
#include "EndianSwap.h"
#include "CharsetConverter.h"
+#ifdef _WIN32
+#include "FileSystem/SpecialProtocol.h"
+#include "PlatformDefs.h" //for PRIdS, PRId64
+#endif
#define READ_STR(str, size, file) fread(str, size, 1, file)
#define READ_U32(i, file) fread(&i, 4, 1, file); i = Endian_SwapLE32(i);
@@ -42,7 +46,7 @@ bool CXBTFReader::Open(const CStdString& fileName)
{
m_fileName = fileName;
-#ifndef _LINUX
+#ifdef _WIN32
CStdStringW strPathW;
g_charsetConverter.utf8ToW(_P(m_fileName), strPathW, false);
m_file = _wfopen(strPathW.c_str(), L"rb");
@@ -181,12 +185,12 @@ bool CXBTFReader::Load(const CXBTFFrame& frame, unsigned char* buffer)
return false;
}
- if (fseek(m_file, frame.GetOffset(), SEEK_SET) == -1)
+ if (fseeko64(m_file, (off_t)frame.GetOffset(), SEEK_SET) == -1)
{
return false;
}
- if (fread(buffer, 1, frame.GetPackedSize(), m_file) != frame.GetPackedSize())
+ if (fread(buffer, 1, (size_t)frame.GetPackedSize(), m_file) != frame.GetPackedSize())
{
return false;
}
diff --git a/project/VS2008Express/guilib.vcproj b/project/VS2008Express/guilib.vcproj
index 18e0291ee7..e78a6abbb9 100644
--- a/project/VS2008Express/guilib.vcproj
+++ b/project/VS2008Express/guilib.vcproj
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9,00"
+ Version="9.00"
Name="guilib"
ProjectGUID="{510441AC-B9E1-4B31-9C0C-EB3AD39D90C4}"
RootNamespace="guilib"
@@ -602,6 +602,22 @@
>
</File>
<File
+ RelativePath="..\..\guilib\TextureBundleXBT.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXBT.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXPR.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\TextureBundleXPR.h"
+ >
+ </File>
+ <File
RelativePath="..\..\guilib\tinyXML\tinystr.cpp"
>
<FileConfiguration
@@ -658,6 +674,22 @@
>
</File>
<File
+ RelativePath="..\..\guilib\XBTF.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTF.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTFReader.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\guilib\XBTFReader.h"
+ >
+ </File>
+ <File
RelativePath="..\..\guilib\XMLUtils.cpp"
>
</File>
diff --git a/xbmc/cores/VideoRenderers/WinRenderer.cpp b/xbmc/cores/VideoRenderers/WinRenderer.cpp
index ce7b58dfb2..43bd5e6500 100644
--- a/xbmc/cores/VideoRenderers/WinRenderer.cpp
+++ b/xbmc/cores/VideoRenderers/WinRenderer.cpp
@@ -1302,7 +1302,7 @@ void CWinRenderer::CreateThumbnail(CBaseTexture *texture, unsigned int width, un
D3DLOCKED_RECT lockedRect;
if (D3D_OK == surface->LockRect(&lockedRect, NULL, NULL))
{
- texture->LoadFromMemory(width, height, lockedRect.Pitch, 32, (unsigned char *)lockedRect.pBits);
+ texture->LoadFromMemory(width, height, lockedRect.Pitch, XB_FMT_B8G8R8A8, 32, (unsigned char *)lockedRect.pBits);
surface->UnlockRect();
}
surface->Release();
diff --git a/xbmc/lib/libsquish/lib/squish.lib b/xbmc/lib/libsquish/lib/squish.lib
new file mode 100644
index 0000000000..e09d0cc38d
--- /dev/null
+++ b/xbmc/lib/libsquish/lib/squish.lib
Binary files differ