source: svn/trunk/newcon3bcm2_21bu/dta/src/dcc/eia708_app.c

Last change on this file was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
  • Property svn:executable set to *
File size: 47.7 KB
Line 
1/***************************************************************************
2 *     Copyright (c) 2002-2010, Broadcom Corporation
3 *     All Rights Reserved
4 *     Confidential Property of Broadcom Corporation
5 *
6 *  THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE
7 *  AGREEMENT  BETWEEN THE USER AND BROADCOM.  YOU HAVE NO RIGHT TO USE OR
8 *  EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT.
9 *
10 ***************************************************************************/
11
12#include <stdio.h>
13#include <stdlib.h>
14#include "bsettop.h"
15#include "ministd.h"
16#include "708_test_string.h"
17#include "b_dcc_lib.h"
18#include "bwin.h"
19#include "b_softgfx_lib.h"
20
21#define CC_DATA_BUF_SIZE 128
22#define MAX_INPUT_CHARS 128
23#define MAX_LENGTH_FILE 64  /* max num characters for a playback stream file name */
24#define HDMI_DISPLAY 1
25#define COMPOSITE_DISPLAY 0
26
27//#define       FORMAT_480I
28
29#ifdef  FORMAT_480I
30#define SCALE_480I_FONTS
31#endif
32
33typedef struct CCTest_InputParameters
34{
35    B_Dcc_Type          ccMode;
36    uint32_t        ccService;
37    uint32_t        channelChange;
38    uint32_t        changeDisp;
39    bool            dispOn; /* display on or off (allows sharing framebuffer with application) */
40    bool            exit;
41
42} CCTest_InputParameters;
43
44typedef enum CCTest_Input_Source
45{
46    CCTest_Input_Streamer,
47    CCTest_Input_File,
48    CCTest_Input_QAM,
49    CCTest_Input_VSB,
50    CCTest_Input_Synth
51} CCTest_Input_Source;
52
53typedef struct CCTest_g_sourceParams
54{
55    CCTest_Input_Source inputSrc;
56    uint32_t testNum;
57    uint32_t video_pid;
58    uint32_t audio_pid;
59        uint32_t qam_mode;
60        uint32_t symbolrate;
61    unsigned int frequency;
62} CCTest_g_sourceParams;
63
64/*
65** Display mode constants.
66*/
67typedef enum CCTest_Display_Modes
68{
69    CCTest_Display_480i,
70    CCTest_Display_480p,
71    CCTest_Display_720p,
72    CCTest_Display_1080i,
73    CCTest_Display_Max_Size
74
75}CCTest_Display_Modes;
76
77int initialize(void);
78
79
80void shutdown(void);
81
82void loadFonts(
83    BDCC_WINLIB_Handle g_WindowLib,
84    uint32_t *scaleFactor
85    );
86
87void printHelpInfo( void );
88
89
90int parseCmdStr(
91    const char *pszInputStr
92    );
93
94
95extern BDCC_Error B_Dcc_SendTestString(
96    B_Dcc_Handle hEngine,       
97    const unsigned char *pTestSt,
98    const unsigned int TestStLen
99    );
100
101int QAMTune(void);
102
103
104/*
105** Global variables.
106*/
107
108static CCTest_g_sourceParams g_sourceParams;
109#define TAB_CH                 0x09
110#define SPACE_CH               0x20
111#define NextWhiteSpace(z)  while (*z != TAB_CH || *z != SPACE_CH) z++;
112
113
114/* save a long switch statement */
115static uint32_t gDisplayWidth[4]   = {720, 720, 1280, 1920};
116static uint32_t gDisplayHeight[4]  = {480, 480, 720, 1080};
117static uint32_t gCaptionColumns[4] = {32, 32, 42, 42};
118
119
120/* handles, global for convenience */
121static B_Dcc_Handle g_ccEngine                                  = NULL;
122static BDCC_WINLIB_Handle g_WindowLib          = NULL;
123static bdisplay_t display                                       = NULL;
124static bgraphics_t graphics                                     = NULL;
125static uint32_t g_DisplayMode = CCTest_Display_480i;
126
127static B_SoftGfxHandle g_Gfx                                    = NULL;
128static bsurface_t g_framebuffer1, g_framebuffer2;
129static bwin_engine_t g_bwinEngine              = NULL;
130
131CCTest_InputParameters g_UserParams;
132bool g_bUserInputValid;
133static int display_type;
134static bdecode_t decode;
135static boutput_hdmi_settings hdmisettings;
136static boutput_hdmi_t hdmi;
137static bdisplay_settings settings;
138static btuner_t tuner = NULL;
139static bdecode_window_t window;
140static bstream_t stream;
141static bool bQamTune = false;
142static bool bDccApp = false;
143
144int main( int argc, char *argv[] ) 
145{
146        char chInput[ MAX_INPUT_CHARS ];
147        int bRet = -1;
148
149        BKNI_Memset( &g_sourceParams, 0, sizeof ( CCTest_g_sourceParams ));
150
151        printf("Please set Display HDMI/COMPOSITE (1/0)?\n");
152        memset(chInput, MAX_INPUT_CHARS, 0);
153        ngets( chInput, MAX_INPUT_CHARS );
154        sscanf(chInput, "%d", &bRet);
155        if (bRet) 
156        {
157#ifndef FORMAT_480I
158                g_DisplayMode = CCTest_Display_1080i;
159#else
160                g_DisplayMode = CCTest_Display_480i;
161#endif
162                display_type = HDMI_DISPLAY;
163                printf("HDMI display is set\n");
164        }
165        else
166        {
167                display_type = COMPOSITE_DISPLAY;
168                g_DisplayMode = CCTest_Display_480i;
169                printf("COMPOSITE display is set\n");
170        }
171        if (initialize()) {
172                printf("Fatal Error during initialization\n");
173                return -1;
174        }
175
176        /*
177         ** Paremeters for the thread which handles user input.
178         ** ( medium priority, default stack size, thread name )
179         */
180TESTSTART:
181        printHelpInfo();
182
183        bRet = -1;
184        do
185        {
186                (void)memset(chInput, MAX_INPUT_CHARS, 0);
187                (void)ngets( chInput, MAX_INPUT_CHARS );
188                bRet = parseCmdStr( chInput );
189                if ( -1 == bRet )
190                {
191                        printHelpInfo();                       
192                }
193                else if ( 0 == bRet )
194                {
195                        break;
196                }
197
198        }while(1);
199
200
201        if( CCTest_Input_Synth == g_sourceParams.inputSrc )
202        {
203                /* using compiled in test strings from test_string.h */
204                int firstTest, lastTest;
205                uint32_t periodic;
206
207                if ( bQamTune )
208                {
209                        bQamTune = false;
210                        bdecode_stop(decode);
211                        bstream_close(stream);
212                }
213
214                bDccApp = true;
215
216                firstTest = (g_sourceParams.testNum == 0) ? 1 : g_sourceParams.testNum;
217                lastTest  = (g_sourceParams.testNum == 0) ? BDCC_MAX_TESTS : g_sourceParams.testNum;
218
219                do
220                {
221                        periodic = 5;
222                        printf("TEST %d\n", firstTest);
223
224                        B_Dcc_SendTestString(g_ccEngine, Dtvcc708Stream[firstTest - 1] , Dtvcc708StreamLength[firstTest - 1]);
225
226                        BKNI_Sleep(1000);
227
228                        while(periodic--)
229                        {
230
231                                B_Dcc_Periodic(g_ccEngine);
232                                BKNI_Sleep(1000);
233                        }
234                }
235                while(firstTest++ < lastTest);
236
237                BKNI_Sleep(5000);
238
239        }
240        else if ( CCTest_Input_QAM == g_sourceParams.inputSrc )
241        {
242                QAMTune();
243        }
244
245        goto TESTSTART;
246        return 0;
247
248}
249
250int parseCmdStr( const char * pszInputStr )
251{
252
253        static unsigned char ibuffer[10];
254
255
256        if ( !strcmp(pszInputStr, "-testall" ) )
257        {
258                g_sourceParams.inputSrc = CCTest_Input_Synth;
259                printf("--- Test String Selected\n");
260                g_sourceParams.testNum = 0; /* test all flag */
261        }
262        else if ( !strncmp(pszInputStr, "-test", strlen("-test") ) )
263        {
264                char * pWorker = NULL;
265
266                pWorker = (char *)pszInputStr;
267                pWorker = pWorker+ strlen("-test");
268                g_sourceParams.inputSrc = CCTest_Input_Synth;
269                printf("--- Test String Selected\n");
270
271                sscanf(pWorker, "%d", &g_sourceParams.testNum);
272                if((g_sourceParams.testNum > BDCC_MAX_TESTS) || (!g_sourceParams.testNum))
273                { 
274                        printf("--- You can select tests 1 thru %d\n", BDCC_MAX_TESTS);
275                        return -1;
276                }
277        }
278        else if ( !strncmp(pszInputStr, "-qam", strlen("-qam")) )
279        {
280                g_sourceParams.inputSrc = CCTest_Input_QAM;
281                printf("--- Tune qam channel\n");
282RETRY1:
283                printf("Enter Freq in Mhz\n");
284                gets(ibuffer);
285                sscanf(ibuffer, "%d", &g_sourceParams.frequency);
286                printf("Freq in Mhz %d\n", g_sourceParams.frequency);
287                if (g_sourceParams.frequency > 1000) {
288                        printf("Frequency %d is out of range", g_sourceParams.frequency);
289                        goto RETRY1;
290                }
291                (void)memset(&ibuffer, 0, 10);
292                printf("Enter Video PID in Hex\n");
293                gets(ibuffer);
294                sscanf(ibuffer, "%x", &g_sourceParams.video_pid);
295                printf("Video PID in Hex %x\n",g_sourceParams.video_pid );
296                (void)memset(&ibuffer, 0, 10);
297                printf("Enter Audio PID in Hex\n");
298                gets(ibuffer);
299                sscanf(ibuffer, "%x", &g_sourceParams.audio_pid);               
300                printf("Audio PID in Hex %x\n", g_sourceParams.audio_pid );             
301                (void)memset(&ibuffer, 0, 10);
302                printf("Enter QAM mode 256/64\n");
303                gets(ibuffer);
304                sscanf(ibuffer, "%d", &g_sourceParams.qam_mode);               
305                printf("QAM mode 256/64 %d\n", g_sourceParams.qam_mode );               
306                (void)memset(&ibuffer, 0, 10);
307                printf("Enter Symbol Rate in Decimal (5360537)\n");
308                gets(ibuffer);
309                sscanf(ibuffer, "%d", &g_sourceParams.symbolrate);             
310                printf("Symbol Rate in Decimal %d\n", g_sourceParams.symbolrate );
311                printf("QAM: Freq %d Mhz VPID %x APID %x QAMMode %d Symbolrate %d\n", g_sourceParams.frequency, g_sourceParams.video_pid, g_sourceParams.audio_pid, g_sourceParams.qam_mode, g_sourceParams.symbolrate);       
312        }
313        else
314        {
315                return -1;
316        }
317
318        return 0;
319}
320
321
322static void dcc_hotplug_callback(void *pParam)
323{
324        bdisplay_settings settings;
325
326        bdisplay_get(display, &settings);
327#ifndef FORMAT_480I
328        settings.format = bvideo_format_1080i;
329        settings.aspect_ratio = bdisplay_aspect_ratio_16x9;
330#else
331        settings.format = bvideo_format_ntsc;
332        settings.aspect_ratio = bdisplay_aspect_ratio_4x3;
333#endif
334        //settings.content_mode = bdisplay_content_mode_full;
335        settings.dvi = pParam;
336        bdisplay_set(display, &settings);   
337}
338
339
340
341
342int initialize(void)
343{ 
344
345
346        bwin_engine_settings bwinEngineEettings;
347        BDCC_WINLIB_Interface winlibInterface;
348        B_Dcc_Settings ccEngineSettings ;
349        uint32_t scaleFactor;
350        bsurface_create_settings surfaceCreateSettings;
351        B_SoftGfx_OpenSettings pSettings;
352        bgraphics_settings graphicsSettings;
353        bsurface_memory surfmem1, surfmem2;
354
355
356        bresult rc = bsettop_init(BSETTOP_VERSION);
357
358        if (rc)
359        {
360                printf("bsettop_init failed\n");
361                return 1;
362        }
363
364        display  =  bdisplay_open(B_ID(0));
365        printf("bdisplay_open\n");
366        graphics =  bgraphics_open(B_ID(0),display);
367        printf("bgraphics_open\n");
368
369        if ( display_type == HDMI_DISPLAY )
370        {
371                hdmi= boutput_hdmi_open(B_ID(0));
372                printf("boutput_hdmi_open\n");
373
374                boutput_hdmi_get(hdmi, &hdmisettings);
375                hdmisettings.hdmi_hotplug_callback = dcc_hotplug_callback;
376                hdmisettings.callback_context = hdmi;
377                boutput_hdmi_set(hdmi, &hdmisettings);
378
379                bdisplay_get(display, &settings);
380#ifndef FORMAT_480I
381                settings.format = bvideo_format_1080i;
382                settings.aspect_ratio = bdisplay_aspect_ratio_16x9;
383#else
384                settings.format = bvideo_format_ntsc;
385                settings.aspect_ratio = bdisplay_aspect_ratio_4x3;
386#endif
387                //settings.content_mode = bdisplay_content_mode_full;
388                settings.dvi = hdmi;
389                bdisplay_set(display, &settings);
390        }
391
392        tuner = btuner_open(bconfig->resources.qam.objects[0]);
393
394        decode = bdecode_open(B_ID(0));
395        window = bdecode_window_open(B_ID(0), display);
396
397        B_SoftGfx_GetDefaultOpenSettings(&pSettings);
398        printf("B_SoftGfx_GetDefaultOpenSettings\n");
399        g_Gfx = B_SoftGfx_Open(&pSettings);
400        printf("B_SoftGfx_Open\n");
401
402        /* Initialize bwin, if the customer is using their own window library then they may initialize here */
403        bwin_engine_settings_init(&bwinEngineEettings);
404        g_bwinEngine = bwin_open_engine(&bwinEngineEettings);
405        BDBG_ASSERT(g_bwinEngine);
406
407        /* create the bsettop surfaces to be used as frame buffers */
408        bsurface_create_settings_init(&surfaceCreateSettings, graphics);
409        printf("bsurface_create_settings_init\n");
410
411        if ( display_type == HDMI_DISPLAY )
412        {
413#ifndef FORMAT_480I
414                surfaceCreateSettings.width = 1920;
415#else
416                surfaceCreateSettings.width = 720;
417#endif
418        }       
419        else
420        {
421                surfaceCreateSettings.width = 640;
422        }
423
424        surfaceCreateSettings.height = 1080;
425
426#ifdef ARGB2222_CANVAS
427        surfaceCreateSettings.pixel_format = bgraphics_pixel_format_palette8;
428#else
429        surfaceCreateSettings.pixel_format = bgraphics_pixel_format_a8_r8_g8_b8;
430#endif
431
432
433        /* allocate the double buffer */
434        g_framebuffer1 =  bsurface_create( graphics, (const bsurface_create_settings *)&surfaceCreateSettings );
435        BDBG_ASSERT(g_framebuffer1);
436        g_framebuffer2 =  bsurface_create( graphics, (const bsurface_create_settings *)&surfaceCreateSettings );
437        BDBG_ASSERT(g_framebuffer2);
438
439        bgraphics_get(graphics, &graphicsSettings);
440
441        if ( display_type == HDMI_DISPLAY )
442        {
443                graphicsSettings.enabled = true;
444                graphicsSettings.source_width           =       surfaceCreateSettings.width;
445                graphicsSettings.source_height          =       1080;
446                graphicsSettings.destination_width      =       surfaceCreateSettings.width;
447                graphicsSettings.destination_height     =       1080;
448        }
449        else   
450        {
451                graphicsSettings.enabled = true;
452                graphicsSettings.source_width           =       surfaceCreateSettings.width;
453                graphicsSettings.source_height          =       480;
454                graphicsSettings.destination_width      =       surfaceCreateSettings.width;
455                graphicsSettings.destination_height     =       480;
456        }
457        bgraphics_set(graphics, &graphicsSettings);
458
459
460        bsurface_get_memory(g_framebuffer1, &surfmem1);
461        bsurface_get_memory(g_framebuffer2, &surfmem2);
462        printf("bsurface_get_memory\n");
463
464        /* fill with transparent */
465        BKNI_Memset(surfmem1.buffer, 0x00, surfaceCreateSettings.height * surfmem1.pitch);
466        BKNI_Memset(surfmem2.buffer, 0x00, surfaceCreateSettings.height * surfmem2.pitch);
467
468
469#ifdef ARGB2222_CANVAS
470        BDBG_ASSERT(surfmem1.numPaletteEntries == 256);
471
472        /* if either the canvas or the source surfaces are ARGB2222 then fill the palette */
473        for( i=0 ; i< 256; i++)
474        {
475                surfmem1.palette[i] = surfmem2.palette[i] = ARGB_2222_TO_ARGB_8888(i);
476        }
477#endif
478
479
480        bsurface_sync(g_framebuffer1);
481        bsurface_sync(g_framebuffer2);
482
483        printf("framebuffer1 %p, %dx%d, pitch %d\n\n", surfmem1.buffer,
484                        surfaceCreateSettings.width, surfaceCreateSettings.height, surfmem1.pitch);
485        printf("framebuffer2 %p, %dx%d, pitch %d\n\n", surfmem2.buffer,
486                        surfaceCreateSettings.width, surfaceCreateSettings.height, surfmem2.pitch);
487
488        /*
489         ** Initialize the Closed Caption window library.
490         ** This library interfaces to the customer window environment
491         */
492        if( BDCC_WINLIB_Open(  &g_WindowLib, 
493                                g_Gfx, 
494                                display, 
495                                g_bwinEngine, 
496                                g_framebuffer1, 
497                                g_framebuffer2, 
498                                surfaceCreateSettings.width, 
499                                surfaceCreateSettings.height,
500                                NULL
501                                ))
502        {
503                printf("Winlib Returned with an Error");
504                goto error ;
505        }
506
507        /* get the winlib function table */
508        BDCC_WINLIB_GetInterface( &winlibInterface );
509        loadFonts( g_WindowLib, &scaleFactor );
510
511        if( B_Dcc_Open( &g_ccEngine, g_WindowLib, &winlibInterface ) )
512        {
513                printf("B_Dcc_Open  Returned with an Error\n");
514                goto error ;
515        }
516        printf("B_Dcc_Open Success\n");
517
518        B_Dcc_GetDefaultSettings( &ccEngineSettings );
519        printf("B_Dcc_GetDefaultSettings Success\n");
520        ccEngineSettings.iSafeTitleX = gDisplayWidth[g_DisplayMode] / 10; /* 20% of width / 2 according to CEB-10 */;
521        ccEngineSettings.iSafeTitleY = gDisplayHeight[g_DisplayMode] / 10; /* 20% of height / 2 according to CEB-10 */;
522        ccEngineSettings.ScaleFactor = scaleFactor;
523
524        ccEngineSettings.Columns     = gCaptionColumns[g_DisplayMode]; /* 32 for 4:3 42 for 16:9 */;
525        B_Dcc_SetSettings( g_ccEngine, &ccEngineSettings );
526        printf("B_Dcc_SetSettings Success\n");
527
528        /* let's start with 708 caption service 1 */
529        g_UserParams.ccMode =  B_Dcc_Type_e708;
530        g_UserParams.ccService = 1;
531        g_UserParams.dispOn = true;
532
533        if( B_Dcc_Init( g_ccEngine, g_UserParams.ccService, g_UserParams.ccMode ) )
534        {
535                printf("B_Dcc_Init  Returned with an Error\n");
536                goto error ;
537        }
538        printf("B_Dcc_Init Success\n");
539
540        return 0;
541error:
542        return 1;
543
544
545}
546
547
548void shutdown(void)
549{
550        if ( CCTest_Input_Synth == g_sourceParams.inputSrc )
551        {
552                if( g_ccEngine) B_Dcc_Close( g_ccEngine );
553                if( g_WindowLib ) BDCC_WINLIB_UnloadFonts( g_WindowLib );
554                if( g_WindowLib ) BDCC_WINLIB_Close( g_WindowLib );
555
556                bsurface_destroy( g_framebuffer1 );
557                bsurface_destroy( g_framebuffer2 );
558
559                if( g_bwinEngine )bwin_close_engine( g_bwinEngine );
560
561                if( g_Gfx ) B_SoftGfx_Close(g_Gfx);
562                if( display ) bdisplay_close(display);
563        }
564        else if ( CCTest_Input_QAM == g_sourceParams.inputSrc )
565        {
566                bdecode_close(decode);
567                bdisplay_close(display);       
568
569        }
570        bsettop_uninit();
571
572}
573
574
575/*
576 ** Illustrates how to load fonts and associate them with a specific pen "font style".
577 */
578void loadFonts( BDCC_WINLIB_Handle g_WindowLib, uint32_t *scaleFactor )
579{
580        int i, j, iErr;
581        BDCC_FONT_DESCRIPTOR *pFont;
582
583        BDCC_FONT_DESCRIPTOR standardFonts[ BDCC_FontStyle_Max_Value ][BDCC_PenSize_Max_Size];
584        BDCC_FONT_DESCRIPTOR italicsFonts [ BDCC_FontStyle_Max_Value ][BDCC_PenSize_Max_Size];
585
586
587#ifdef FREETYPE_SUPPORT
588
589        char *pszFontFilenames[BDCC_FontStyle_Max_Value] =
590        {
591                "cc_fonts/cinecavB_type_03.ttf", /* BDCC_FontStyle_Default    */
592                "cc_fonts/cinecavB_type_03.ttf",  /* BDCC_FontStyle_MonoSerifs */
593                "cc_fonts/cinecavB_serif_02.ttf" ,/* BDCC_FontStyle_PropSerifs */
594                "cc_fonts/cinecavB_mono_03.ttf",  /* BDCC_FontStyle_Mono       */
595                "cc_fonts/cinecavB_sans_02.ttf",  /* BDCC_FontStyle_Prop       */
596                "cc_fonts/cinecavB_casual_02.ttf",/* BDCC_FontStyle_Casual     */
597                "cc_fonts/cinecavB_script_02.ttf",/* BDCC_FontStyle_Cursive    */
598                "cc_fonts/cinecavB_sc_02.ttf"     /* BDCC_FontStyle_SmallCaps  */
599        };
600
601        int iFontSize[BDCC_FontStyle_Max_Value][CCTest_Display_Max_Size][BDCC_PenSize_Max_Size] =
602        {
603                /* 480i S M L      480p S M L      720p S M L     1080i S M L */
604
605                {{ 14, 18, 22 }, { 14, 18, 22 }, { 21, 28, 33 }, { 32, 41, 49 }}, /* BDCC_FontStyle_Default */
606                {{ 14, 18, 22 }, { 14, 18, 22 }, { 21, 28, 33 }, { 32, 41, 49 }}, /* BDCC_FontStyle_MonoSerifs */
607                {{ 12, 15, 19 }, { 12, 15, 19 }, { 18, 23, 29 }, { 28, 35, 44 }}, /* BDCC_FontStyle_PropSerifs */
608                {{ 14, 18, 22 }, { 14, 18, 22 }, { 21, 29, 34 }, { 34, 43, 52 }}, /* BDCC_FontStyle_Mono       */
609                {{ 12, 15, 19 }, { 12, 15, 19 }, { 18, 23, 29 }, { 28, 35, 44 }}, /* BDCC_FontStyle_Prop       */
610                {{ 13, 16, 20 }, { 13, 16, 20 }, { 19, 24, 30 }, { 30, 36, 45 }}, /* BDCC_FontStyle_Casual     */
611                {{ 12, 14, 18 }, { 12, 14, 18 }, { 16, 18, 25 }, { 25, 28, 38 }}, /* BDCC_FontStyle_Cursive    */
612                {{ 13, 15, 19 }, { 13, 15, 19 }, { 18, 23, 30 }, { 28, 35, 45 }}  /* BDCC_FontStyle_SmallCaps  */
613        };
614
615        /* we do not need to scale these fonts using the m2mc since the freetype engine can do it */
616        *scaleFactor = 100 ;  /* scale factor in hundredths i.e. scale factor is 1.0 */
617
618        printf("USING TRUE-TYPE FONTS\n");
619
620
621#else
622
623        /* The following is a trade-off for pre-rendered fonts.
624         **
625         ** We can use a base set of 14 pre-rendered fonts (7 normal and 7 italic)
626         ** and generate the rest using the scalers but the scaler will reduce the font's quality
627         ** or we can use a full set of 126 fonts to cover all of the font permutations with maximum quality
628         */
629#ifdef SCALE_480I_FONTS
630
631        char *pszStandardFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
632        {
633                /* non-italic */
634                /* 480i S M L                                                                          480p S M L                                                           720p S M L                                   1080i S M L */
635
636                {{ "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
637                {{ "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
638                {{ "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }, { "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }, { "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }, { "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
639                {{ "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }, { "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }, { "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }, { "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
640                {{ "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }, { "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }, { "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }, { "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
641                {{ "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }, { "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }, { "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }, { "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
642                {{ "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }, { "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }, { "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }, { "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
643                {{ "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }, { "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }, { "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }, { "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
644        };
645
646
647        char *pszItalicFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
648        {
649                /* italic */
650
651                {{ "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
652                {{ "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
653                {{ "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }, { "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }, { "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }, { "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
654                {{ "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }, { "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }, { "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }, { "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
655                {{ "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }, { "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }, { "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }, { "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
656                {{ "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }, { "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }, { "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }, { "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
657                {{ "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }, { "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }, { "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }, { "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
658                {{ "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }, { "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }, { "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }, { "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
659        };
660
661        /* we need to scale these fonts using the m2mc since we have specified the 480i/p set for all of the display formats */
662
663        uint32_t display_ratios[4] = {100,100,150,225};
664        *scaleFactor = display_ratios[g_DisplayMode] ;  /* scale factor in hundredths i.e. scale factor is 1.0 */
665
666        printf("SCALING 480i FONTS\n");
667
668#else
669
670#ifdef SCALE_720P_FONTS
671        char *pszStandardFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
672        {
673                /* non-italic */
674                /* 480i S M L                                                                          480p S M L                                                           720p S M L                                   1080i S M L */
675
676                {{ "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
677                {{ "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
678                {{ "cc_fonts/cinecavB18_serif.bwin_font",  "cc_fonts/cinecavB23_serif.bwin_font",  "cc_fonts/cinecavB29_serif.bwin_font"  }, { "cc_fonts/cinecavB18_serif.bwin_font",  "cc_fonts/cinecavB23_serif.bwin_font",  "cc_fonts/cinecavB29_serif.bwin_font"  }, { "cc_fonts/cinecavB18_serif.bwin_font",  "cc_fonts/cinecavB23_serif.bwin_font",  "cc_fonts/cinecavB29_serif.bwin_font"  }, { "cc_fonts/cinecavB18_serif.bwin_font",  "cc_fonts/cinecavB23_serif.bwin_font",  "cc_fonts/cinecavB29_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
679                {{ "cc_fonts/cinecavB21_mono.bwin_font",   "cc_fonts/cinecavB29_mono.bwin_font",   "cc_fonts/cinecavB34_mono.bwin_font"   }, { "cc_fonts/cinecavB21_mono.bwin_font",   "cc_fonts/cinecavB29_mono.bwin_font",   "cc_fonts/cinecavB34_mono.bwin_font"   }, { "cc_fonts/cinecavB21_mono.bwin_font",   "cc_fonts/cinecavB29_mono.bwin_font",   "cc_fonts/cinecavB34_mono.bwin_font"   }, { "cc_fonts/cinecavB21_mono.bwin_font",   "cc_fonts/cinecavB29_mono.bwin_font",   "cc_fonts/cinecavB34_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
680                {{ "cc_fonts/cinecavB18_sans.bwin_font",   "cc_fonts/cinecavB23_sans.bwin_font",   "cc_fonts/cinecavB29_sans.bwin_font"   }, { "cc_fonts/cinecavB18_sans.bwin_font",   "cc_fonts/cinecavB23_sans.bwin_font",   "cc_fonts/cinecavB29_sans.bwin_font"   }, { "cc_fonts/cinecavB18_sans.bwin_font",   "cc_fonts/cinecavB23_sans.bwin_font",   "cc_fonts/cinecavB29_sans.bwin_font"   }, { "cc_fonts/cinecavB18_sans.bwin_font",   "cc_fonts/cinecavB23_sans.bwin_font",   "cc_fonts/cinecavB29_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
681                {{ "cc_fonts/cinecavB19_casual.bwin_font", "cc_fonts/cinecavB24_casual.bwin_font", "cc_fonts/cinecavB30_casual.bwin_font" }, { "cc_fonts/cinecavB19_casual.bwin_font", "cc_fonts/cinecavB24_casual.bwin_font", "cc_fonts/cinecavB30_casual.bwin_font" }, { "cc_fonts/cinecavB19_casual.bwin_font", "cc_fonts/cinecavB24_casual.bwin_font", "cc_fonts/cinecavB30_casual.bwin_font" }, { "cc_fonts/cinecavB19_casual.bwin_font", "cc_fonts/cinecavB24_casual.bwin_font", "cc_fonts/cinecavB30_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
682                {{ "cc_fonts/cinecavB16_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font", "cc_fonts/cinecavB25_script.bwin_font" }, { "cc_fonts/cinecavB16_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font", "cc_fonts/cinecavB25_script.bwin_font" }, { "cc_fonts/cinecavB16_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font", "cc_fonts/cinecavB25_script.bwin_font" }, { "cc_fonts/cinecavB16_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font", "cc_fonts/cinecavB25_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
683                {{ "cc_fonts/cinecavB18_sc.bwin_font",     "cc_fonts/cinecavB23_sc.bwin_font",     "cc_fonts/cinecavB30_sc.bwin_font"     }, { "cc_fonts/cinecavB18_sc.bwin_font",     "cc_fonts/cinecavB23_sc.bwin_font",     "cc_fonts/cinecavB30_sc.bwin_font"     }, { "cc_fonts/cinecavB18_sc.bwin_font",     "cc_fonts/cinecavB23_sc.bwin_font",     "cc_fonts/cinecavB30_sc.bwin_font"     }, { "cc_fonts/cinecavB18_sc.bwin_font",     "cc_fonts/cinecavB23_sc.bwin_font",     "cc_fonts/cinecavB30_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
684        };
685
686
687        char *pszItalicFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
688        {
689                /* italic */
690
691                {{ "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
692                {{ "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
693                {{ "cc_fonts/cinecavB18i_serif.bwin_font",  "cc_fonts/cinecavB23i_serif.bwin_font",  "cc_fonts/cinecavB29i_serif.bwin_font"  }, { "cc_fonts/cinecavB18i_serif.bwin_font",  "cc_fonts/cinecavB23i_serif.bwin_font",  "cc_fonts/cinecavB29i_serif.bwin_font"  }, { "cc_fonts/cinecavB18i_serif.bwin_font",  "cc_fonts/cinecavB23i_serif.bwin_font",  "cc_fonts/cinecavB29i_serif.bwin_font"  }, { "cc_fonts/cinecavB18i_serif.bwin_font",  "cc_fonts/cinecavB23i_serif.bwin_font",  "cc_fonts/cinecavB29i_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
694                {{ "cc_fonts/cinecavB21i_mono.bwin_font",   "cc_fonts/cinecavB29i_mono.bwin_font",   "cc_fonts/cinecavB34i_mono.bwin_font"   }, { "cc_fonts/cinecavB21i_mono.bwin_font",   "cc_fonts/cinecavB29i_mono.bwin_font",   "cc_fonts/cinecavB34i_mono.bwin_font"   }, { "cc_fonts/cinecavB21i_mono.bwin_font",   "cc_fonts/cinecavB29i_mono.bwin_font",   "cc_fonts/cinecavB34i_mono.bwin_font"   }, { "cc_fonts/cinecavB21i_mono.bwin_font",   "cc_fonts/cinecavB29i_mono.bwin_font",   "cc_fonts/cinecavB34i_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
695                {{ "cc_fonts/cinecavB18i_sans.bwin_font",   "cc_fonts/cinecavB23i_sans.bwin_font",   "cc_fonts/cinecavB29i_sans.bwin_font"   }, { "cc_fonts/cinecavB18i_sans.bwin_font",   "cc_fonts/cinecavB23i_sans.bwin_font",   "cc_fonts/cinecavB29i_sans.bwin_font"   }, { "cc_fonts/cinecavB18i_sans.bwin_font",   "cc_fonts/cinecavB23i_sans.bwin_font",   "cc_fonts/cinecavB29i_sans.bwin_font"   }, { "cc_fonts/cinecavB18i_sans.bwin_font",   "cc_fonts/cinecavB23i_sans.bwin_font",   "cc_fonts/cinecavB29i_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
696                {{ "cc_fonts/cinecavB19i_casual.bwin_font", "cc_fonts/cinecavB24i_casual.bwin_font", "cc_fonts/cinecavB30i_casual.bwin_font" }, { "cc_fonts/cinecavB19i_casual.bwin_font", "cc_fonts/cinecavB24i_casual.bwin_font", "cc_fonts/cinecavB30i_casual.bwin_font" }, { "cc_fonts/cinecavB19i_casual.bwin_font", "cc_fonts/cinecavB24i_casual.bwin_font", "cc_fonts/cinecavB30i_casual.bwin_font" }, { "cc_fonts/cinecavB19i_casual.bwin_font", "cc_fonts/cinecavB24i_casual.bwin_font", "cc_fonts/cinecavB30i_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
697                {{ "cc_fonts/cinecavB16i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font", "cc_fonts/cinecavB25i_script.bwin_font" }, { "cc_fonts/cinecavB16i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font", "cc_fonts/cinecavB25i_script.bwin_font" }, { "cc_fonts/cinecavB16i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font", "cc_fonts/cinecavB25i_script.bwin_font" }, { "cc_fonts/cinecavB16i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font", "cc_fonts/cinecavB25i_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
698                {{ "cc_fonts/cinecavB18i_sc.bwin_font",     "cc_fonts/cinecavB23i_sc.bwin_font",     "cc_fonts/cinecavB30i_sc.bwin_font"     }, { "cc_fonts/cinecavB18i_sc.bwin_font",     "cc_fonts/cinecavB23i_sc.bwin_font",     "cc_fonts/cinecavB30i_sc.bwin_font"     }, { "cc_fonts/cinecavB18i_sc.bwin_font",     "cc_fonts/cinecavB23i_sc.bwin_font",     "cc_fonts/cinecavB30i_sc.bwin_font"     }, { "cc_fonts/cinecavB18i_sc.bwin_font",     "cc_fonts/cinecavB23i_sc.bwin_font",     "cc_fonts/cinecavB30i_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
699        };
700
701        /* we need to scale these fonts using the m2mc since we have specified the 720p set for all of the display formats */
702
703        uint32_t display_ratios[4] = {66,66,100,150};
704        *scaleFactor = display_ratios[g_DisplayMode] ;  /* scale factor in hundredths i.e. scale factor is 1.0 */
705
706        printf("SCALING 720P FONTS\n");
707
708#else /*MAX_RENDERED_FONTS*/
709        char *pszStandardFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
710        {
711                /* non-italic */
712                /* 480i S M L                                                                          480p S M L                                                           720p S M L                                   1080i S M L */
713
714                {{ "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB32_type.bwin_font",   "cc_fonts/cinecavB41_type.bwin_font",   "cc_fonts/cinecavB49_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
715                {{ "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB14_type.bwin_font",   "cc_fonts/cinecavB18_type.bwin_font",   "cc_fonts/cinecavB22_type.bwin_font"   }, { "cc_fonts/cinecavB21_type.bwin_font",   "cc_fonts/cinecavB28_type.bwin_font",   "cc_fonts/cinecavB33_type.bwin_font"   }, { "cc_fonts/cinecavB32_type.bwin_font",   "cc_fonts/cinecavB41_type.bwin_font",   "cc_fonts/cinecavB49_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
716                {{ "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }, { "cc_fonts/cinecavB12_serif.bwin_font",  "cc_fonts/cinecavB15_serif.bwin_font",  "cc_fonts/cinecavB19_serif.bwin_font"  }, { "cc_fonts/cinecavB18_serif.bwin_font",  "cc_fonts/cinecavB23_serif.bwin_font",  "cc_fonts/cinecavB29_serif.bwin_font"  }, { "cc_fonts/cinecavB28_serif.bwin_font",  "cc_fonts/cinecavB35_serif.bwin_font",  "cc_fonts/cinecavB44_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
717                {{ "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }, { "cc_fonts/cinecavB14_mono.bwin_font",   "cc_fonts/cinecavB18_mono.bwin_font",   "cc_fonts/cinecavB22_mono.bwin_font"   }, { "cc_fonts/cinecavB21_mono.bwin_font",   "cc_fonts/cinecavB29_mono.bwin_font",   "cc_fonts/cinecavB34_mono.bwin_font"   }, { "cc_fonts/cinecavB34_mono.bwin_font",   "cc_fonts/cinecavB43_mono.bwin_font",   "cc_fonts/cinecavB52_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
718                {{ "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }, { "cc_fonts/cinecavB12_sans.bwin_font",   "cc_fonts/cinecavB15_sans.bwin_font",   "cc_fonts/cinecavB19_sans.bwin_font"   }, { "cc_fonts/cinecavB18_sans.bwin_font",   "cc_fonts/cinecavB23_sans.bwin_font",   "cc_fonts/cinecavB29_sans.bwin_font"   }, { "cc_fonts/cinecavB28_sans.bwin_font",   "cc_fonts/cinecavB35_sans.bwin_font",   "cc_fonts/cinecavB44_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
719                {{ "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }, { "cc_fonts/cinecavB13_casual.bwin_font", "cc_fonts/cinecavB16_casual.bwin_font", "cc_fonts/cinecavB20_casual.bwin_font" }, { "cc_fonts/cinecavB19_casual.bwin_font", "cc_fonts/cinecavB24_casual.bwin_font", "cc_fonts/cinecavB30_casual.bwin_font" }, { "cc_fonts/cinecavB30_casual.bwin_font", "cc_fonts/cinecavB36_casual.bwin_font", "cc_fonts/cinecavB45_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
720                {{ "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }, { "cc_fonts/cinecavB12_script.bwin_font", "cc_fonts/cinecavB14_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font" }, { "cc_fonts/cinecavB16_script.bwin_font", "cc_fonts/cinecavB18_script.bwin_font", "cc_fonts/cinecavB25_script.bwin_font" }, { "cc_fonts/cinecavB25_script.bwin_font", "cc_fonts/cinecavB28_script.bwin_font", "cc_fonts/cinecavB38_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
721                {{ "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }, { "cc_fonts/cinecavB13_sc.bwin_font",     "cc_fonts/cinecavB15_sc.bwin_font",     "cc_fonts/cinecavB19_sc.bwin_font"     }, { "cc_fonts/cinecavB18_sc.bwin_font",     "cc_fonts/cinecavB23_sc.bwin_font",     "cc_fonts/cinecavB30_sc.bwin_font"     }, { "cc_fonts/cinecavB28_sc.bwin_font",     "cc_fonts/cinecavB35_sc.bwin_font",     "cc_fonts/cinecavB45_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
722        };
723
724
725        char *pszItalicFontFilenames[BDCC_FontStyle_Max_Value][ CCTest_Display_Max_Size ][ BDCC_PenSize_Max_Size ]= 
726        {
727                /* italic */
728
729                {{ "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB32i_type.bwin_font",   "cc_fonts/cinecavB41i_type.bwin_font",   "cc_fonts/cinecavB49i_type.bwin_font"   }}, /* BDCC_FontStyle_Default */
730                {{ "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB14i_type.bwin_font",   "cc_fonts/cinecavB18i_type.bwin_font",   "cc_fonts/cinecavB22i_type.bwin_font"   }, { "cc_fonts/cinecavB21i_type.bwin_font",   "cc_fonts/cinecavB28i_type.bwin_font",   "cc_fonts/cinecavB33i_type.bwin_font"   }, { "cc_fonts/cinecavB32i_type.bwin_font",   "cc_fonts/cinecavB41i_type.bwin_font",   "cc_fonts/cinecavB49i_type.bwin_font"   }}, /* BDCC_FontStyle_MonoSerifs */
731                {{ "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }, { "cc_fonts/cinecavB12i_serif.bwin_font",  "cc_fonts/cinecavB15i_serif.bwin_font",  "cc_fonts/cinecavB19i_serif.bwin_font"  }, { "cc_fonts/cinecavB18i_serif.bwin_font",  "cc_fonts/cinecavB23i_serif.bwin_font",  "cc_fonts/cinecavB29i_serif.bwin_font"  }, { "cc_fonts/cinecavB28i_serif.bwin_font",  "cc_fonts/cinecavB35i_serif.bwin_font",  "cc_fonts/cinecavB44i_serif.bwin_font"  }}, /* BDCC_FontStyle_PropSerifs */
732                {{ "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }, { "cc_fonts/cinecavB14i_mono.bwin_font",   "cc_fonts/cinecavB18i_mono.bwin_font",   "cc_fonts/cinecavB22i_mono.bwin_font"   }, { "cc_fonts/cinecavB21i_mono.bwin_font",   "cc_fonts/cinecavB29i_mono.bwin_font",   "cc_fonts/cinecavB34i_mono.bwin_font"   }, { "cc_fonts/cinecavB34i_mono.bwin_font",   "cc_fonts/cinecavB43i_mono.bwin_font",   "cc_fonts/cinecavB52i_mono.bwin_font"   }}, /* BDCC_FontStyle_Mono  */
733                {{ "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }, { "cc_fonts/cinecavB12i_sans.bwin_font",   "cc_fonts/cinecavB15i_sans.bwin_font",   "cc_fonts/cinecavB19i_sans.bwin_font"   }, { "cc_fonts/cinecavB18i_sans.bwin_font",   "cc_fonts/cinecavB23i_sans.bwin_font",   "cc_fonts/cinecavB29i_sans.bwin_font"   }, { "cc_fonts/cinecavB28i_sans.bwin_font",   "cc_fonts/cinecavB35i_sans.bwin_font",   "cc_fonts/cinecavB44i_sans.bwin_font"   }}, /* BDCC_FontStyle_Prop  */
734                {{ "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }, { "cc_fonts/cinecavB13i_casual.bwin_font", "cc_fonts/cinecavB16i_casual.bwin_font", "cc_fonts/cinecavB20i_casual.bwin_font" }, { "cc_fonts/cinecavB19i_casual.bwin_font", "cc_fonts/cinecavB24i_casual.bwin_font", "cc_fonts/cinecavB30i_casual.bwin_font" }, { "cc_fonts/cinecavB30i_casual.bwin_font", "cc_fonts/cinecavB36i_casual.bwin_font", "cc_fonts/cinecavB45i_casual.bwin_font" }}, /* BDCC_FontStyle_Casual  */
735                {{ "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }, { "cc_fonts/cinecavB12i_script.bwin_font", "cc_fonts/cinecavB14i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font" }, { "cc_fonts/cinecavB16i_script.bwin_font", "cc_fonts/cinecavB18i_script.bwin_font", "cc_fonts/cinecavB25i_script.bwin_font" }, { "cc_fonts/cinecavB25i_script.bwin_font", "cc_fonts/cinecavB28i_script.bwin_font", "cc_fonts/cinecavB38i_script.bwin_font" }}, /* BDCC_FontStyle_Cursive */
736                {{ "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }, { "cc_fonts/cinecavB13i_sc.bwin_font",     "cc_fonts/cinecavB15i_sc.bwin_font",     "cc_fonts/cinecavB19i_sc.bwin_font"     }, { "cc_fonts/cinecavB18i_sc.bwin_font",     "cc_fonts/cinecavB23i_sc.bwin_font",     "cc_fonts/cinecavB30i_sc.bwin_font"     }, { "cc_fonts/cinecavB28i_sc.bwin_font",     "cc_fonts/cinecavB35i_sc.bwin_font",     "cc_fonts/cinecavB45i_sc.bwin_font"     }}  /* BDCC_FontStyle_SmallCaps */
737        };
738
739        /* we do not need to scale these fonts using the m2mc since we have pre-rendered a complete set of 126!! */
740        *scaleFactor = 100 ;  /* scale factor in hundredths i.e. scale factor is 1.0 */
741
742        printf("USING MAX FONTS\n");
743
744#endif
745
746#endif
747
748#endif
749
750        BKNI_Memset( standardFonts, 0, ( sizeof( BDCC_FONT_DESCRIPTOR ) * BDCC_FontStyle_Max_Value ));
751        BKNI_Memset( italicsFonts , 0, ( sizeof( BDCC_FONT_DESCRIPTOR ) * BDCC_FontStyle_Max_Value ));
752
753#ifdef FREETYPE_SUPPORT
754
755        for ( i = 0; i < BDCC_FontStyle_Max_Value; i++){
756                for ( j = 0; j < BDCC_PenSize_Max_Size; j++){
757
758                        standardFonts[ i ][ j ].pszFontFile = pszFontFilenames[ i ];
759                        standardFonts[ i ][ j ].iFontSize = iFontSize[ i ][ g_DisplayMode ][ j ];
760
761                        italicsFonts[ i ][ j ].pszFontFile = pszFontFilenames[ i ];
762                        italicsFonts[ i ][ j ].iFontSize = iFontSize[ i ][ g_DisplayMode ][ j ];
763                }
764        }
765
766#else
767
768        for ( i = 0; i < BDCC_FontStyle_Max_Value; i++){
769                for ( j = 0; j < BDCC_PenSize_Max_Size; j++){
770
771                        standardFonts[ i ][ j ].pszFontFile = pszStandardFontFilenames[ i ][ g_DisplayMode ][ j ];
772                        standardFonts[ i ][ j ].iFontSize = -1;
773
774                        italicsFonts[ i ][ j ].pszFontFile = pszItalicFontFilenames[ i ][ g_DisplayMode ][ j ];
775                        italicsFonts[ i ][ j ].iFontSize = -1;
776                }
777        }
778
779#endif
780
781        printf("\nCCTest_P_LoadFonts():\n" );
782
783        /*
784         ** First load the fonts.
785         */
786        for ( i=0; i < BDCC_FontStyle_Max_Value; i++ )
787        {
788                for(j=0; j < BDCC_PenSize_Max_Size; j++)
789                {
790                        pFont = &standardFonts[ i ][ j ];
791
792                        if(pFont->pszFontFile) /* need not specify all fonts, minimum is the DEFAULT font */
793                        {
794                                iErr = BDCC_WINLIB_LoadFont(
795                                                g_WindowLib,
796                                                pFont->pszFontFile,
797                                                pFont->iFontSize,
798                                                i,
799                                                j,
800                                                BDCC_PenStyle_Standard
801                                                );
802                                printf("%s %s\n", iErr ? "\tFAILED to load font!!!:" : "\tloaded font:", pFont->pszFontFile );
803                        }
804
805                        pFont = &italicsFonts[ i ][ j ];
806
807                        if(pFont->pszFontFile) /* need not specify all fonts, minimum is the DEFAULT font */
808                        {
809                                iErr = BDCC_WINLIB_LoadFont(
810                                                g_WindowLib,
811                                                pFont->pszFontFile,
812                                                pFont->iFontSize,
813                                                i,
814                                                j,
815                                                BDCC_PenStyle_Italics
816                                                );
817
818                                printf("%s %s\n", iErr ? "\tFAILED to load font!!!:" : "\tloaded font:", pFont->pszFontFile );
819                        }
820
821
822                }
823        }
824
825        printf("\n");
826
827}   /* end of CCTest_P_LoadFonts() */
828
829
830void printHelpInfo( void )
831{
832        printf("#############################################################\n");
833        printf("#############################################################\n");             
834        printf("TEST OPTIONS\n");
835        printf("-qam     : QAM tune\n");
836        printf("-test n  : selects test (1 - %d) from 708_test_string.h\n", BDCC_MAX_TESTS);
837        printf("-testall : runs all tests from 708_test_string.h\n");
838        return;
839}
840
841
842/* end of file */
843
844
845
846int QAMTune(void) {
847        btuner_qam_params qam;
848        bstream_mpeg mpeg;
849        bband_t band;
850
851        if (!tuner) {
852                printf("Not initialized yet\n");
853                return 0;
854        }
855
856        bQamTune = true;
857
858        if ( bDccApp )
859        {
860                bDccApp = false;
861                B_Dcc_SendTestString(g_ccEngine, ClearDccWindow[0], ClearDccWindowLength[0]);
862                BKNI_Sleep(500);
863        }
864
865        btuner_qam_params_init(&qam, tuner);
866        qam.symbol_rate = g_sourceParams.symbolrate;
867        qam.mode = g_sourceParams.qam_mode;
868
869        bstream_mpeg_init(&mpeg);
870        mpeg.video[0].pid = g_sourceParams.video_pid;
871        mpeg.audio[0].pid = g_sourceParams.audio_pid;
872        mpeg.audio[0].format = baudio_format_ac3;
873        mpeg.pcr_pid = g_sourceParams.video_pid;
874
875        printf("Decoding from a QAM demod...\n");
876        band = btuner_tune_qam(tuner, g_sourceParams.frequency * 1000000, &qam);
877
878        if (!band) goto error;
879
880        stream = bstream_open(band, &mpeg);
881        if (!stream) goto error;
882
883        if (bdecode_start(decode, stream, window))
884                goto error;
885
886        return 0;
887error:
888        return 1;
889}
890
Note: See TracBrowser for help on using the repository browser.