root/platform/a640/sub/100b/lib.c

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

DEFINITIONS

This source file includes following definitions.
  1. hook_raw_image_addr
  2. vid_get_viewport_live_fb
  3. vid_get_bitmap_fb
  4. vid_get_viewport_fb
  5. vid_get_viewport_fb_d
  6. vid_get_viewport_height
  7. vid_get_viewport_height_proper
  8. vid_get_viewport_width
  9. camera_jpeg_count_str
  10. vid_get_palette_type
  11. vid_get_palette_size
  12. vid_get_bitmap_active_palette
  13. vid_get_bitmap_active_buffer
  14. vid_get_viewport_fullscreen_height
  15. vid_get_viewport_fullscreen_width
  16. vid_get_viewport_display_xoffset
  17. vid_get_viewport_display_yoffset

   1 #include "platform.h"
   2 
   3 char *hook_raw_image_addr()
   4 {
   5     return (char*)0x105BA490;
   6 }
   7 
   8 void *vid_get_viewport_live_fb()
   9 {
  10     return (void*)0;
  11 }
  12 
  13 void *vid_get_bitmap_fb()
  14 {
  15     return (void*)(0x10361000);
  16 }
  17 
  18 void *vid_get_viewport_fb()
  19 {
  20     return (void*)0x105F3170; //0x1055B370;
  21 }
  22 
  23 void *vid_get_viewport_fb_d()
  24 {
  25     return (void*)(*(int*)0x65b2c);
  26 }
  27 
  28 
  29 extern int _GetVRAMHPixelsSize();
  30 extern int _GetVRAMVPixelsSize();
  31 
  32 long vid_get_viewport_height()
  33 {
  34     if(camera_info.state.mode_play) {
  35         return 240;
  36     }
  37     return _GetVRAMVPixelsSize();
  38 }
  39 
  40 int vid_get_viewport_height_proper() {
  41     return vid_get_viewport_height();
  42 }
  43 
  44 
  45 int vid_get_viewport_width() {
  46     if(camera_info.state.mode_play) {
  47         return 360;
  48     }
  49     return _GetVRAMHPixelsSize() >> 1;
  50 }
  51 
  52 
  53 char *camera_jpeg_count_str()
  54 {
  55     return (char*)0x71200;
  56 }
  57 
  58 // PTP display stuff
  59 int vid_get_palette_type() { return 1; }
  60 int vid_get_palette_size() { return 16*4; }
  61 
  62 void *vid_get_bitmap_active_palette() {
  63     return (void *)0x65520; // GetPaletteFromPhysicalScreen -> sub_ffd30aec
  64 }
  65 
  66 void *vid_get_bitmap_active_buffer()
  67 {
  68     return (void*)(*(int*)0x5fe4); // ffd308d4
  69 }
  70 
  71 int vid_get_viewport_fullscreen_height() {
  72     // except for stitch, always full screen
  73     if(!camera_info.state.mode_play && camera_info.state.mode_shooting == MODE_STITCH) {
  74         return 240;
  75     }
  76     return vid_get_viewport_height_proper();
  77 }
  78 int vid_get_viewport_fullscreen_width() {
  79     // except for stitch, always full screen
  80     if(!camera_info.state.mode_play && camera_info.state.mode_shooting == MODE_STITCH) {
  81         return 720;
  82     }
  83     return vid_get_viewport_width_proper();
  84 }
  85 
  86 int vid_get_viewport_display_xoffset() {
  87     if(camera_info.state.mode_play) {
  88         return 0;
  89     } else if(camera_info.state.mode_shooting == MODE_STITCH) {
  90         short dir=0;
  91         short seq=0;
  92         get_property_case(PROPCASE_STITCH_DIRECTION,&dir,sizeof(dir));
  93         get_property_case(PROPCASE_STITCH_SEQUENCE,&seq,sizeof(seq));
  94         // guessed based on D10
  95         if(dir==0) {
  96             return seq?135:45;
  97         } else {
  98             return seq?45:135;
  99         }
 100     }
 101     return 0;
 102 }
 103 
 104 int vid_get_viewport_display_yoffset() {
 105     if(camera_info.state.mode_play) {
 106         return 0;
 107     }
 108     return (camera_info.state.mode_shooting == MODE_STITCH)?60:0; // window is 120, centered in 240 screen
 109 }
 110 

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