Changeset 1934


Ignore:
Timestamp:
06/24/12 06:49:17 (11 months ago)
Author:
reyalp
Message:

a410 live view functions from srsa_4c in http://chdk.setepontos.com/index.php?topic=650.msg86708#msg86708

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/a410/sub/100f/lib.c

    r1527 r1934  
    2222} 
    2323 
    24 /* 
    25 void *vid_get_viewport_live_fb() 
    26 { 
    27     return (void*)0; 
     24int vid_get_viewport_width_proper() { 
     25    int m = mode_get(); 
     26    if((m&MODE_MASK) == MODE_PLAY) { 
     27        return 720; //no tv-out 
     28    } 
     29    // return hard coded width since mode doesn't update at the same time as GetVRAMHPixelsSize 
     30    if((m&MODE_SHOOTING_MASK) == MODE_STITCH) { 
     31        return 360; 
     32    } 
     33    return *(int*)0x36a98; 
    2834} 
    29 */ 
     35 
     36int vid_get_viewport_height_proper() { 
     37    int m = mode_get(); 
     38    if((m&MODE_MASK) == MODE_PLAY) { 
     39        return 240; //no tv-out 
     40    } 
     41    // return hard coded width since mode doesn't update at the same time as GetVRAMHPixelsSize 
     42    if((m&MODE_SHOOTING_MASK) == MODE_STITCH) { 
     43        return 120;  
     44    } 
     45    return *(int*)0x36a9c; 
     46} 
    3047 
    3148void *vid_get_viewport_live_fb() // from a540 
     
    5774} 
    5875 
     76int vid_get_viewport_width() { 
     77    return vid_get_viewport_width_proper()>>1; 
     78} 
     79 
    5980long vid_get_viewport_height() 
    6081{ 
    61     // return ((mode_get()&MODE_MASK) == MODE_PLAY) ? 240 : 230; 
    62     return 240; 
     82    return vid_get_viewport_height_proper(); 
    6383} 
    6484 
     
    6787    return (char*)0x7F9F0; // @ffdd479c 
    6888}  
     89 
     90int vid_get_palette_type() { return 1; } 
     91int vid_get_palette_size() { return 16*4; } 
     92 
     93void *vid_get_bitmap_active_palette() { 
     94    return (void *)0x73028; // GetPaletteFromPhysicalScreen 
     95} 
     96 
     97void *vid_get_bitmap_active_buffer() 
     98{ 
     99    return (void*)(*(int*)0x6694); // @ffd0a170 DisplayPhysicalScreenWithYUVPalette 
     100} 
     101 
     102int vid_get_viewport_fullscreen_height() { 
     103    // except for stitch, always full screen 
     104    int m = mode_get(); 
     105    if((m&MODE_MASK) != MODE_PLAY && ((m&MODE_SHOOTING_MASK) == MODE_STITCH)) { 
     106        return 240; 
     107    } 
     108    return vid_get_viewport_height_proper(); 
     109} 
     110 
     111int vid_get_viewport_fullscreen_width() { 
     112    // except for stitch, always full screen 
     113    int m = mode_get(); 
     114    if((m&MODE_MASK) != MODE_PLAY && ((m&MODE_SHOOTING_MASK) == MODE_STITCH)) { 
     115        return 720; 
     116    } 
     117    return vid_get_viewport_width_proper(); 
     118} 
     119 
     120int vid_get_viewport_display_xoffset() { 
     121    int m = mode_get(); 
     122    if((m&MODE_MASK) == MODE_PLAY) { 
     123        return 0; 
     124    } else if((m&MODE_SHOOTING_MASK) == MODE_STITCH) { // checked visually, OK 
     125        short dir=0; 
     126        short seq=0; 
     127        get_property_case(PROPCASE_STITCH_DIRECTION,&dir,sizeof(dir)); 
     128        get_property_case(PROPCASE_STITCH_SEQUENCE,&seq,sizeof(seq)); 
     129        // overall stitch window is 3/4 screen width, centered 
     130        // live part is 1/2, so margin is either 1/8th or 3/8th 
     131        if(dir==0) { 
     132            return seq?132:44; 
     133        } else { 
     134            return seq?44:132; 
     135        } 
     136    } 
     137    return 0; 
     138} 
     139 
     140int vid_get_viewport_display_yoffset() { 
     141    int m = mode_get(); 
     142    if((m&MODE_MASK) == MODE_PLAY) { 
     143        return 0; 
     144    } 
     145    return ((m&MODE_SHOOTING_MASK) == MODE_STITCH)?60:0; // window is 120, centered in 240 screen 
     146} 
Note: See TracChangeset for help on using the changeset viewer.