source: NonGTP/OpenEXR/include/IlmImf/ImfKeyCode.h @ 855

Revision 855, 4.8 KB checked in by igarcia, 18 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////
2//
3// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
4// Digital Ltd. LLC
5//
6// All rights reserved.
7//
8// Redistribution and use in source and binary forms, with or without
9// modification, are permitted provided that the following conditions are
10// met:
11// *       Redistributions of source code must retain the above copyright
12// notice, this list of conditions and the following disclaimer.
13// *       Redistributions in binary form must reproduce the above
14// copyright notice, this list of conditions and the following disclaimer
15// in the documentation and/or other materials provided with the
16// distribution.
17// *       Neither the name of Industrial Light & Magic nor the names of
18// its contributors may be used to endorse or promote products derived
19// from this software without specific prior written permission.
20//
21// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32//
33///////////////////////////////////////////////////////////////////////////
34
35
36#ifndef INCLUDED_IMF_KEY_CODE_H
37#define INCLUDED_IMF_KEY_CODE_H
38
39//-----------------------------------------------------------------------------
40//
41//      class KeyCode
42//     
43//      A KeyCode object uniquely identifies a motion picture film frame.
44//      The following fields specifiy film manufacturer, film type, film
45//      roll and the frame's position within the roll:
46//
47//          filmMfcCode         film manufacturer code
48//                              range: 0 - 99
49//
50//          filmType            film type code
51//                              range: 0 - 99
52//
53//          prefix              prefix to identify film roll
54//                              range: 0 - 999999
55//
56//          count               count, increments once every perfsPerCount
57//                              perforations (see below)
58//                              range: 0 - 9999
59//
60//          perfOffset          offset of frame, in perforations from
61//                              zero-frame reference mark
62//                              range: 0 - 119
63//
64//          perfsPerFrame       number of perforations per frame
65//                              range: 1 - 15
66//
67//                              typical values:
68//
69//                                  1 for 16mm film
70//                                  3, 4, or 8 for 35mm film
71//                                  5, 8 or 15 for 65mm film
72//
73//          perfsPerCount       number of perforations per count
74//                              range: 20 - 120
75//
76//                              typical values:
77//
78//                                  20 for 16mm film
79//                                  64 for 35mm film
80//                                  80 or 120 for 65mm film
81//
82//      For more information about the interpretation of those fields see
83//      the following standards and recommended practice publications:
84//
85//          SMPTE 254   Motion-Picture Film (35-mm) - Manufacturer-Printed
86//                      Latent Image Identification Information
87//
88//          SMPTE 268M  File Format for Digital Moving-Picture Exchange (DPX)
89//                      (section 6.1)
90//
91//          SMPTE 270   Motion-Picture Film (65-mm) - Manufacturer- Printed
92//                      Latent Image Identification Information
93//
94//          SMPTE 271   Motion-Picture Film (16-mm) - Manufacturer- Printed
95//                      Latent Image Identification Information
96//
97//-----------------------------------------------------------------------------
98
99namespace Imf {
100
101   
102class KeyCode
103{
104  public:
105
106    //-------------------------------------
107    // Constructors and assignment operator
108    //-------------------------------------
109
110    KeyCode (int filmMfcCode = 0,
111             int filmType = 0,
112             int prefix = 0,
113             int count = 0,
114             int perfOffset = 0,
115             int perfsPerFrame = 4,
116             int perfsPerCount = 64);
117
118    KeyCode (const KeyCode &other);
119    KeyCode & operator = (const KeyCode &other);
120
121
122    //----------------------------
123    // Access to individual fields
124    //----------------------------
125
126    int         filmMfcCode () const;
127    void        setFilmMfcCode (int filmMfcCode);
128
129    int         filmType () const;
130    void        setFilmType (int filmType);
131
132    int         prefix () const;
133    void        setPrefix (int prefix);
134
135    int         count () const;
136    void        setCount (int count);
137
138    int         perfOffset () const;
139    void        setPerfOffset (int perfOffset);
140
141    int         perfsPerFrame () const;
142    void        setPerfsPerFrame (int perfsPerFrame);
143
144    int         perfsPerCount () const;
145    void        setPerfsPerCount (int perfsPerCount);
146
147  private:
148
149    int         _filmMfcCode;
150    int         _filmType;
151    int         _prefix;
152    int         _count;
153    int         _perfOffset;
154    int         _perfsPerFrame;
155    int         _perfsPerCount;
156};
157
158
159} // namespace Imf
160
161#endif
Note: See TracBrowser for help on using the repository browser.