1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_COMMON_MEDIA_GALLERIES_PMP_CONSTANTS_H_
6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_COMMON_MEDIA_GALLERIES_PMP_CONSTANTS_H_
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string>
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/basictypes.h"
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h"
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace picasa {
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// PMP file format.
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Info derived from: http://sbktech.blogspot.com/2011/12/picasa-pmp-format.html
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst char kPmpExtension[] = "pmp";
19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochconst base::Time::Exploded kPmpVariantTimeEpoch = {
21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  1899, 12, 7, 30,  // Dec 30, 1899 (Saturday)
22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  0, 0, 0, 0        // 00:00:00.000
23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch};
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
25a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)const int64 kPmpHeaderSize = 20;
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpMagic1Offset = 0;
28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpMagic2Offset = 6;
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpMagic3Offset = 8;
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpMagic4Offset = 14;
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const uint32 kPmpMagic1 = 0x3fcccccd;
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const uint16 kPmpMagic2 = 0x1332;
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const uint32 kPmpMagic3 = 0x00000002;
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const uint16 kPmpMagic4 = 0x1332;
36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpFieldType1Offset = 4;
38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpFieldType2Offset = 12;
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)const int kPmpRowCountOffset   = 16;
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)enum PmpFieldType {
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_STRING   = 0x00,
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_UINT32   = 0x01,
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_DOUBLE64 = 0x02,
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_UINT8    = 0x03,
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_UINT64   = 0x04,
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  PMP_TYPE_INVALID  = 0xff
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)};
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}  // namespace picasa
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif  // CHROME_COMMON_MEDIA_GALLERIES_PMP_CONSTANTS_H_
53