Tom Bridgwater wrote:
> 
> On Jan 6, 2006, at 7:26 AM, Denis Oliver Kropp wrote:
> 
>> if (id >= DIKI_0 && id <= DIKI_9) {
>>       if (shift) {
>>            switch(id) {
>>               case DIKI_1: return DIKS_EXCLAMATION_MARK;
>>               case DIKI_2: return DIKS_AT;
>>               case DIKI_3: return DIKS_NUMBER_SIGN;
>>               case DIKI_4: return DIKS_DOLLAR_SIGN;
>>               case DIKI_5: return DIKS_PERCENT_SIGN;
>>               case DIKI_6: return DIKS_CIRCUMFLEX_ACCENT;
>>               case DIKI_7: return DIKS_AMPERSAND;
>>               case DIKI_8: return DIKS_ASTERISK;
>>               case DIKI_9: return DIKS_PARENTHESIS_LEFT;
>>               case DIKI_0: return DIKS_PARENTHESIS_RIGHT;
>>               default:;
>>           }
>>      }
>>      else
>>           return DIKS_0 + id - DIKI_0;
>> }
>>
> 
> If you really care about saving logic, maybe try:
> 
> if (id >= DIKI_0 && id <= DIKI_9) {
>       static const DFBInputDeviceKeySymbol shift_number_symbols[10] = {
>               DIKS_PARENTHESIS_RIGHT,
>               DIKS_EXCLAMATION_MARK,
>               DIKS_AT,
>               DIKS_NUMBER_SIGN,
>               DIKS_DOLLAR_SIGN,
>               DIKS_PERCENT_SIGN,
>               DIKS_CIRCUMFLEX_ACCENT,
>               DIKS_AMPERSAND,
>               DIKS_ASTERISK,
>               DIKS_PARENTHESIS_LEFT
>           };
>     if (shift)
>           return shift_number_symbols[id - DIKI_0];       
>      else
>           return DIKS_0 + id - DIKI_0;
> }

Had the same idea, but thought a switch might still be better,
being optimized by the compiler, due to the sequential enum
values. I guess it depends on compiler and architecture, and
options :)

-- 
Best regards,
   Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to