root/platform/a3300/lib.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. shutdown
  2. debug_led
  3. camera_set_led
  4. get_flash_params_count
  5. vid_get_viewport_height
  6. vid_bitmap_refresh
  7. vid_get_bitmap_active_palette
  8. load_chdk_palette
  9. vid_get_palette_type
  10. vid_get_palette_size

   1 #include "platform.h"
   2 #include "platform_palette.h"
   3 #include "lolevel.h"
   4 
   5 void shutdown() // method taken from the ixus140_elph130 port
   6 {
   7     extern void _TurnOffE1(void);
   8     _TurnOffE1();
   9         while(1);
  10 }
  11 
  12 #define LED_PR 0xC02200F0
  13 
  14 
  15 void debug_led(int state)
  16 {
  17  *(int*)LED_PR=state ? 0x46 : 0x44;
  18 }
  19 
  20 void camera_set_led(int led, int state, int bright) {
  21  static char led_table[2]={0,9};
  22  _LEDDrive(led_table[led%sizeof(led_table)], state<=1 ? !state : state);
  23 }
  24 
  25 int get_flash_params_count(void){
  26  return 0xa0;   // Found @0xff994830  a3300is
  27 }
  28 
  29 long vid_get_viewport_height()
  30 {
  31         return 240;
  32 }
  33 
  34 void vid_bitmap_refresh() {
  35         
  36         extern int full_screen_refresh;
  37         extern void _ScreenUnlock();
  38         extern void _ScreenLock();
  39 
  40         full_screen_refresh |= 3;
  41         _ScreenLock();
  42         _ScreenUnlock();
  43 }
  44 
  45 void *vid_get_bitmap_active_palette() {
  46         extern int active_palette_buffer;
  47         extern char* palette_buffer[];
  48         return (palette_buffer[active_palette_buffer]+8);
  49 }
  50 
  51 #ifdef CAM_LOAD_CUSTOM_COLORS
  52 // Function to load CHDK custom colors into active Canon palette
  53 void load_chdk_palette() {
  54         
  55         extern int active_palette_buffer;
  56         // Only load for the standard record and playback palettes
  57         if ((active_palette_buffer == 0) || (active_palette_buffer == 4))
  58         {
  59                 int *pal = (int*)vid_get_bitmap_active_palette();
  60                 if (pal[CHDK_COLOR_BASE+0] != 0x33ADF62)          // see if CHDK palette already loaded -- if not, load it
  61                 {
  62             pal[CHDK_COLOR_BASE+0]  = 0x33ADF62;  // Red
  63                         pal[CHDK_COLOR_BASE+1]  = 0x326EA40;  // Dark Red
  64                         pal[CHDK_COLOR_BASE+2]  = 0x34CD57F;  // Light Red
  65                         pal[CHDK_COLOR_BASE+3]  = 0x373BFAE;  // Green
  66                         pal[CHDK_COLOR_BASE+4]  = 0x34BD6CA;  // Dark Green
  67                         pal[CHDK_COLOR_BASE+5]  = 0x395AB95;  // Light Green
  68                         pal[CHDK_COLOR_BASE+6]  = 0x34766F0;  // Blue
  69                         pal[CHDK_COLOR_BASE+7]  = 0x31250F3;  // Dark Blue
  70                         pal[CHDK_COLOR_BASE+8]  = 0x37F408F;  // Cyan
  71                         pal[CHDK_COLOR_BASE+9]  = 0x3512D5B;  // Magenta
  72                         pal[CHDK_COLOR_BASE+10] = 0x3A9A917;  // Yellow
  73                         pal[CHDK_COLOR_BASE+11] = 0x3819137;  // Dark Yellow
  74                         pal[CHDK_COLOR_BASE+12] = 0x3DED115;  // Light Yellow
  75             pal[CHDK_COLOR_BASE+13] = 0x0090000;  // Transparent dark grey
  76                         
  77                         extern char palette_control;
  78                         palette_control = 1;
  79                         vid_bitmap_refresh();
  80         }
  81     }
  82 }
  83 #endif
  84 
  85 int vid_get_palette_type()                      { return 3; }
  86 int vid_get_palette_size()                      { return 256 * 4; }

/* [<][>][^][v][top][bottom][index][help] */