Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

/* Copyright (C) 2010-2011 Circuits At Home, LTD. All rights reserved.

This software may be distributed and modified under the terms of the GNU
General Public License version 2 (GPL2) as published by the Free Software
Foundation and appearing in the file GPL2.TXT included in the packaging of
this file. Please note that GPL2 Section 2[b] requires that all works based
on this software must also be made publicly available under the terms of
the GPL2 ("Copyleft").

Contact information
-------------------

Circuits At Home, LTD
Web      :  http://www.circuitsathome.com
e-mail   :  support@circuitsathome.com
*/

#if !defined(__EOSVALUETITLES_H__)
#define __EOSVALUETITLES_H__

#include <inttypes.h>
#include <avr/pgmspace.h>
#include <valuelist.h>

typedef uint8_t    VT_APERTURE;
typedef uint8_t    VT_MODE;
typedef uint8_t    VT_WB;
typedef uint8_t    VT_SHSPEED;
typedef uint8_t    VT_PSTYLE;
typedef uint8_t    VT_ISO;
typedef uint8_t    VT_EXPCOMP;

#define VT_MODE_TEXT_LEN          4
#define VT_WB_TEXT_LEN            4
#define VT_SHSPEED_TEXT_LEN       5
#define VT_PSTYLE_TEXT_LEN        4
#define VT_ISO_TEXT_LEN           5
#define VT_EXPCOMP_TEXT_LEN       7
#define VT_APT_TEXT_LEN           4

const ValueTitle<VT_APERTURE, VT_APT_TEXT_LEN> ApertureTitles[] PROGMEM =
{
        {0x00{' ', ' ', '0', 0 }     },
        {0x08{' ', ' ', '1', 0 } },
        {0x0B{'1', '.', '1', 0 }     },
        {0x0C{'1', '.', '2', 0 }     },
        {0x0D{'1', '.', '2', 0 }     },
        {0x10{'1', '.', '4', 0 }     },
        {0x13{'1', '.', '6', 0 }     },
        {0x14{'1', '.', '8', 0 }     },
        {0x15{'1', '.', '8', 0 }     },
        {0x18{'2', '.', '0', 0 }     },
        {0x1B{'2', '.', '2', 0 }     },
        {0x1C{'2', '.', '5', 0 }     },
        {0x1D{'2', '.', '5', 0 }     },
        {0x20{'2', '.', '8', 0 }     },
        {0x23{'3', '.', '2', 0 }     },
        {0x24{'3', '.', '5', 0 }     },
        {0x25{'3', '.', '5', 0 }     },
        {0x28{'4', '.', '0', 0 }     },
        {0x2B{'4', '.', '5', 0 }     },
        {0x2C{'4', '.', '5', 0 }     },
        {0x2D{'5', '.', '0', 0 }     },
        {0x30{'5', '.', '6', 0 }     },
        {0x33{'6', '.', '3', 0 }     },
        {0x34{'6', '.', '7', 0 }     },
        {0x35{'7', '.', '1', 0 }     },
        {0x38{'8', '.', '0', 0 }     },
        {0x3B{'9', '.', '0', 0 }     },
        {0x3C{'9', '.', '5', 0 }     },
        {0x3D{' ', '1', '0', 0 }     },
        {0x40{' ', '1', '1', 0 }     },
        {0x43{' ', '1', '3', 0 }     },
        {0x44{' ', '1', '3', 0 }     },
        {0x45{' ', '1', '4', 0 }     },
        {0x48{' ', '1', '6', 0 }     },
        {0x4B{' ', '1', '8', 0 }     },
        {0x4C{' ', '1', '9', 0 }     },
        {0x4D{' ', '2', '0', 0 }     },
        {0x50{' ', '2', '2', 0 }     },
        {0x53{' ', '2', '5', 0 }     },
        {0x54{' ', '2', '7', 0 }     },
        {0x55{' ', '2', '9', 0 }     },
        {0x58{' ', '3', '2', 0 }     },
        {0x5B{' ', '3', '6', 0 }     },
        {0x5C{' ', '3', '8', 0 }     },
        {0x5D{' ', '4', '0', 0 }     },
        {0x60{' ', '4', '5', 0 }     },
        {0x63{' ', '5', '1', 0 }     },
        {0x64{' ', '5', '4', 0 }     },
        {0x65{' ', '5', '7', 0 }     },
        {0x68{' ', '6', '4', 0 }     },
        {0x6B{' ', '7', '2', 0 }     },
        {0x6C{' ', '7', '6', 0 }     },
        {0x6D{' ', '8', '0', 0 }     },
        {0x70{' ', '9', '1', 0 }     }
};

const ValueTitle<VT_SHSPEED, VT_SHSPEED_TEXT_LEN> ShutterSpeedTitles[] PROGMEM =
{
        {0x0c{'B','u','l','b',0} },
        {0x10{' ','3','0','"',0} },
        {0x13{' ','2','5','"',0} },
        {0x14{' ','2','0','"',0} },
        {0x15{' ','2','0','"',0} },
        {0x18{' ','1','5','"',0} },
        {0x1B{' ','1','3','"',0} },
        {0x1C{' ','1','0','"',0} },
        {0x1D{' ','1','0','"',0} },
        {0x20{' ',' ','8','"',0} },
        {0x23{' ',' ','6','"',0} },
        {0x24{' ',' ','6','"',0} },
        {0x25{' ',' ','5','"',0} },
        {0x28{' ',' ','4','"',0} },
        {0x2B{' ','3','"','2',0} },
        {0x2C{' ',' ','3','"',0} },
        {0x2D{' ','2','"','5',0} },
        {0x30{' ',' ','2','"',0} },
        {0x33{' ','1','"','6',0} },
        {0x34{' ','1','"','5',0} },
        {0x35{' ','1','"','3',0} },
        {0x38{' ',' ','1','"',0} },
        {0x3B{' ','0','"','8',0} },
        {0x3C{' ','0','"','7',0} },
        {0x3D{' ','0','"','6',0} },
        {0x40{' ','0','"','5',0} },
        {0x43{' ','0','"','4',0} },
        {0x44{' ','0','"','3',0} },
        {0x45{' ','0','"','3',0} },
        {0x48{' ',' ',' ','4',0} },
        {0x4B{' ',' ',' ','5',0} },
        {0x4C{' ',' ',' ','6',0} },
        {0x4D{' ',' ',' ','6',0} },
        {0x50{' ',' ',' ','8',0} },
        {0x53{' ',' ','1','0',0} },
        {0x54{' ',' ','1','0',0} },
        {0x55{' ',' ','1','3',0} },
        {0x58{' ',' ','1','5',0} },
        {0x5B{' ',' ','2','0',0} },
        {0x5C{' ',' ','2','0',0} },
        {0x5D{' ',' ','2','5',0} },
        {0x60{' ',' ','3','0',0} },
        {0x63{' ',' ','4','0',0} },
        {0x64{' ',' ','4','5',0} },
        {0x65{' ',' ','5','0',0} },
        {0x68{' ',' ','6','0',0} },
        {0x6B{' ',' ','8','0',0} },
        {0x6C{' ',' ','9','0',0} },
        {0x6D{' ','1','0','0',0} },
        {0x70{' ','1','2','5',0} },
        {0x73{' ','1','6','0',0} },
        {0x74{' ','1','8','0',0} },
        {0x75{' ','2','0','0',0} },
        {0x78{' ','2','5','0',0} },
        {0x7B{' ','3','2','0',0} },
        {0x7C{' ','3','5','0',0} },
        {0x7D{' ','4','0','0',0} },
        {0x80{' ','5','0','0',0} },
        {0x83{' ','6','4','0',0} },
        {0x84{' ','7','5','0',0} },
        {0x85{' ','8','0','0',0} },
        {0x88{'1','0','0','0',0} },
        {0x8B{'1','2','5','0',0} },
        {0x8C{'1','5','0','0',0} },
        {0x8D{'1','6','0','0',0} },
        {0x90{'2','0','0','0',0} },
        {0x93{'2','5','0','0',0} },
        {0x94{'3','0','0','0',0} },
        {0x95{'3','2','0','0',0} },
        {0x98{'4','0','0','0',0} },
        {0x9B{'5','0','0','0',0} },
        {0x9C{'6','0','0','0',0} },
        {0x9D{'6','4','0','0',0} },
        {0xA0{'8','0','0','0',0} }
};

const ValueTitle<VT_ISO, VT_ISO_TEXT_LEN> IsoTitles[] PROGMEM =
{
        {0x28{'6',' ',' ',' ',0} },
        {0x30{'1','2',' ',' ',0} },
        {0x38{'2','5',' ',' ',0} },
        {0x40{'5','0',' ',' ',0} },
        {0x48{'1','0','0',' ',0} },
        {0x4b{'1','2','5',' ',0} },
        {0x4d{'1','6','0',' ',0} },
        {0x50{'2','0','0',' ',0} },
        {0x53{'2','5','0',' ',0} },
        {0x55{'3','2','0',' ',0} },
        {0x58{'4','0','0',' ',0} },
        {0x5b{'5','0','0',' ',0} },
        {0x5d{'6','4','0',' ',0} },
        {0x60{'8','0','0',' ',0} },
        {0x63{'1','0','0','0',0} },
        {0x65{'1','2','5','0',0} },
        {0x68{'1','6','0','0',0} },
        {0x70{'3','2','0','0',0} },
        {0x78{'6','4','0','0',0} }
};

// Exposure Compensation Title Array
const ValueTitle<VT_EXPCOMP, VT_EXPCOMP_TEXT_LEN> ExpCompTitles[] PROGMEM =
{
        {0x28{'+','5',' ',' ',' ',' ',0} },                         
        {0x25{'+','4',' ','2','/','3',0} },                         
        {0x23{'+','4',' ','1','/','3',0} },                         
        {0x20{'+','4',' ',' ',' ',' ',0} },                         
        {0x1d{'+','3',' ','2','/','3',0} },                         
        {0x1b{'+','3',' ','1','/','3',0} },                         
        {0x18{'+','3',' ',' ',' ',' ',0} },                         
        {0x15{'+','2',' ','2','/','3',0} },                         
        {0x14{'+','2',' ','1','/','2',0} },                         
        {0x13{'+','2',' ','1','/','3',0} },                         
        {0x10{'+','2',' ',' ',' ',' ',0} },                         
        {0x0d{'+','1',' ','2','/','3',0} },                         
        {0x0c{'+','1',' ','1','/','2',0} },                         
        {0x0b{'+','1',' ','1','/','3',0} },                         
        {0x08{'+','1',' ',' ',' ',' ',0} },                         
        {0x05{'+','2','/','3',' ',' ',0} },                         
        {0x04{'+','1','/','2',' ',' ',0} },                         
        {0x03{'+','1','/','3',' ',' ',0} },                         
        {0x00{'0',' ',' ',' ',' ',' ',0} },                         
        {0xfd{'-','1','/','3',' ',' ',0} },                         
        {0xfc{'-','1','/','2',' ',' ',0} },                         
        {0xfb{'-','2','/','3',' ',' ',0} },                         
        {0xf8{'-','1',' ',' ',' ',' ',0} },                         
        {0xf5{'-','1',' ','1','/','3',0} },                         
        {0xf4{'-','1',' ','1','/','2',0} },                         
        {0xf3{'-','1',' ','2','/','3',0} },                         
        {0xf0{'-','2',' ',' ',' ',' ',0} },                         
        {0xed{'-','2',' ','1','/','3',0} },                         
        {0xec{'-','2',' ','1','/','2',0} },                         
        {0xeb{'-','2',' ','2','/','3',0} },                         
        {0xe8{'-','3',' ',' ',' ',' ',0} },                 
        {0xe5{'-','3',' ','1','/','3',0} },                 
        {0xe3{'-','3',' ','2','/','3',0} },                 
        {0xe0{'-','4',' ',' ',' ',' ',0} },                 
        {0xdd{'-','4',' ','1','/','3',0} },                 
        {0xdb{'-','3',' ','2','/','3',0} },                 
        {0xd8{'-','5',' ',' ',' ',' ',0} }                  
};

// Shooting Mode Title Array
const ValueTitle<VT_MODE, VT_MODE_TEXT_LEN> ModeTitles[] PROGMEM =
{
        {0,     {'P',' ',' ',0} },            // Program
        {1,     {'T','v',' ',0} },            // Tv
        {2,     {'A','v',' ',0} },            // Av
        {3,     {'M',' ',' ',0} },            // Manual
        {4,     {'B','l','b',0} },            // Bulb
        {5,     {'A','-','D',0} },            // A-DEP
        {6,     {'D','E','P',0} },            // DEP
        {7,     {'C',' ',' ',0} },            // Custom
        {8,     {'L','c','k',0} },            // Lock
        {9,     {'G','r','n',0} },            // Green (Fully Automatic Mode)
        {10,{'N','g','h',0} },            // Night Portrait
        {11,{'S','p','r',0} },            // Sports
        {13,{'L','n','d',0} },            // Landscape
        {14,{'C','l','s',0} },            // Closeup
        {15,{'N','/','F',0} }             // No Flash
};

// White Balance Title Array
const ValueTitle<VT_WB, VT_WB_TEXT_LEN> WbTitles[] PROGMEM =
{
        {0,     {'A','W','B',0} },            // Auto White Balance
        {1,     {'D','a','y',0} },            // Daylight
        {2,     {'C','l','d',0} },            // Clouds
        {3, {'T','n','g',0} },            // Tungsteen
        {4, {'F','l','r',0} },            // Fluoriscent
        {5,     {'S','t','r',0} },            // Strobe
        {6, {'W','/','P',0} },            // White Paper
        {8,     {'S','h','d',0} }             // Shade
};

// Picture Style Title Array
const ValueTitle<VT_PSTYLE, VT_PSTYLE_TEXT_LEN> PStyleTitles[] PROGMEM =
{
        {0x21{'U','s','1',0} },            // User 1
        {0x22{'U','s','2',0} },            // User 2
        {0x23{'U','s','3',0} },            // User 3
        {0x81,  {'S','t','d',0} },            // Standard
        {0x82,  {'P','r','t',0} },            // Portrait
        {0x83,  {'L','n','d',0} },            // Landscape
        {0x84{'N','t','l',0} },            // Neutral
        {0x85,  {'F','t','h',0} },            // Faithful
        {0x86{'M','o','n',0} }             // Monochrome
};

#define VT_APT_COUNT             sizeof(ApertureTitles)     / (sizeof(VT_APERTURE)   + VT_APT_TEXT_LEN)
#define VT_MODE_COUNT            sizeof(ModeTitles)         / (sizeof(VT_MODE)       + VT_MODE_TEXT_LEN)
#define VT_WB_COUNT              sizeof(WbTitles)           / (sizeof(VT_WB)         + VT_WB_TEXT_LEN)
#define VT_SHSPEED_COUNT         sizeof(ShutterSpeedTitles) / (sizeof(VT_SHSPEED)    + VT_SHSPEED_TEXT_LEN)
#define VT_PSTYLE_COUNT          sizeof(PStyleTitles)       / (sizeof(VT_PSTYLE)     + VT_PSTYLE_TEXT_LEN)
#define VT_ISO_COUNT             sizeof(IsoTitles)          / (sizeof(VT_ISO)        + VT_ISO_TEXT_LEN)
#define VT_EXPCOMP_COUNT         sizeof(ExpCompTitles)      / (sizeof(VT_EXPCOMP)    + VT_EXPCOMP_TEXT_LEN)

#endif // __EOSVALUETITLES_H__