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