--- src/tvtimeconf.h 2011-02-01 04:35:26.000000000 +0300 +++ src/tvtimeconf.h 2011-11-15 03:50:28.532186843 +0400 @@ -161,6 +161,7 @@ unsigned int config_get_channel_text_rgb( config_t *ct ); unsigned int config_get_other_text_rgb( config_t *ct ); int config_get_fullscreen( config_t *ct ); +int config_get_matte( config_t *ct ); int config_get_alwaysontop( config_t *ct ); int config_get_priority( config_t *ct ); uid_t config_get_uid( config_t *ct ); --- src/tvtimeosd.c 2011-11-10 20:21:35.000000000 +0400 +++ src/tvtimeosd.c 2011-11-10 20:20:55.000000000 +0400 @@ -141,7 +141,7 @@ unsigned int other_b; }; -const int top_size = 7; +const int top_size = 15; const int left_size = 7; const int left_inner_size = 10; const int bottom_size = 13; --- src/tvtimeconf.c 2011-02-01 04:35:26.000000000 +0300 +++ src/tvtimeconf.c 2011-11-15 03:52:47.303451964 +0400 @@ -59,6 +59,7 @@ int squarepixels; int debug; int fullscreen; + int matte; int alwaysontop; int priority; int ntsc_mode; @@ -323,6 +324,10 @@ ct->fullscreen = atoi( curval ); } + if( !xmlStrcasecmp( name, BAD_CAST "Matte" ) ) { + ct->matte = atoi( curval ); + } + if( !xmlStrcasecmp( name, BAD_CAST "AlwaysOnTop" ) ) { ct->alwaysontop = atoi( curval ); } @@ -737,6 +742,7 @@ ct->squarepixels = 1; ct->debug = 0; ct->fullscreen = 0; + ct->matte = 0; ct->alwaysontop = 0; ct->priority = -10; ct->ntsc_mode = 0; @@ -1015,6 +1021,9 @@ snprintf( tempstring, sizeof( tempstring ), "%d", ct->fullscreen ); config_save( ct, "Fullscreen", tempstring ); + snprintf( tempstring, sizeof( tempstring ), "%d", ct->matte ); + config_save( ct, "Matte", tempstring ); + snprintf( tempstring, sizeof( tempstring ), "%d", ct->verbose ); config_save( ct, "Verbose", tempstring ); @@ -1535,6 +1544,11 @@ return ct->fullscreen; } +int config_get_matte( config_t *ct ) +{ + return ct->matte; +} + int config_get_alwaysontop( config_t *ct ) { return ct->alwaysontop; --- src/tvtime.c 2011-02-01 04:35:26.000000000 +0300 +++ src/tvtime.c 2011-11-15 04:09:17.203076517 +0400 @@ -1581,6 +1581,24 @@ build_fspos_menu( commands_get_menu( commands, "fspos" ), config_get_fullscreen_position( ct ) ); + matte_mode = config_get_matte( ct ); + if( sixteennine == 0 ) { /* fix me for sixteennine mode */ + if( matte_mode == 1 ) { + matte_y = 72; + output->set_matte( 768, 432 ); + } else if( matte_mode == 2 ) { + matte_y = 48; + output->set_matte( 768, 480 ); + } else if( matte_mode == 3 ) { + matte_y = 80; + output->set_matte( 768, 416 ); + } else if( matte_mode == 4 ) { + matte_y = 124; + output->set_matte( 768, 328 ); + } + } + output->set_window_height( output->get_visible_height() ); + /* Initialize our timestamps. */ for(;;) { const char *fifo_args = 0; @@ -1601,10 +1619,12 @@ } if( matte_mode ) { - output_x = matte_x; - output_w = matte_w; - output_y = matte_y; - output_h = matte_h; + output_x = (int) ((((double) width) * commands_get_overscan( commands )) + 0.5) + matte_x; + output_w = (int) ((((double) width) - + (((double) width) * commands_get_overscan( commands ) * 2.0)) + 0.5) - matte_x * 3; + output_y = (int) ((((double) height) * commands_get_overscan( commands )) + 0.5) + matte_y; + output_h = (int) ((((double) height) - + (((double) height) * commands_get_overscan( commands ) * 2.0)) + 0.5) - matte_y * 2; } else { output_x = (int) ((((double) width) * commands_get_overscan( commands )) + 0.5); @@ -2509,6 +2529,9 @@ config_save( ct, "InputWidth", number ); } + snprintf( number, 4, "%d", matte_mode ); + config_save( ct, "Matte", number ); + snprintf( number, 4, "%d", commands_get_global_brightness( commands ) ); config_save( ct, "DefaultBrightness", number ); snprintf( number, 4, "%d", commands_get_global_contrast( commands ) );