Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/NeutrinoRDP.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2015-02-05 09:20:23 +0300
committerJay Sorg <jay.sorg@gmail.com>2015-02-05 09:20:23 +0300
commit0170e1be4354c57c6cfadb89dab3b7e990b40616 (patch)
tree61a984da16fe8cd37f5355ca3a88de7ba3a541f4
parent3c092add4a38b39f58c7f8ef3092e24395d9b49e (diff)
bitmap.c ExtractCodeId opt
-rw-r--r--libfreerdp-codec/bitmap.c40
1 files changed, 15 insertions, 25 deletions
diff --git a/libfreerdp-codec/bitmap.c b/libfreerdp-codec/bitmap.c
index 499a935..96b3225 100644
--- a/libfreerdp-codec/bitmap.c
+++ b/libfreerdp-codec/bitmap.c
@@ -77,35 +77,25 @@ static const uint8 g_MaskLiteRunLength = 0x0F;
*/
static uint32 ExtractCodeId(uint8 bOrderHdr)
{
- int code;
-
- switch (bOrderHdr)
+ if ((bOrderHdr & 0xC0U) != 0xC0U)
{
- case MEGA_MEGA_BG_RUN:
- case MEGA_MEGA_FG_RUN:
- case MEGA_MEGA_SET_FG_RUN:
- case MEGA_MEGA_DITHERED_RUN:
- case MEGA_MEGA_COLOR_RUN:
- case MEGA_MEGA_FGBG_IMAGE:
- case MEGA_MEGA_SET_FGBG_IMAGE:
- case MEGA_MEGA_COLOR_IMAGE:
- case SPECIAL_FGBG_1:
- case SPECIAL_FGBG_2:
- case SPECIAL_WHITE:
- case SPECIAL_BLACK:
- return bOrderHdr;
+ /* REGULAR orders
+ * (000x xxxx, 001x xxxx, 010x xxxx, 011x xxxx, 100x xxxx)
+ */
+ return bOrderHdr >> 5;
}
- code = bOrderHdr >> 5;
- switch (code)
+ else if ((bOrderHdr & 0xF0U) == 0xF0U)
{
- case REGULAR_BG_RUN:
- case REGULAR_FG_RUN:
- case REGULAR_COLOR_RUN:
- case REGULAR_FGBG_IMAGE:
- case REGULAR_COLOR_IMAGE:
- return code;
+ /* MEGA and SPECIAL orders (0xF*) */
+ return bOrderHdr;
+ }
+ else
+ {
+ /* LITE orders
+ * 1100 xxxx, 1101 xxxx, 1110 xxxx)
+ */
+ return bOrderHdr >> 4;
}
- return bOrderHdr >> 4;
}
/**