Lines Matching defs:sli

61 XkbSrvLedInfoPtr	sli;
63 sli= XkbFindSrvLedInfo(dev,XkbDfltXIClass,XkbDfltXIId,0);
65 if (!sli)
69 update|= sli->usesEffective;
71 update|= sli->usesBase;
73 update|= sli->usesLatched;
75 update|= sli->usesLocked;
77 update|= sli->usesCompat;
79 update|= sli->usesControls;
224 XkbSrvLedInfoPtr sli,
239 if ((maps_to_check==0)||(sli->maps==NULL)||(sli->mapsPresent==0))
249 oldState= sli->effectiveState;
250 sli->autoState&= ~affected;
255 map= &sli->maps[i];
257 sli->autoState|= bit;
259 sli->effectiveState= (sli->autoState|sli->explicitState);
260 affected= sli->effectiveState^oldState;
269 ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) {
270 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
273 if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault)) {
282 ed->ledClass= sli->class;
283 ed->ledID= sli->id;
284 ed->ledsDefined= sli->namesPresent|sli->mapsPresent;
285 ed->ledState= sli->effectiveState;
292 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
300 XkbSrvLedInfoPtr sli;
308 sli= kf->xkb_sli;
309 XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL,
319 sli= lf->xkb_sli;
320 XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL,
360 XkbSrvLedInfoPtr sli;
367 sli= XkbFindSrvLedInfo(dev,XkbDfltXIClass,XkbDfltXIId,0);
368 sli->explicitState&= ~affect;
369 sli->explicitState|= (affect&values);
370 XkbApplyLedStateChanges(dev,sli,affect,&ed,&changes,cause);
376 side_affected|= sli->usesControls;
379 XkbUpdateLedAutoState(dev,sli,side_affected,&ed,&changes,cause);
385 XkbFlushLedEvents(dev,dev,sli,&ed,&changes,cause);
417 XkbSrvLedInfoPtr sli;
419 sli= XkbFindSrvLedInfo(dev,XkbDfltXIClass,XkbDfltXIId,0);
420 XkbUpdateLedAutoState(dev,sli,update,NULL,changes,cause);
432 * XkbCheckIndicatorMaps(dev,sli,which)
435 * by 'which' in the feedback specified by 'sli.' The indicator
442 XkbCheckIndicatorMaps(DeviceIntPtr dev,XkbSrvLedInfoPtr sli,unsigned which)
448 if ((sli->flags&XkbSLI_HasOwnState)==0)
451 sli->usesBase&= ~which;
452 sli->usesLatched&= ~which;
453 sli->usesLocked&= ~which;
454 sli->usesEffective&= ~which;
455 sli->usesCompat&= ~which;
456 sli->usesControls&= ~which;
457 sli->mapsPresent&= ~which;
460 for (i=0,bit=1,map=sli->maps;i<XkbNumIndicators;i++,bit<<=1,map++) {
466 sli->mapsPresent|= bit;
470 sli->usesBase|= bit;
472 sli->usesLatched|= bit;
474 sli->usesLocked|= bit;
476 sli->usesEffective|= bit;
478 sli->usesCompat|= bit;
480 sli->usesControls|= bit;
488 sli->usedComponents= 0;
489 if (sli->usesBase)
490 sli->usedComponents|= XkbModifierBaseMask|XkbGroupBaseMask;
491 if (sli->usesLatched)
492 sli->usedComponents|= XkbModifierLatchMask|XkbGroupLatchMask;
493 if (sli->usesLocked)
494 sli->usedComponents|= XkbModifierLockMask|XkbGroupLockMask;
495 if (sli->usesEffective)
496 sli->usedComponents|= XkbModifierStateMask|XkbGroupStateMask;
497 if (sli->usesCompat)
498 sli->usedComponents|= XkbCompatStateMask;
520 XkbSrvLedInfoPtr sli;
524 sli= NULL;
527 kf->xkb_sli= sli= calloc(1, sizeof(XkbSrvLedInfoRec));
528 if (sli==NULL)
531 sli->flags= XkbSLI_HasOwnState;
532 else sli->flags= 0;
533 sli->class= KbdFeedbackClass;
534 sli->id= kf->ctrl.id;
535 sli->fb.kf= kf;
537 sli->autoState= 0;
538 sli->explicitState= kf->ctrl.leds;
539 sli->effectiveState= kf->ctrl.leds;
544 sli->flags|= XkbSLI_IsDefault;
545 sli->physIndicators= xkb->indicators->phys_indicators;
546 sli->names= xkb->names->indicators;
547 sli->maps= xkb->indicators->maps;
551 sli->physIndicators= XkbAllIndicatorsMask;
552 sli->names= NULL;
553 sli->maps= NULL;
559 sli= kf->xkb_sli;
560 sli->physIndicators= xkb->indicators->phys_indicators;
561 if (xkb->names->indicators!=sli->names) {
563 sli->names= xkb->names->indicators;
565 if (xkb->indicators->maps!=sli->maps) {
567 sli->maps= xkb->indicators->maps;
571 lf->xkb_sli= sli= calloc(1, sizeof(XkbSrvLedInfoRec));
572 if (sli==NULL)
575 sli->flags= XkbSLI_HasOwnState;
576 else sli->flags= 0;
577 sli->class= LedFeedbackClass;
578 sli->id= lf->ctrl.id;
579 sli->fb.lf= lf;
581 sli->physIndicators= lf->ctrl.led_mask;
582 sli->autoState= 0;
583 sli->explicitState= lf->ctrl.led_values;
584 sli->effectiveState= lf->ctrl.led_values;
585 sli->maps= NULL;
586 sli->names= NULL;
590 if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask))
591 sli->names= calloc(XkbNumIndicators, sizeof(Atom));
592 if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask))
593 sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec));
596 sli->namesPresent= 0;
598 if (sli->names[i]!=None)
599 sli->namesPresent|= bit;
603 XkbCheckIndicatorMaps(dev,sli,XkbAllIndicatorsMask);
604 return sli;
608 XkbFreeSrvLedInfo(XkbSrvLedInfoPtr sli)
610 if ((sli->flags&XkbSLI_IsDefault)==0) {
611 free(sli->maps);
612 free(sli->names);
614 sli->maps= NULL;
615 sli->names= NULL;
616 free(sli);
679 XkbSrvLedInfoPtr sli;
683 XkbSrvLedInfoPtr sli;
684 sli= dev->kbdfeed->xkb_sli;
686 sli= XkbAllocSrvLedInfo(dev,dev->kbdfeed,NULL,needed_parts);
687 dev->kbdfeed->xkb_sli= sli;
692 sli= NULL;
704 sli= kf->xkb_sli;
715 sli= lf->xkb_sli;
720 if (sli) {
721 if ((sli->names==NULL)&&(needed_parts&XkbXI_IndicatorNamesMask))
722 sli->names= calloc(XkbNumIndicators, sizeof(Atom));
723 if ((sli->maps==NULL)&&(needed_parts&XkbXI_IndicatorMapsMask))
724 sli->maps= calloc(XkbNumIndicators, sizeof(XkbIndicatorMapRec));
726 return sli;
734 XkbSrvLedInfoPtr sli,
741 XkbDDXUpdateDeviceIndicators(dev,sli,sli->effectiveState);
746 if (sli->effectiveState)
756 XkbDDXUpdateDeviceIndicators(dev,sli,sli->effectiveState);
768 XkbSrvLedInfoPtr sli,
789 ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) {
790 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
793 if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault)) {
803 ed->ledClass= sli->class;
804 ed->ledID= sli->id;
805 ed->ledsDefined= sli->namesPresent|sli->mapsPresent;
806 ed->ledState= sli->effectiveState;
813 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
820 * XkbApplyLedMapChanges(dev,sli,changed_maps,changes,cause)
823 * feedback specified by 'sli' on the device specified by 'dev.'
845 XkbSrvLedInfoPtr sli,
866 ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) {
867 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
870 if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault)) {
878 XkbCheckIndicatorMaps(dev,sli,changed_maps);
881 ed->ledClass= sli->class;
882 ed->ledID= sli->id;
883 ed->ledsDefined= sli->namesPresent|sli->mapsPresent;
884 ed->ledState= sli->effectiveState;
888 XkbUpdateLedAutoState(dev,sli,changed_maps,ed,changes,cause);
893 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
901 XkbSrvLedInfoPtr sli,
930 oldState= sli->effectiveState;
935 map= &sli->maps[i];
937 sli->explicitState&= ~bit;
941 Bool on= ((sli->explicitState&bit)!=0);
946 sli->effectiveState= (sli->autoState|sli->explicitState);
947 affected= sli->effectiveState^oldState;
954 ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) {
955 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);
958 if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault))
962 ed->ledClass= sli->class;
963 ed->ledID= sli->id;
964 ed->ledsDefined= sli->namesPresent|sli->mapsPresent;
965 ed->ledState= sli->effectiveState;
972 XkbUpdateLedAutoState(dev,sli,sli->mapsPresent,ed,changes,cause);
978 XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause);