Blame IlmImf/ImfKeyCode.cpp

Packit Service 6754ca
///////////////////////////////////////////////////////////////////////////
Packit Service 6754ca
//
Packit Service 6754ca
// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
Packit Service 6754ca
// Digital Ltd. LLC
Packit Service 6754ca
// 
Packit Service 6754ca
// All rights reserved.
Packit Service 6754ca
// 
Packit Service 6754ca
// Redistribution and use in source and binary forms, with or without
Packit Service 6754ca
// modification, are permitted provided that the following conditions are
Packit Service 6754ca
// met:
Packit Service 6754ca
// *       Redistributions of source code must retain the above copyright
Packit Service 6754ca
// notice, this list of conditions and the following disclaimer.
Packit Service 6754ca
// *       Redistributions in binary form must reproduce the above
Packit Service 6754ca
// copyright notice, this list of conditions and the following disclaimer
Packit Service 6754ca
// in the documentation and/or other materials provided with the
Packit Service 6754ca
// distribution.
Packit Service 6754ca
// *       Neither the name of Industrial Light & Magic nor the names of
Packit Service 6754ca
// its contributors may be used to endorse or promote products derived
Packit Service 6754ca
// from this software without specific prior written permission. 
Packit Service 6754ca
// 
Packit Service 6754ca
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit Service 6754ca
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit Service 6754ca
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit Service 6754ca
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Packit Service 6754ca
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Packit Service 6754ca
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Packit Service 6754ca
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit Service 6754ca
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit Service 6754ca
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit Service 6754ca
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit Service 6754ca
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 6754ca
//
Packit Service 6754ca
///////////////////////////////////////////////////////////////////////////
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
//-----------------------------------------------------------------------------
Packit Service 6754ca
//
Packit Service 6754ca
//	class KeyCode
Packit Service 6754ca
//
Packit Service 6754ca
//-----------------------------------------------------------------------------
Packit Service 6754ca
Packit Service 6754ca
#include <ImfKeyCode.h>
Packit Service 6754ca
#include "Iex.h"
Packit Service 6754ca
#include "ImfNamespace.h"
Packit Service 6754ca
Packit Service 6754ca
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
Packit Service 6754ca
Packit Service 6754ca
   
Packit Service 6754ca
KeyCode::KeyCode (int filmMfcCode,
Packit Service 6754ca
		  int filmType,
Packit Service 6754ca
		  int prefix,
Packit Service 6754ca
		  int count,
Packit Service 6754ca
		  int perfOffset,
Packit Service 6754ca
		  int perfsPerFrame,
Packit Service 6754ca
		  int perfsPerCount)
Packit Service 6754ca
{
Packit Service 6754ca
    setFilmMfcCode (filmMfcCode);
Packit Service 6754ca
    setFilmType (filmType);
Packit Service 6754ca
    setPrefix (prefix);
Packit Service 6754ca
    setCount (count);
Packit Service 6754ca
    setPerfOffset (perfOffset);
Packit Service 6754ca
    setPerfsPerFrame (perfsPerFrame);
Packit Service 6754ca
    setPerfsPerCount (perfsPerCount);
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
KeyCode::KeyCode (const KeyCode &other)
Packit Service 6754ca
{
Packit Service 6754ca
    _filmMfcCode = other._filmMfcCode;
Packit Service 6754ca
    _filmType = other._filmType;
Packit Service 6754ca
    _prefix = other._prefix;
Packit Service 6754ca
    _count = other._count;
Packit Service 6754ca
    _perfOffset = other._perfOffset;
Packit Service 6754ca
    _perfsPerFrame = other._perfsPerFrame;
Packit Service 6754ca
    _perfsPerCount = other._perfsPerCount;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
KeyCode &
Packit Service 6754ca
KeyCode::operator = (const KeyCode &other)
Packit Service 6754ca
{
Packit Service 6754ca
    _filmMfcCode = other._filmMfcCode;
Packit Service 6754ca
    _filmType = other._filmType;
Packit Service 6754ca
    _prefix = other._prefix;
Packit Service 6754ca
    _count = other._count;
Packit Service 6754ca
    _perfOffset = other._perfOffset;
Packit Service 6754ca
    _perfsPerFrame = other._perfsPerFrame;
Packit Service 6754ca
    _perfsPerCount = other._perfsPerCount;
Packit Service 6754ca
Packit Service 6754ca
    return *this;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
int		
Packit Service 6754ca
KeyCode::filmMfcCode () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _filmMfcCode;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void	
Packit Service 6754ca
KeyCode::setFilmMfcCode (int filmMfcCode)
Packit Service 6754ca
{
Packit Service 6754ca
    if (filmMfcCode < 0 || filmMfcCode > 99)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code film manufacturer code "
Packit Service 6754ca
			   "(must be between 0 and 99).");
Packit Service 6754ca
Packit Service 6754ca
    _filmMfcCode = filmMfcCode;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
int		
Packit Service 6754ca
KeyCode::filmType () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _filmType;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void	
Packit Service 6754ca
KeyCode::setFilmType (int filmType)
Packit Service 6754ca
{
Packit Service 6754ca
    if (filmType < 0 || filmType > 99)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code film type "
Packit Service 6754ca
			   "(must be between 0 and 99).");
Packit Service 6754ca
Packit Service 6754ca
    _filmType = filmType;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
int		
Packit Service 6754ca
KeyCode::prefix () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _prefix;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void	
Packit Service 6754ca
KeyCode::setPrefix (int prefix)
Packit Service 6754ca
{
Packit Service 6754ca
    if (prefix < 0 || prefix > 999999)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code prefix "
Packit Service 6754ca
			   "(must be between 0 and 999999).");
Packit Service 6754ca
Packit Service 6754ca
    _prefix = prefix;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
int		
Packit Service 6754ca
KeyCode::count () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _count;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void	
Packit Service 6754ca
KeyCode::setCount (int count)
Packit Service 6754ca
{
Packit Service 6754ca
    if (count < 0 || count > 9999)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code count "
Packit Service 6754ca
			   "(must be between 0 and 9999).");
Packit Service 6754ca
Packit Service 6754ca
    _count = count;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
int		
Packit Service 6754ca
KeyCode::perfOffset () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _perfOffset;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void	
Packit Service 6754ca
KeyCode::setPerfOffset (int perfOffset)
Packit Service 6754ca
{
Packit Service 6754ca
    if (perfOffset < 0 || perfOffset > 119)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code perforation offset "
Packit Service 6754ca
			   "(must be between 0 and 119).");
Packit Service 6754ca
Packit Service 6754ca
    _perfOffset = perfOffset;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
int	
Packit Service 6754ca
KeyCode::perfsPerFrame () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _perfsPerFrame;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void
Packit Service 6754ca
KeyCode::setPerfsPerFrame (int perfsPerFrame)
Packit Service 6754ca
{
Packit Service 6754ca
    if (perfsPerFrame < 1 || perfsPerFrame > 15)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code number of perforations per frame "
Packit Service 6754ca
			   "(must be between 1 and 15).");
Packit Service 6754ca
Packit Service 6754ca
    _perfsPerFrame = perfsPerFrame;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
int	
Packit Service 6754ca
KeyCode::perfsPerCount () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _perfsPerCount;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void
Packit Service 6754ca
KeyCode::setPerfsPerCount (int perfsPerCount)
Packit Service 6754ca
{
Packit Service 6754ca
    if (perfsPerCount < 20 || perfsPerCount > 120)
Packit Service 6754ca
	throw IEX_NAMESPACE::ArgExc ("Invalid key code number of perforations per count "
Packit Service 6754ca
			   "(must be between 20 and 120).");
Packit Service 6754ca
Packit Service 6754ca
    _perfsPerCount = perfsPerCount;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT