diff --git a/femonosd.c b/femonosd.c index 536a5e2..debff05 100644 --- a/femonosd.c +++ b/femonosd.c @@ -300,14 +300,34 @@ void cFemonOsd::DrawStatusWindow(void) OSDDRAWSTATUSBM(OSDSPACING); } if (m_Receiver) { - if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 1080)) - bm = &OSDSYMBOL(SYMBOL_FORMAT_1080); - else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 720)) - bm = &OSDSYMBOL(SYMBOL_FORMAT_720); - else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 576)) - bm = &OSDSYMBOL(SYMBOL_FORMAT_576); - else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 480)) - bm = &OSDSYMBOL(SYMBOL_FORMAT_480); + if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 1080)) { + switch (m_Receiver->VideoScan()) { + case VIDEO_SCAN_INTERLACED: bm = &OSDSYMBOL(SYMBOL_FORMAT_1080i); break; + case VIDEO_SCAN_PROGRESSIVE: bm = &OSDSYMBOL(SYMBOL_FORMAT_1080p); break; + default: bm = &OSDSYMBOL(SYMBOL_FORMAT_1080); break; + } + } + else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 720)) { + switch (m_Receiver->VideoScan()) { + case VIDEO_SCAN_INTERLACED: bm = &OSDSYMBOL(SYMBOL_FORMAT_720i); break; + case VIDEO_SCAN_PROGRESSIVE: bm = &OSDSYMBOL(SYMBOL_FORMAT_720p); break; + default: bm = &OSDSYMBOL(SYMBOL_FORMAT_720); break; + } + } + else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 576)) { + switch (m_Receiver->VideoScan()) { + case VIDEO_SCAN_INTERLACED: bm = &OSDSYMBOL(SYMBOL_FORMAT_576i); break; + case VIDEO_SCAN_PROGRESSIVE: bm = &OSDSYMBOL(SYMBOL_FORMAT_576p); break; + default: bm = &OSDSYMBOL(SYMBOL_FORMAT_576); break; + } + } + else if (IS_OSDRESOLUTION(m_Receiver->VideoVerticalSize(), 480)) { + switch (m_Receiver->VideoScan()) { + case VIDEO_SCAN_INTERLACED: bm = &OSDSYMBOL(SYMBOL_FORMAT_480i); break; + case VIDEO_SCAN_PROGRESSIVE: bm = &OSDSYMBOL(SYMBOL_FORMAT_480p); break; + default: bm = &OSDSYMBOL(SYMBOL_FORMAT_480); break; + } + } else bm = NULL; OSDDRAWSTATUSBM(OSDSPACING); diff --git a/femonsymbol.c b/femonsymbol.c index 620caff..03a6a25 100644 --- a/femonsymbol.c +++ b/femonsymbol.c @@ -41,9 +41,17 @@ #include "symbols/seven.xpm" #include "symbols/eight.xpm" #include "symbols/format1080.xpm" +#include "symbols/format1080i.xpm" +#include "symbols/format1080p.xpm" #include "symbols/format720.xpm" +#include "symbols/format720i.xpm" +#include "symbols/format720p.xpm" #include "symbols/format576.xpm" +#include "symbols/format576i.xpm" +#include "symbols/format576p.xpm" #include "symbols/format480.xpm" +#include "symbols/format480i.xpm" +#include "symbols/format480p.xpm" static cBitmap bmStereo(stereo_xpm); static cBitmap bmMonoLeft(monoleft_xpm); @@ -77,9 +85,17 @@ static cBitmap bmSix(six_xpm); static cBitmap bmSeven(seven_xpm); static cBitmap bmEight(eight_xpm); static cBitmap bmFormat1080(format1080_xpm); +static cBitmap bmFormat1080i(format1080i_xpm); +static cBitmap bmFormat1080p(format1080p_xpm); static cBitmap bmFormat720(format720_xpm); +static cBitmap bmFormat720i(format720i_xpm); +static cBitmap bmFormat720p(format720p_xpm); static cBitmap bmFormat576(format576_xpm); +static cBitmap bmFormat576i(format576i_xpm); +static cBitmap bmFormat576p(format576p_xpm); static cBitmap bmFormat480(format480_xpm); +static cBitmap bmFormat480i(format480i_xpm); +static cBitmap bmFormat480p(format480p_xpm); cFemonSymbolCache femonSymbols; @@ -150,9 +166,17 @@ bool cFemonSymbolCache::Populate(void) cacheM.Append(bmSeven.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_SEVEN cacheM.Append(bmEight.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_EIGHT cacheM.Append(bmFormat1080.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080 + cacheM.Append(bmFormat1080i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080i + cacheM.Append(bmFormat1080p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_1080p cacheM.Append(bmFormat720.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720 + cacheM.Append(bmFormat720i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720i + cacheM.Append(bmFormat720p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_720p cacheM.Append(bmFormat576.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576 + cacheM.Append(bmFormat576i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576i + cacheM.Append(bmFormat576p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_576p cacheM.Append(bmFormat480.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480 + cacheM.Append(bmFormat480i.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480i + cacheM.Append(bmFormat480p.Scaled(yFactorM, yFactorM, antiAliasM)); // SYMBOL_FORMAT_480p return true; } diff --git a/femonsymbol.h b/femonsymbol.h index ec8073b..aa9cf63 100644 --- a/femonsymbol.h +++ b/femonsymbol.h @@ -44,9 +44,17 @@ enum eSymbols { SYMBOL_SEVEN, SYMBOL_EIGHT, SYMBOL_FORMAT_1080, + SYMBOL_FORMAT_1080i, + SYMBOL_FORMAT_1080p, SYMBOL_FORMAT_720, + SYMBOL_FORMAT_720i, + SYMBOL_FORMAT_720p, SYMBOL_FORMAT_576, + SYMBOL_FORMAT_576i, + SYMBOL_FORMAT_576p, SYMBOL_FORMAT_480, + SYMBOL_FORMAT_480i, + SYMBOL_FORMAT_480p, SYMBOL_MAX_COUNT }; diff --git a/symbols/format1080i.xpm b/symbols/format1080i.xpm new file mode 100644 index 0000000..615eaa4 --- /dev/null +++ b/symbols/format1080i.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format1080i_xpm[] = { +"42 18 2 1", +". c #FFFFFF", +"+ c #000000", +"++++++++++++++++++++++++++++++++++++++++++", +"+........................................+", +"+......++...++++.....++++.....++++.......+", +"+...+++++..++++++...++++++...++++++......+", +"+...+++++..++..++...++..++...++..++......+", +"+......++.++....++.++....++.++....++.....+", +"+......++.++....++.++....++.++....++.++..+", +"+......++.++....++..++..++..++....++.++..+", +"+......++.++....++...++++...++....++.....+", +"+......++.++....++...++++...++....++.++..+", +"+......++.++....++..++..++..++....++.++..+", +"+......++.++....++.++....++.++....++.++..+", +"+......++.++....++.++....++.++....++.++..+", +"+......++..++..++...++..++...++..++..++..+", +"+......++..++++++...++++++...++++++..++..+", +"+......++...++++.....++++.....++++...++..+", +"+........................................+", +"++++++++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format1080p.xpm b/symbols/format1080p.xpm new file mode 100644 index 0000000..c0af15b --- /dev/null +++ b/symbols/format1080p.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format1080p_xpm[] = { +"47 18 2 1", +". c #FFFFFF", +"+ c #000000", +"+++++++++++++++++++++++++++++++++++++++++++++++", +"+.............................................+", +"+......++...++++.....++++.....++++............+", +"+...+++++..++++++...++++++...++++++...........+", +"+...+++++..++..++...++..++...++..++...........+", +"+......++.++....++.++....++.++....++..........+", +"+......++.++....++.++....++.++....++..........+", +"+......++.++....++..++..++..++....++.++++.....+", +"+......++.++....++...++++...++....++.+++++....+", +"+......++.++....++...++++...++....++.++..++...+", +"+......++.++....++..++..++..++....++.++..++...+", +"+......++.++....++.++....++.++....++.+++++....+", +"+......++.++....++.++....++.++....++.++++.....+", +"+......++..++..++...++..++...++..++..++.......+", +"+......++..++++++...++++++...++++++..++.......+", +"+......++...++++.....++++.....++++...++.......+", +"+.............................................+", +"+++++++++++++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format480i.xpm b/symbols/format480i.xpm new file mode 100644 index 0000000..94db284 --- /dev/null +++ b/symbols/format480i.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format480i_xpm[] = { +"38 18 2 1", +". c #FFFFFF", +"+ c #000000", +"++++++++++++++++++++++++++++++++++++++", +"+....................................+", +"+.........++....++++.....++++........+", +"+........+++...++++++...++++++.......+", +"+.......++++...++..++...++..++.......+", +"+......++.++..++....++.++....++......+", +"+.....++..++..++....++.++....++.++...+", +"+.....++..++...++..++..++....++.++...+", +"+....++...++....++++...++....++......+", +"+...++....++....++++...++....++.++...+", +"+...+++++++++..++..++..++....++.++...+", +"+...+++++++++.++....++.++....++.++...+", +"+.........++..++....++.++....++.++...+", +"+.........++...++..++...++..++..++...+", +"+.........++...++++++...++++++..++...+", +"+.........++....++++.....++++...++...+", +"+....................................+", +"++++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format480p.xpm b/symbols/format480p.xpm new file mode 100644 index 0000000..6ce12d7 --- /dev/null +++ b/symbols/format480p.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format480p_xpm[] = { +"42 18 2 1", +". c #FFFFFF", +"+ c #000000", +"++++++++++++++++++++++++++++++++++++++++++", +"+........................................+", +"+.........++....++++.....++++............+", +"+........+++...++++++...++++++...........+", +"+.......++++...++..++...++..++...........+", +"+......++.++..++....++.++....++..........+", +"+.....++..++..++....++.++....++..........+", +"+.....++..++...++..++..++....++.++++.....+", +"+....++...++....++++...++....++.+++++....+", +"+...++....++....++++...++....++.++..++...+", +"+...+++++++++..++..++..++....++.++..++...+", +"+...+++++++++.++....++.++....++.+++++....+", +"+.........++..++....++.++....++.++++.....+", +"+.........++...++..++...++..++..++.......+", +"+.........++...++++++...++++++..++.......+", +"+.........++....++++.....++++...++.......+", +"+........................................+", +"++++++++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format576i.xpm b/symbols/format576i.xpm new file mode 100644 index 0000000..bd1d80f --- /dev/null +++ b/symbols/format576i.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format576i_xpm[] = { +"36 18 2 1", +". c #FFFFFF", +"+ c #000000", +"++++++++++++++++++++++++++++++++++++", +"+..................................+", +"+...+++++++.++++++++..++++++.......+", +"+...+++++++.++++++++.++++++++......+", +"+...++......++....++.+++...++......+", +"+...++............++.++............+", +"+...++...........+++.++.......++...+", +"+...++++++.......++..++.+++...++...+", +"+...+++++++......++..+++++++.......+", +"+...++...+++....+++..+++..+++.++...+", +"+.........++....++...++....++.++...+", +"+.........++....++...++....++.++...+", +"+...++....++...+++...++....++.++...+", +"+...++...+++...++....+++..+++.++...+", +"+...+++++++....++....+++++++..++...+", +"+....+++++.....++.....+++++...++...+", +"+..................................+", +"++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format576p.xpm b/symbols/format576p.xpm new file mode 100644 index 0000000..a385d96 --- /dev/null +++ b/symbols/format576p.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format576p_xpm[] = { +"40 18 2 1", +". c #FFFFFF", +"+ c #000000", +"++++++++++++++++++++++++++++++++++++++++", +"+......................................+", +"+...+++++++.++++++++..++++++...........+", +"+...+++++++.++++++++.++++++++..........+", +"+...++......++....++.+++...++..........+", +"+...++............++.++................+", +"+...++...........+++.++................+", +"+...++++++.......++..++.+++...++++.....+", +"+...+++++++......++..+++++++..+++++....+", +"+...++...+++....+++..+++..+++.++..++...+", +"+.........++....++...++....++.++..++...+", +"+.........++....++...++....++.+++++....+", +"+...++....++...+++...++....++.++++.....+", +"+...++...+++...++....+++..+++.++.......+", +"+...+++++++....++....+++++++..++.......+", +"+....+++++.....++.....+++++...++.......+", +"+......................................+", +"++++++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format720i.xpm b/symbols/format720i.xpm new file mode 100644 index 0000000..afabc70 --- /dev/null +++ b/symbols/format720i.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format720i_xpm[] = { +"37 18 2 1", +". c #FFFFFF", +"+ c #000000", +"+++++++++++++++++++++++++++++++++++++", +"+...................................+", +"+...++++++++...++++.....++++........+", +"+...++++++++.+++++++...++++++.......+", +"+...++....++.++....++..++..++.......+", +"+.........++.......++.++....++......+", +"+.........++.......++.++....++.++...+", +"+.........++.......++.++....++.++...+", +"+........++......+++..++....++......+", +"+.......+++.....+++...++....++.++...+", +"+.......++.....+++....++....++.++...+", +"+.......++....+++.....++....++.++...+", +"+......+++...+++......++....++.++...+", +"+......++....++........++..++..++...+", +"+......++....++++++++..++++++..++...+", +"+......++....++++++++...++++...++...+", +"+...................................+", +"+++++++++++++++++++++++++++++++++++++"}; diff --git a/symbols/format720p.xpm b/symbols/format720p.xpm new file mode 100644 index 0000000..d4146b5 --- /dev/null +++ b/symbols/format720p.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *const format720p_xpm[] = { +"41 18 2 1", +". c #FFFFFF", +"+ c #000000", +"+++++++++++++++++++++++++++++++++++++++++", +"+.......................................+", +"+...++++++++...++++.....++++............+", +"+...++++++++.+++++++...++++++...........+", +"+...++....++.++....++..++..++...........+", +"+.........++.......++.++....++..........+", +"+.........++.......++.++....++..........+", +"+.........++.......++.++....++.++++.....+", +"+........++......+++..++....++.+++++....+", +"+.......+++.....+++...++....++.++..++...+", +"+.......++.....+++....++....++.++..++...+", +"+.......++....+++.....++....++.+++++....+", +"+......+++...+++......++....++.++++.....+", +"+......++....++........++..++..++.......+", +"+......++....++++++++..++++++..++.......+", +"+......++....++++++++...++++...++.......+", +"+.......................................+", +"+++++++++++++++++++++++++++++++++++++++++"};