diff --git a/XilinxProcessorIPLib/drivers/osd/examples/example.c b/XilinxProcessorIPLib/drivers/osd/examples/example.c deleted file mode 100755 index a8e51444..00000000 --- a/XilinxProcessorIPLib/drivers/osd/examples/example.c +++ /dev/null @@ -1,460 +0,0 @@ -/****************************************************************************** -* -* Copyright (C) 2009 - 2014 Xilinx, Inc. All rights reserved. -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* Use of the Software is limited solely to applications: -* (a) running on a Xilinx device, or -* (b) that interact with a Xilinx device through a bus or interconnect. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* XILINX CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF -* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -* SOFTWARE. -* -* Except as contained in this notice, the name of the Xilinx shall not be used -* in advertising or otherwise to promote the sale, use or other dealings in -* this Software without prior written authorization from Xilinx. -* -******************************************************************************/ -/*****************************************************************************/ -/** - * - * @file example.c - * - * This file demonstrates how to use Xilinx Video On-Screen-Display (OSD) - * driver on Xilinx MVI OSD device. - * - * This code makes the following assumptions: - * - * - The OSD device contains at least 2 layers - * - Layer 0 has type GPU - * - Each layer has the following configuration during the hardware build - * - Font width = 8 - * - Font height = 8 - * - Font bits per pixel = 1 - * - Number of the font characters = 128 - * - Caching is disabled. Flushing and Invalidation operations for data buffer - * need to be added to this code if it is not the case. - * - *
- * MODIFICATION HISTORY: - * - * Ver Who Date Changes - * ----- ---- -------- ------------------------------------------------------- - * 1.00a xd 05/12/09 First release - *- * - * **************************************************************************** - */ - -#include "xosd.h" -#include "xparameters.h" - -/* - * Device related constants. Defined in xparameters.h - */ -#define OSD_DEVICE_ID XPAR_OSD_0_DEVICE_ID - -/* - * OSD Device related data structures - */ -XOSD Osd; /* OSD Device driver instance */ -XOSD_Config *OsdCfgPtr; /* OSD device configuration pointer */ - -/* - * Color table definition - */ -u32 ColorData[16] = { - 0x00000000, 0xa0a25f58, 0xa08080ff, 0xa0808010, - 0xa0ef5a51, 0x00000000, 0xa0465289, 0x00000000, - 0xa065ba6b, 0x00000000, 0xa09017c5, 0xa0a9c860, - 0xa0bc3198, 0xa010a5a9, 0xa0808080, 0xa0ada1ab -}; - -/* - * Text table definition - */ -char __attribute__ ((aligned (4))) TextData[8][32] = { - "String #1", - "String #2", - "String #3", - "String #4", - "String #5", - "String #6", - "String #7", - "String #8" -}; - -/* - * Font definition - */ -unsigned char __attribute__ ((aligned (4))) Font[128][8] = { - {0x00, 0x36, 0x7F, 0x7F, 0x3E, 0x1C, 0x08, 0x00}, // NULL - {0x18, 0x18, 0x18, 0x1F, 0x1F, 0x18, 0x18, 0x18}, - {0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03}, - {0x18, 0x18, 0x18, 0xF8, 0xF8, 0x00, 0x00, 0x00}, - {0x18, 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, 0x18}, - {0x00, 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0x18}, - {0x03, 0x07, 0x0E, 0x1C, 0x38, 0x70, 0xE0, 0xC0}, - {0xC0, 0xE0, 0x70, 0x38, 0x1C, 0x0E, 0x07, 0x03}, - {0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF}, - {0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x0F}, - {0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF}, - {0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00}, - {0xF0, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00}, - {0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF}, - {0x00, 0x00, 0x00, 0x00, 0xF0, 0xF0, 0xF0, 0xF0}, - {0x00, 0x1C, 0x1C, 0x77, 0x77, 0x08, 0x1C, 0x00}, - {0x00, 0x00, 0x00, 0x1F, 0x1F, 0x18, 0x18, 0x18}, - {0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00}, - {0x18, 0x18, 0x18, 0xFF, 0xFF, 0x18, 0x18, 0x18}, - {0x00, 0x00, 0x3C, 0x7E, 0x7E, 0x7E, 0x3C, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF}, - {0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0}, - {0x00, 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x18, 0x18}, - {0x18, 0x18, 0x18, 0xFF, 0xFF, 0x00, 0x00, 0x00}, - {0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0}, - {0x18, 0x18, 0x18, 0x1F, 0x1F, 0x00, 0x00, 0x00}, - {0x78, 0x60, 0x78, 0x60, 0x7E, 0x18, 0x1E, 0x00}, - {0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x00}, - {0x00, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00}, - {0x00, 0x18, 0x30, 0x7E, 0x30, 0x18, 0x00, 0x00}, - {0x00, 0x18, 0x0C, 0x7E, 0x0C, 0x18, 0x00, 0x00}, - - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Space - {0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00}, - {0x00, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x66, 0xFF, 0x66, 0x66, 0xFF, 0x66, 0x00}, - {0x18, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x18, 0x00}, - {0x00, 0x66, 0x6C, 0x18, 0x30, 0x66, 0x46, 0x00}, - {0x1C, 0x36, 0x1C, 0x38, 0x6F, 0x66, 0x3B, 0x00}, - {0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x0E, 0x1C, 0x18, 0x18, 0x1C, 0x0E, 0x00}, - {0x00, 0x70, 0x38, 0x18, 0x18, 0x38, 0x70, 0x00}, - {0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, - {0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30}, - {0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00}, - {0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x40, 0x00}, - {0x00, 0x3C, 0x66, 0x6E, 0x76, 0x66, 0x3C, 0x00}, - {0x00, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7E, 0x00}, - {0x00, 0x3C, 0x66, 0x0C, 0x18, 0x30, 0x7E, 0x00}, - {0x00, 0x7E, 0x0C, 0x18, 0x0C, 0x66, 0x3C, 0x00}, - {0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0x7E, 0x0C, 0x00}, - {0x00, 0x7E, 0x60, 0x7C, 0x06, 0x66, 0x3C, 0x00}, - {0x00, 0x3C, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00}, - {0x00, 0x7E, 0x06, 0x0C, 0x18, 0x30, 0x30, 0x00}, - {0x00, 0x3C, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00}, - {0x00, 0x3C, 0x66, 0x3E, 0x06, 0x0C, 0x38, 0x00}, - {0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00}, - {0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30}, - {0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06, 0x00}, - {0x00, 0x00, 0x7E, 0x00, 0x00, 0x7E, 0x00, 0x00}, - {0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00}, - {0x00, 0x3C, 0x66, 0x0C, 0x18, 0x00, 0x18, 0x00}, - - {0x00, 0x3C, 0x66, 0x6E, 0x6E, 0x60, 0x3E, 0x00}, // @ - {0x00, 0x18, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x00}, // A - {0x00, 0x7C, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00}, - {0x00, 0x3C, 0x66, 0x60, 0x60, 0x66, 0x3C, 0x00}, - {0x00, 0x78, 0x6C, 0x66, 0x66, 0x6C, 0x78, 0x00}, - {0x00, 0x7E, 0x60, 0x7C, 0x60, 0x60, 0x7E, 0x00}, - {0x00, 0x7E, 0x60, 0x7C, 0x60, 0x60, 0x60, 0x00}, - {0x00, 0x3E, 0x60, 0x60, 0x6E, 0x66, 0x3E, 0x00}, - {0x00, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00}, - {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x7E, 0x00}, - {0x00, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00}, - {0x00, 0x66, 0x6C, 0x78, 0x78, 0x6C, 0x66, 0x00}, - {0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00}, - {0x00, 0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x00}, - {0x00, 0x66, 0x76, 0x7E, 0x7E, 0x6E, 0x66, 0x00}, - {0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, - {0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x00}, - {0x00, 0x3C, 0x66, 0x66, 0x66, 0x6C, 0x36, 0x00}, - {0x00, 0x7C, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x00}, - {0x00, 0x3C, 0x60, 0x3C, 0x06, 0x06, 0x3C, 0x00}, - {0x00, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, - {0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x00}, - {0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00}, - {0x00, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63, 0x00}, - {0x00, 0x66, 0x66, 0x3C, 0x3C, 0x66, 0x66, 0x00}, - {0x00, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x00}, - {0x00, 0x7E, 0x0C, 0x18, 0x30, 0x60, 0x7E, 0x00}, - {0x00, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x1E, 0x00}, - {0x00, 0x40, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00}, - {0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00}, - {0x00, 0x08, 0x1C, 0x36, 0x63, 0x00, 0x00, 0x00}, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00}, - - {0x40, 0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00}, // ` - {0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00}, // a - {0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C, 0x00}, - {0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x00}, - {0x00, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3E, 0x00}, - {0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00}, - {0x00, 0x0E, 0x18, 0x3E, 0x18, 0x18, 0x18, 0x00}, - {0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x7C}, - {0x00, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x00}, - {0x00, 0x18, 0x00, 0x38, 0x18, 0x18, 0x3C, 0x00}, - {0x00, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x3C}, - {0x00, 0x60, 0x60, 0x6C, 0x78, 0x6C, 0x66, 0x00}, - {0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00}, - {0x00, 0x00, 0x66, 0x7F, 0x7F, 0x6B, 0x63, 0x00}, - {0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00}, - {0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00}, - {0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60}, - {0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06}, - {0x00, 0x00, 0x7C, 0x66, 0x60, 0x60, 0x60, 0x00}, - {0x00, 0x00, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x00}, - {0x00, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x0E, 0x00}, - {0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00}, - {0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00}, - {0x00, 0x00, 0x63, 0x6B, 0x7F, 0x3E, 0x36, 0x00}, - {0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0x00}, - {0x00, 0x00, 0x66, 0x66, 0x66, 0x3E, 0x0C, 0x78}, - {0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00}, - - {0x14, 0x10, 0x10, 0x40, 0x10, 0x10, 0x14, 0x00}, // { - {0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18}, - {0x50, 0x10, 0x10, 0x04, 0x10, 0x10, 0x50, 0x00}, // } - {0x11, 0x11, 0x44, 0x44, 0x00, 0x00, 0x00, 0x00}, // ~ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // 127 DEL -}; - -/* - * Function prototypes - */ -static int OsdExample(int DeviceID); -static int OsdInit(int DeviceID); -static void OsdConfig(void); -static void OsdDrawBox(void); - -/*****************************************************************************/ -/** -* -* This is the main function for the OSD example. -* -* @param None. -* -* @return 0 to indicate success, otherwise 1. -* -* @note None. -* -******************************************************************************/ -int main(void) -{ - int Status; - - /* - * Call the OSD example, use the Device IDs generated in xparameters.h - */ - Status = OsdExample(OSD_DEVICE_ID); - if (Status != 0) - return 1; - - return 0; -} - -/*****************************************************************************/ -/** -* -* This function is the entry of the feature demonstrations on MVI Video OSD -* device. It initialized an OSD device, configures 2 layers, load -* text/color/font information, and draws a box to the OSD output. -* -* @param DeviceID is the device ID of the OSD device. -* -* @return 0 if all tests pass, 1 otherwise. -* -* @note None. -* -******************************************************************************/ -static int OsdExample(int DeviceID) -{ - int Status; - - /* Initialize the OSD instance */ - - Status = OsdInit(DeviceID); - if (Status != XST_SUCCESS) - return 1; - - /* Configure the OSD instance */ - - OsdConfig(); - - /* Draw a box */ - - OsdDrawBox(); - - /* Return success */ - - return 0; -} - -/*****************************************************************************/ -/** -* -* This function initializes the OSD device and its driver instance. -* -* @param DeviceID is the device ID of the OSD device. -* -* @return 0 if the initialization is successful; 1 otherwise. -* -* @note None. -* -******************************************************************************/ -int OsdInit(int DeviceID) -{ - int Status; - - /* Initialize the OSD instance */ - - OsdCfgPtr = XOSD_LookupConfig(DeviceID); - Status = XOSD_CfgInitialize(&Osd, OsdCfgPtr, OsdCfgPtr->BaseAddress); - if (Status != XST_SUCCESS) - return 1; - - /* Reset the devices */ - - XOSD_Reset(&Osd); - - /* Enable the OSD device and tell it to pick up the register changes */ - - XOSD_Enable(&Osd); - XOSD_RegUpdateEnable(&Osd); - - return 0; -} - -/*****************************************************************************/ -/** -* -* This function does the general configuration on an OSD device. The -* configuration includes: -* -* - Screen Size -* - Background Color -* - Layer 0 setup: Alpha, Priority, Dimension and enabling -* - Layer 1 setup: Alpha, Priority, Dimension and enabling -* - Loading Color/Font/Text configuration -* -* @param None. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -static void OsdConfig(void) -{ - /* Dimension definition */ - - int Width = 1280; - int Height = 720; - - /* Background color definition */ - - u8 Red = 0xFF; - u8 Blue = 0; - u8 Green = 0; - - /* Layer 0/1 property definition */ - - int Layer0AlphaValue = 0xFF; - int Layer0Priority = XOSD_LAYER_PRIORITY_0; - int Layer0GlobalAlphaEnable = 1; - - int Layer1AlphaValue = 0x80; /* 50% transparent */ - int Layer1Priority = XOSD_LAYER_PRIORITY_1; - int Layer1GlobalAlphaEnable = 0; - - /* Set screen size */ - - XOSD_SetScreenSize(&Osd, Width, Height); - - /* Set Background color */ - - XOSD_SetBackgroundColor(&Osd, Red, Blue, Green); - - /* Set up Layer 0's Alpha, Priority, Dimension and enable it */ - - XOSD_SetLayerAlpha(&Osd, 0, Layer0GlobalAlphaEnable, Layer0AlphaValue); - XOSD_SetLayerPriority(&Osd, 0, Layer0Priority); - XOSD_SetLayerDimension(&Osd, 0, 0, 0, Width, Height); - XOSD_EnableLayer(&Osd, 0); - - /* Set up Layer 1's Alpha, Priority, Dimension and enable it */ - - XOSD_SetLayerAlpha(&Osd, 1, Layer1GlobalAlphaEnable, Layer1AlphaValue); - XOSD_SetLayerPriority(&Osd, 1, Layer1Priority); - XOSD_SetLayerDimension(&Osd, 1, 0, 0, Width, Height); - XOSD_EnableLayer(&Osd, 1); - - /* Load color, font and text and set the active banks */ - - XOSD_LoadColorLUTBank(&Osd, 0, 0, ColorData); - XOSD_LoadCharacterSetBank(&Osd, 0, 0, (u32 *)Font); - XOSD_LoadTextBank(&Osd, 0, 0, (u32 *)TextData); - XOSD_SetActiveBank(&Osd, 0, 0, 0, 0, 0); - - return; -} - -/*****************************************************************************/ -/** -* -* This function draws a box using the OSD device -* -* @param None. -* -* @return None. -* -* @note None. -* -******************************************************************************/ -static void OsdDrawBox(void) -{ - /* Instruction buffer */ - - u32 Instruction[XOSD_INS_SIZE]; - - /* Instruction property definition */ - - u16 ObjType = XOSD_INS_OPCODE_BOX; /* A box */ - u8 ObjSize = 1; /* Box boarder width */ - u16 XStart = 100; /* Horizontal start pixel of the box */ - u16 YStart = 100; /* Vertical start line of the box */ - u16 XEnd = 200; /* Horizontal end pixel of the box */ - u16 YEnd = 200; /* Vertical end line of the box */ - u8 TextIndex = 0; /* Ignored in box instruction case */ - u8 ColorIndex = 0; /* Draw the box w/ the 1st color */ - - /* Create a box command instruction for GC #0 */ - - XOSD_CreateInstruction(&Osd, Instruction, 0, - ObjType, ObjSize, - XStart, YStart, XEnd, YEnd, - TextIndex, ColorIndex); - - /* Load the instruction to draw the box in the OSD output */ - - XOSD_LoadInstructionList(&Osd, 0, 0, Instruction, 1); - - return; -}