1117395Skan///////////////////////////////////////////////////////////////////////////
2132718Skan//
3169689Skan// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
418334Speter// Digital Ltd. LLC
5132718Skan//
618334Speter// All rights reserved.
7117395Skan//
818334Speter// Redistribution and use in source and binary forms, with or without
9117395Skan// modification, are permitted provided that the following conditions are
10117395Skan// met:
11117395Skan// *       Redistributions of source code must retain the above copyright
12117395Skan// notice, this list of conditions and the following disclaimer.
1318334Speter// *       Redistributions in binary form must reproduce the above
14117395Skan// copyright notice, this list of conditions and the following disclaimer
15117395Skan// in the documentation and/or other materials provided with the
16117395Skan// distribution.
17117395Skan// *       Neither the name of Industrial Light & Magic nor the names of
1818334Speter// its contributors may be used to endorse or promote products derived
19117395Skan// from this software without specific prior written permission.
20117395Skan//
21169689Skan// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22169689Skan// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2318334Speter// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2418334Speter// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2550397Sobrien// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26132718Skan// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27132718Skan// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2818334Speter// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2950397Sobrien// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30117395Skan// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
3190075Sobrien// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32169689Skan//
3318334Speter///////////////////////////////////////////////////////////////////////////
34117395Skan
35132718Skan
36117395Skan//-----------------------------------------------------------------------------
3718334Speter//
38117395Skan//	class KeyCodeAttribute
3918334Speter//
40117395Skan//-----------------------------------------------------------------------------
4118334Speter
42117395Skan#include <ImfKeyCodeAttribute.h>
43117395Skan
44117395Skannamespace Imf {
45117395Skan
46117395Skan
47117395Skantemplate <>
4818334Speterconst char *
49117395SkanKeyCodeAttribute::staticTypeName ()
50117395Skan{
51117395Skan    return "keycode";
5218334Speter}
53132718Skan
54132718Skan
55132718Skantemplate <>
56132718Skanvoid
57132718SkanKeyCodeAttribute::writeValueTo (OStream &os, int version) const
5818334Speter{
59117395Skan    Xdr::write <StreamIO> (os, _value.filmMfcCode());
60117395Skan    Xdr::write <StreamIO> (os, _value.filmType());
61132718Skan    Xdr::write <StreamIO> (os, _value.prefix());
6218334Speter    Xdr::write <StreamIO> (os, _value.count());
63132718Skan    Xdr::write <StreamIO> (os, _value.perfOffset());
64132718Skan    Xdr::write <StreamIO> (os, _value.perfsPerFrame());
65117395Skan    Xdr::write <StreamIO> (os, _value.perfsPerCount());
66117395Skan}
67132718Skan
68117395Skan
6918334Spetertemplate <>
70117395Skanvoid
71117395SkanKeyCodeAttribute::readValueFrom (IStream &is, int size, int version)
72117395Skan{
73117395Skan    int tmp;
7418334Speter
7550397Sobrien    Xdr::read <StreamIO> (is, tmp);
76117395Skan    _value.setFilmMfcCode (tmp);
77117395Skan
7818334Speter    Xdr::read <StreamIO> (is, tmp);
79117395Skan    _value.setFilmType (tmp);
80117395Skan
81117395Skan    Xdr::read <StreamIO> (is, tmp);
8218334Speter    _value.setPrefix (tmp);
83132718Skan
84132718Skan    Xdr::read <StreamIO> (is, tmp);
85132718Skan    _value.setCount (tmp);
86132718Skan
87132718Skan    Xdr::read <StreamIO> (is, tmp);
88132718Skan    _value.setPerfOffset (tmp);
89132718Skan
90132718Skan    Xdr::read <StreamIO> (is, tmp);
91132718Skan    _value.setPerfsPerFrame (tmp);
92132718Skan
93132718Skan    Xdr::read <StreamIO> (is, tmp);
94132718Skan    _value.setPerfsPerCount (tmp);
95132718Skan}
96132718Skan
97132718Skan
98132718Skan} // namespace Imf
99132718Skan