/*
 * Copyright (c) 2019 CTCaer
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include "../lv_misc/lv_font.h"

#include <memory_map.h>

#if USE_UBUNTU_MONO != 0	/*Can be enabled in lv_conf.h*/

/***********************************************************************************
 * UbuntuMono-B.ttf 20 px Font in U+0020 ( ) .. U+007e (~)  range with all bpp
***********************************************************************************/

/*Store the glyph descriptions*/
static const lv_font_glyph_dsc_t ubuntu_mono_glyph_dsc[] =
{
#if USE_UBUNTU_MONO == 4
  {.w_px = 6,	.glyph_index = 0},	/*Unicode: U+0020 ( )*/
  {.w_px = 2,	.glyph_index = 60},	/*Unicode: U+0021 (!)*/
  {.w_px = 5,	.glyph_index = 80},	/*Unicode: U+0022 (")*/
  {.w_px = 10,	.glyph_index = 140},	/*Unicode: U+0023 (#)*/
  {.w_px = 8,	.glyph_index = 240},	/*Unicode: U+0024 ($)*/
  {.w_px = 10,	.glyph_index = 320},	/*Unicode: U+0025 (%)*/
  {.w_px = 10,	.glyph_index = 420},	/*Unicode: U+0026 (&)*/
  {.w_px = 2,	.glyph_index = 520},	/*Unicode: U+0027 (')*/
  {.w_px = 6,	.glyph_index = 540},	/*Unicode: U+0028 (()*/
  {.w_px = 6,	.glyph_index = 600},	/*Unicode: U+0029 ())*/
  {.w_px = 9,	.glyph_index = 660},	/*Unicode: U+002a (*)*/
  {.w_px = 8,	.glyph_index = 760},	/*Unicode: U+002b (+)*/
  {.w_px = 4,	.glyph_index = 840},	/*Unicode: U+002c (,)*/
  {.w_px = 5,	.glyph_index = 880},	/*Unicode: U+002d (-)*/
  {.w_px = 4,	.glyph_index = 940},	/*Unicode: U+002e (.)*/
  {.w_px = 8,	.glyph_index = 980},	/*Unicode: U+002f (/)*/
  {.w_px = 8,	.glyph_index = 1060},	/*Unicode: U+0030 (0)*/
  {.w_px = 7,	.glyph_index = 1140},	/*Unicode: U+0031 (1)*/
  {.w_px = 8,	.glyph_index = 1220},	/*Unicode: U+0032 (2)*/
  {.w_px = 8,	.glyph_index = 1300},	/*Unicode: U+0033 (3)*/
  {.w_px = 8,	.glyph_index = 1380},	/*Unicode: U+0034 (4)*/
  {.w_px = 8,	.glyph_index = 1460},	/*Unicode: U+0035 (5)*/
  {.w_px = 8,	.glyph_index = 1540},	/*Unicode: U+0036 (6)*/
  {.w_px = 7,	.glyph_index = 1620},	/*Unicode: U+0037 (7)*/
  {.w_px = 8,	.glyph_index = 1700},	/*Unicode: U+0038 (8)*/
  {.w_px = 8,	.glyph_index = 1780},	/*Unicode: U+0039 (9)*/
  {.w_px = 4,	.glyph_index = 1860},	/*Unicode: U+003a (:)*/
  {.w_px = 4,	.glyph_index = 1900},	/*Unicode: U+003b (;)*/
  {.w_px = 9,	.glyph_index = 1940},	/*Unicode: U+003c (<)*/
  {.w_px = 8,	.glyph_index = 2040},	/*Unicode: U+003d (=)*/
  {.w_px = 8,	.glyph_index = 2120},	/*Unicode: U+003e (>)*/
  {.w_px = 8,	.glyph_index = 2200},	/*Unicode: U+003f (?)*/
  {.w_px = 9,	.glyph_index = 2280},	/*Unicode: U+0040 (@)*/
  {.w_px = 10,	.glyph_index = 2380},	/*Unicode: U+0041 (A)*/
  {.w_px = 8,	.glyph_index = 2480},	/*Unicode: U+0042 (B)*/
  {.w_px = 8,	.glyph_index = 2560},	/*Unicode: U+0043 (C)*/
  {.w_px = 8,	.glyph_index = 2640},	/*Unicode: U+0044 (D)*/
  {.w_px = 8,	.glyph_index = 2720},	/*Unicode: U+0045 (E)*/
  {.w_px = 8,	.glyph_index = 2800},	/*Unicode: U+0046 (F)*/
  {.w_px = 8,	.glyph_index = 2880},	/*Unicode: U+0047 (G)*/
  {.w_px = 8,	.glyph_index = 2960},	/*Unicode: U+0048 (H)*/
  {.w_px = 8,	.glyph_index = 3040},	/*Unicode: U+0049 (I)*/
  {.w_px = 8,	.glyph_index = 3120},	/*Unicode: U+004a (J)*/
  {.w_px = 9,	.glyph_index = 3200},	/*Unicode: U+004b (K)*/
  {.w_px = 8,	.glyph_index = 3300},	/*Unicode: U+004c (L)*/
  {.w_px = 9,	.glyph_index = 3380},	/*Unicode: U+004d (M)*/
  {.w_px = 8,	.glyph_index = 3480},	/*Unicode: U+004e (N)*/
  {.w_px = 8,	.glyph_index = 3560},	/*Unicode: U+004f (O)*/
  {.w_px = 8,	.glyph_index = 3640},	/*Unicode: U+0050 (P)*/
  {.w_px = 8,	.glyph_index = 3720},	/*Unicode: U+0051 (Q)*/
  {.w_px = 8,	.glyph_index = 3800},	/*Unicode: U+0052 (R)*/
  {.w_px = 8,	.glyph_index = 3880},	/*Unicode: U+0053 (S)*/
  {.w_px = 8,	.glyph_index = 3960},	/*Unicode: U+0054 (T)*/
  {.w_px = 8,	.glyph_index = 4040},	/*Unicode: U+0055 (U)*/
  {.w_px = 9,	.glyph_index = 4120},	/*Unicode: U+0056 (V)*/
  {.w_px = 9,	.glyph_index = 4220},	/*Unicode: U+0057 (W)*/
  {.w_px = 10,	.glyph_index = 4320},	/*Unicode: U+0058 (X)*/
  {.w_px = 10,	.glyph_index = 4420},	/*Unicode: U+0059 (Y)*/
  {.w_px = 8,	.glyph_index = 4520},	/*Unicode: U+005a (Z)*/
  {.w_px = 6,	.glyph_index = 4600},	/*Unicode: U+005b ([)*/
  {.w_px = 8,	.glyph_index = 4660},	/*Unicode: U+005c (\)*/
  {.w_px = 6,	.glyph_index = 4740},	/*Unicode: U+005d (])*/
  {.w_px = 10,	.glyph_index = 4800},	/*Unicode: U+005e (^)*/
  {.w_px = 10,	.glyph_index = 4900},	/*Unicode: U+005f (_)*/
  {.w_px = 4,	.glyph_index = 5000},	/*Unicode: U+0060 (`)*/
  {.w_px = 8,	.glyph_index = 5040},	/*Unicode: U+0061 (a)*/
  {.w_px = 8,	.glyph_index = 5120},	/*Unicode: U+0062 (b)*/
  {.w_px = 8,	.glyph_index = 5200},	/*Unicode: U+0063 (c)*/
  {.w_px = 8,	.glyph_index = 5280},	/*Unicode: U+0064 (d)*/
  {.w_px = 9,	.glyph_index = 5360},	/*Unicode: U+0065 (e)*/
  {.w_px = 9,	.glyph_index = 5460},	/*Unicode: U+0066 (f)*/
  {.w_px = 8,	.glyph_index = 5560},	/*Unicode: U+0067 (g)*/
  {.w_px = 8,	.glyph_index = 5640},	/*Unicode: U+0068 (h)*/
  {.w_px = 9,	.glyph_index = 5720},	/*Unicode: U+0069 (i)*/
  {.w_px = 7,	.glyph_index = 5820},	/*Unicode: U+006a (j)*/
  {.w_px = 9,	.glyph_index = 5900},	/*Unicode: U+006b (k)*/
  {.w_px = 8,	.glyph_index = 6000},	/*Unicode: U+006c (l)*/
  {.w_px = 8,	.glyph_index = 6080},	/*Unicode: U+006d (m)*/
  {.w_px = 8,	.glyph_index = 6160},	/*Unicode: U+006e (n)*/
  {.w_px = 8,	.glyph_index = 6240},	/*Unicode: U+006f (o)*/
  {.w_px = 8,	.glyph_index = 6320},	/*Unicode: U+0070 (p)*/
  {.w_px = 8,	.glyph_index = 6400},	/*Unicode: U+0071 (q)*/
  {.w_px = 7,	.glyph_index = 6480},	/*Unicode: U+0072 (r)*/
  {.w_px = 8,	.glyph_index = 6560},	/*Unicode: U+0073 (s)*/
  {.w_px = 8,	.glyph_index = 6640},	/*Unicode: U+0074 (t)*/
  {.w_px = 8,	.glyph_index = 6720},	/*Unicode: U+0075 (u)*/
  {.w_px = 9,	.glyph_index = 6800},	/*Unicode: U+0076 (v)*/
  {.w_px = 10,	.glyph_index = 6900},	/*Unicode: U+0077 (w)*/
  {.w_px = 10,	.glyph_index = 7000},	/*Unicode: U+0078 (x)*/
  {.w_px = 9,	.glyph_index = 7100},	/*Unicode: U+0079 (y)*/
  {.w_px = 8,	.glyph_index = 7200},	/*Unicode: U+007a (z)*/
  {.w_px = 7,	.glyph_index = 7280},	/*Unicode: U+007b ({)*/
  {.w_px = 2,	.glyph_index = 7360},	/*Unicode: U+007c (|)*/
  {.w_px = 8,	.glyph_index = 7380},	/*Unicode: U+007d (})*/
  {.w_px = 9,	.glyph_index = 7460},	/*Unicode: U+007e (~)*/

#elif USE_UBUNTU_MONO == 8
  {.w_px = 6,	.glyph_index = 0},	/*Unicode: U+0020 ( )*/
  {.w_px = 2,	.glyph_index = 120},	/*Unicode: U+0021 (!)*/
  {.w_px = 5,	.glyph_index = 160},	/*Unicode: U+0022 (")*/
  {.w_px = 10,	.glyph_index = 260},	/*Unicode: U+0023 (#)*/
  {.w_px = 8,	.glyph_index = 460},	/*Unicode: U+0024 ($)*/
  {.w_px = 10,	.glyph_index = 620},	/*Unicode: U+0025 (%)*/
  {.w_px = 10,	.glyph_index = 820},	/*Unicode: U+0026 (&)*/
  {.w_px = 2,	.glyph_index = 1020},	/*Unicode: U+0027 (')*/
  {.w_px = 6,	.glyph_index = 1060},	/*Unicode: U+0028 (()*/
  {.w_px = 6,	.glyph_index = 1180},	/*Unicode: U+0029 ())*/
  {.w_px = 9,	.glyph_index = 1300},	/*Unicode: U+002a (*)*/
  {.w_px = 8,	.glyph_index = 1480},	/*Unicode: U+002b (+)*/
  {.w_px = 4,	.glyph_index = 1640},	/*Unicode: U+002c (,)*/
  {.w_px = 5,	.glyph_index = 1720},	/*Unicode: U+002d (-)*/
  {.w_px = 4,	.glyph_index = 1820},	/*Unicode: U+002e (.)*/
  {.w_px = 8,	.glyph_index = 1900},	/*Unicode: U+002f (/)*/
  {.w_px = 8,	.glyph_index = 2060},	/*Unicode: U+0030 (0)*/
  {.w_px = 7,	.glyph_index = 2220},	/*Unicode: U+0031 (1)*/
  {.w_px = 8,	.glyph_index = 2360},	/*Unicode: U+0032 (2)*/
  {.w_px = 8,	.glyph_index = 2520},	/*Unicode: U+0033 (3)*/
  {.w_px = 8,	.glyph_index = 2680},	/*Unicode: U+0034 (4)*/
  {.w_px = 8,	.glyph_index = 2840},	/*Unicode: U+0035 (5)*/
  {.w_px = 8,	.glyph_index = 3000},	/*Unicode: U+0036 (6)*/
  {.w_px = 7,	.glyph_index = 3160},	/*Unicode: U+0037 (7)*/
  {.w_px = 8,	.glyph_index = 3300},	/*Unicode: U+0038 (8)*/
  {.w_px = 8,	.glyph_index = 3460},	/*Unicode: U+0039 (9)*/
  {.w_px = 4,	.glyph_index = 3620},	/*Unicode: U+003a (:)*/
  {.w_px = 4,	.glyph_index = 3700},	/*Unicode: U+003b (;)*/
  {.w_px = 9,	.glyph_index = 3780},	/*Unicode: U+003c (<)*/
  {.w_px = 8,	.glyph_index = 3960},	/*Unicode: U+003d (=)*/
  {.w_px = 8,	.glyph_index = 4120},	/*Unicode: U+003e (>)*/
  {.w_px = 8,	.glyph_index = 4280},	/*Unicode: U+003f (?)*/
  {.w_px = 9,	.glyph_index = 4440},	/*Unicode: U+0040 (@)*/
  {.w_px = 10,	.glyph_index = 4620},	/*Unicode: U+0041 (A)*/
  {.w_px = 8,	.glyph_index = 4820},	/*Unicode: U+0042 (B)*/
  {.w_px = 8,	.glyph_index = 4980},	/*Unicode: U+0043 (C)*/
  {.w_px = 8,	.glyph_index = 5140},	/*Unicode: U+0044 (D)*/
  {.w_px = 8,	.glyph_index = 5300},	/*Unicode: U+0045 (E)*/
  {.w_px = 8,	.glyph_index = 5460},	/*Unicode: U+0046 (F)*/
  {.w_px = 8,	.glyph_index = 5620},	/*Unicode: U+0047 (G)*/
  {.w_px = 8,	.glyph_index = 5780},	/*Unicode: U+0048 (H)*/
  {.w_px = 8,	.glyph_index = 5940},	/*Unicode: U+0049 (I)*/
  {.w_px = 8,	.glyph_index = 6100},	/*Unicode: U+004a (J)*/
  {.w_px = 9,	.glyph_index = 6260},	/*Unicode: U+004b (K)*/
  {.w_px = 8,	.glyph_index = 6440},	/*Unicode: U+004c (L)*/
  {.w_px = 9,	.glyph_index = 6600},	/*Unicode: U+004d (M)*/
  {.w_px = 8,	.glyph_index = 6780},	/*Unicode: U+004e (N)*/
  {.w_px = 8,	.glyph_index = 6940},	/*Unicode: U+004f (O)*/
  {.w_px = 8,	.glyph_index = 7100},	/*Unicode: U+0050 (P)*/
  {.w_px = 8,	.glyph_index = 7260},	/*Unicode: U+0051 (Q)*/
  {.w_px = 8,	.glyph_index = 7420},	/*Unicode: U+0052 (R)*/
  {.w_px = 8,	.glyph_index = 7580},	/*Unicode: U+0053 (S)*/
  {.w_px = 8,	.glyph_index = 7740},	/*Unicode: U+0054 (T)*/
  {.w_px = 8,	.glyph_index = 7900},	/*Unicode: U+0055 (U)*/
  {.w_px = 9,	.glyph_index = 8060},	/*Unicode: U+0056 (V)*/
  {.w_px = 9,	.glyph_index = 8240},	/*Unicode: U+0057 (W)*/
  {.w_px = 10,	.glyph_index = 8420},	/*Unicode: U+0058 (X)*/
  {.w_px = 10,	.glyph_index = 8620},	/*Unicode: U+0059 (Y)*/
  {.w_px = 8,	.glyph_index = 8820},	/*Unicode: U+005a (Z)*/
  {.w_px = 6,	.glyph_index = 8980},	/*Unicode: U+005b ([)*/
  {.w_px = 8,	.glyph_index = 9100},	/*Unicode: U+005c (\)*/
  {.w_px = 6,	.glyph_index = 9260},	/*Unicode: U+005d (])*/
  {.w_px = 10,	.glyph_index = 9380},	/*Unicode: U+005e (^)*/
  {.w_px = 10,	.glyph_index = 9580},	/*Unicode: U+005f (_)*/
  {.w_px = 4,	.glyph_index = 9780},	/*Unicode: U+0060 (`)*/
  {.w_px = 8,	.glyph_index = 9860},	/*Unicode: U+0061 (a)*/
  {.w_px = 8,	.glyph_index = 10020},	/*Unicode: U+0062 (b)*/
  {.w_px = 8,	.glyph_index = 10180},	/*Unicode: U+0063 (c)*/
  {.w_px = 8,	.glyph_index = 10340},	/*Unicode: U+0064 (d)*/
  {.w_px = 9,	.glyph_index = 10500},	/*Unicode: U+0065 (e)*/
  {.w_px = 9,	.glyph_index = 10680},	/*Unicode: U+0066 (f)*/
  {.w_px = 8,	.glyph_index = 10860},	/*Unicode: U+0067 (g)*/
  {.w_px = 8,	.glyph_index = 11020},	/*Unicode: U+0068 (h)*/
  {.w_px = 9,	.glyph_index = 11180},	/*Unicode: U+0069 (i)*/
  {.w_px = 7,	.glyph_index = 11360},	/*Unicode: U+006a (j)*/
  {.w_px = 9,	.glyph_index = 11500},	/*Unicode: U+006b (k)*/
  {.w_px = 8,	.glyph_index = 11680},	/*Unicode: U+006c (l)*/
  {.w_px = 8,	.glyph_index = 11840},	/*Unicode: U+006d (m)*/
  {.w_px = 8,	.glyph_index = 12000},	/*Unicode: U+006e (n)*/
  {.w_px = 8,	.glyph_index = 12160},	/*Unicode: U+006f (o)*/
  {.w_px = 8,	.glyph_index = 12320},	/*Unicode: U+0070 (p)*/
  {.w_px = 8,	.glyph_index = 12480},	/*Unicode: U+0071 (q)*/
  {.w_px = 7,	.glyph_index = 12640},	/*Unicode: U+0072 (r)*/
  {.w_px = 8,	.glyph_index = 12780},	/*Unicode: U+0073 (s)*/
  {.w_px = 8,	.glyph_index = 12940},	/*Unicode: U+0074 (t)*/
  {.w_px = 8,	.glyph_index = 13100},	/*Unicode: U+0075 (u)*/
  {.w_px = 9,	.glyph_index = 13260},	/*Unicode: U+0076 (v)*/
  {.w_px = 10,	.glyph_index = 13440},	/*Unicode: U+0077 (w)*/
  {.w_px = 10,	.glyph_index = 13640},	/*Unicode: U+0078 (x)*/
  {.w_px = 9,	.glyph_index = 13840},	/*Unicode: U+0079 (y)*/
  {.w_px = 8,	.glyph_index = 14020},	/*Unicode: U+007a (z)*/
  {.w_px = 7,	.glyph_index = 14180},	/*Unicode: U+007b ({)*/
  {.w_px = 2,	.glyph_index = 14320},	/*Unicode: U+007c (|)*/
  {.w_px = 8,	.glyph_index = 14360},	/*Unicode: U+007d (})*/
  {.w_px = 9,	.glyph_index = 14520},	/*Unicode: U+007e (~)*/

#endif
};

lv_font_t ubuntu_mono =
{
    .unicode_first = 32,	/*First Unicode letter in this font*/
    .unicode_last = 126,	/*Last Unicode letter in this font*/
    .h_px = 20,				/*Font height in pixels*/
    //.glyph_bitmap = ubuntu_mono_glyph_bitmap,	/*Bitmap of glyphs*/
    .glyph_bitmap = (const uint8_t *)(NYX_RES_ADDR),
    .glyph_dsc = ubuntu_mono_glyph_dsc,		/*Description of glyphs*/
    .glyph_cnt = 95,			/*Number of glyphs in the font*/
    .unicode_list = NULL,	/*Every character in the font from 'unicode_first' to 'unicode_last'*/
    .get_bitmap = lv_font_get_bitmap_continuous,	/*Function pointer to get glyph's bitmap*/
    .get_width = lv_font_get_width_continuous,	/*Function pointer to get glyph's width*/
#if USE_UBUNTU_MONO == 4
    .bpp = 4,				/*Bit per pixel*/
#elif USE_UBUNTU_MONO == 8
    .bpp = 8,				/*Bit per pixel*/
#endif
    .monospace = 10,		/*Fix width (0: if not used)*/
    .next_page = NULL,		/*Pointer to a font extension*/
};

#endif /*USE_UBUNTU_MONO*/