Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: atv2
Fetching contributors…

Cannot retrieve contributors at this time

200 lines (166 sloc) 3.526 kb
/*
* Copyright (C) 2005-2009 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 <cstring>
#include "XBTF.h"
CXBTFFrame::CXBTFFrame()
{
m_width = 0;
m_height = 0;
m_packedSize = 0;
m_unpackedSize = 0;
m_offset = 0;
m_format = XB_FMT_UNKNOWN;
}
uint32_t CXBTFFrame::GetWidth() const
{
return m_width;
}
void CXBTFFrame::SetWidth(uint32_t width)
{
m_width = width;
}
uint32_t CXBTFFrame::GetHeight() const
{
return m_height;
}
void CXBTFFrame::SetHeight(uint32_t height)
{
m_height = height;
}
uint64_t CXBTFFrame::GetPackedSize() const
{
return m_packedSize;
}
void CXBTFFrame::SetPackedSize(uint64_t size)
{
m_packedSize = size;
}
bool CXBTFFrame::IsPacked() const
{
return m_unpackedSize != m_packedSize;
}
uint64_t CXBTFFrame::GetUnpackedSize() const
{
return m_unpackedSize;
}
void CXBTFFrame::SetUnpackedSize(uint64_t size)
{
m_unpackedSize = size;
}
void CXBTFFrame::SetFormat(uint32_t format)
{
m_format = format;
}
uint32_t CXBTFFrame::GetFormat() const
{
return m_format;
}
uint64_t CXBTFFrame::GetOffset() const
{
return m_offset;
}
void CXBTFFrame::SetOffset(uint64_t offset)
{
m_offset = offset;
}
uint32_t CXBTFFrame::GetDuration() const
{
return m_duration;
}
void CXBTFFrame::SetDuration(uint32_t duration)
{
m_duration = duration;
}
uint64_t CXBTFFrame::GetHeaderSize() const
{
uint64_t result =
sizeof(m_width) +
sizeof(m_height) +
sizeof(m_format) +
sizeof(m_packedSize) +
sizeof(m_unpackedSize) +
sizeof(m_offset) +
sizeof(m_duration);
return result;
}
CXBTFFile::CXBTFFile()
{
memset(m_path, 0, sizeof(m_path));
m_loop = 0;
}
CXBTFFile::CXBTFFile(const CXBTFFile& ref)
{
strcpy(m_path, ref.m_path);
m_loop = ref.m_loop;
m_frames = ref.m_frames;
}
char* CXBTFFile::GetPath()
{
return m_path;
}
void CXBTFFile::SetPath(const std::string& path)
{
memset(m_path, 0, sizeof(m_path));
strncpy(m_path, path.c_str(), sizeof(m_path) - 1);
}
uint32_t CXBTFFile::GetLoop() const
{
return m_loop;
}
void CXBTFFile::SetLoop(uint32_t loop)
{
m_loop = loop;
}
std::vector<CXBTFFrame>& CXBTFFile::GetFrames()
{
return m_frames;
}
uint64_t CXBTFFile::GetHeaderSize() const
{
uint64_t result =
sizeof(m_path) +
sizeof(m_loop) +
sizeof(uint32_t); /* Number of frames */
for (size_t i = 0; i < m_frames.size(); i++)
{
result += m_frames[i].GetHeaderSize();
}
return result;
}
CXBTF::CXBTF()
{
}
uint64_t CXBTF::GetHeaderSize() const
{
uint64_t result =
4 /* Magic */ +
1 /* Vesion */ +
sizeof(uint32_t) /* Number of Files */;
for (size_t i = 0; i < m_files.size(); i++)
{
result += m_files[i].GetHeaderSize();
}
return result;
}
std::vector<CXBTFFile>& CXBTF::GetFiles()
{
return m_files;
}
Jump to Line
Something went wrong with that request. Please try again.