コード例 #1
0
ファイル: dynamic_input_area.c プロジェクト: kjk/noah-palm
Err DIA_Init(DIA_Settings* diaSettings) 
{
    UInt16      cardNo;
    LocalID     localId;
    UInt32      value;
    Err         error;
    Err         tmpErr;

    Assert(diaSettings);
    MemSet(diaSettings, sizeof(*diaSettings), 0);
    
    error=SonySilkLibInit(diaSettings);
    if (error) 
        goto OnError;

    if (!DIA_HasSonySilkLib(diaSettings))
    {
        if ( 0==FtrGet(pinCreator, pinFtrAPIVersion, &value) )
        {
            if ( 0!=value )
                DIA_SetFlag(diaSettings, diaHasPenInputMgr);
        }
    }
    if (!FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &value) && value)
    {
        error=SysCurAppDatabase(&cardNo, &localId);
        if (error)
            goto OnError;

        if (DIA_HasPenInputMgr(diaSettings)) 
        {
            error=SysNotifyRegister(cardNo, localId, sysNotifyDisplayResizedEvent, NULL, sysNotifyNormalPriority, NULL);
            if (sysNotifyErrDuplicateEntry==error) 
                error=errNone;
            if (error)
                goto OnError;
            DIA_SetFlag(diaSettings, diaRegisteredDisplayResizeNotify);
        }

        if (DIA_HasSonySilkLib(diaSettings))
        {
            error=SysNotifyRegister(cardNo, localId, sysNotifyDisplayChangeEvent, NULL, sysNotifyNormalPriority, NULL);
            if (sysNotifyErrDuplicateEntry==error) 
                error=errNone;
            if (error)
                goto OnError;
            DIA_SetFlag(diaSettings, diaRegisteredDisplayChangeNotify);
        }

    }
Exit:
    return error;
OnError:
    if (DIA_HasSonySilkLib(diaSettings))
    {
        tmpErr=SonySilkLibFree(diaSettings);
        if (tmpErr) error=tmpErr;
    }
    goto Exit;
}
コード例 #2
0
ファイル: DIA.c プロジェクト: TimofonicJunkRoom/plucker
static void RegisterNotification( void )
{
    Err      err;

    haveNotification = false;
    switch ( hardware ) {
#ifdef SUPPORT_DIA_SONY
        case DIA_HARDWARE_SONY1:
        case DIA_HARDWARE_SONY2:
            displayChangeNotification = sysNotifyDisplayChangeEvent;
            break;
#endif
#ifdef SUPPORT_DIA_HANDERA
        case DIA_HARDWARE_HANDERA:
            displayChangeNotification = trgNotifySilkEvent;
            break;
#endif
#ifdef HAVE_PALM_DIA_SDK
        case DIA_HARDWARE_PALM10:
        case DIA_HARDWARE_PALM11:
            displayChangeNotification = sysNotifyDisplayResizedEvent;
            break;
#endif
        default:
            return;
    }
    err = SysCurAppDatabase( &card, &db );
    if ( err != errNone )
        return;
    err = SysNotifyRegister( card, db, displayChangeNotification, NULL,
        sysNotifyNormalPriority, 0 );
    haveNotification = ( err == errNone );
}
コード例 #3
0
ファイル: app.cpp プロジェクト: iPodLinux-Community/iScummVM
static Err AppStartCheckNotify() {
	UInt32 romVersion;
	Err err;

	err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &romVersion); 
	if (!err) {
		UInt16 cardNo;
		LocalID dbID;

		err = SysCurAppDatabase(&cardNo, &dbID);
		if (!err) {
			SysNotifyRegister(cardNo, dbID, sysNotifyVolumeMountedEvent, NULL, sysNotifyNormalPriority, NULL);
			SysNotifyRegister(cardNo, dbID, sysNotifyVolumeUnmountedEvent, NULL, sysNotifyNormalPriority, NULL);
			SysNotifyRegister(cardNo, dbID, sonySysNotifyMsaEnforceOpenEvent, NULL, sysNotifyNormalPriority, NULL);
			SysNotifyRegister(cardNo, dbID, sysNotifyDisplayResizedEvent, NULL, sysNotifyNormalPriority, NULL);
		}
	}

	return err;
}
コード例 #4
0
ファイル: IRexxApp.cpp プロジェクト: Jaxo/yaxx
/*----------------------------------------CIRexxApp::RegisterForNotifications-+
| Register for interest in the pen stroke event (5.0's version of a hack)     |
+----------------------------------------------------------------------------*/
void CIRexxApp::RegisterForNotifications()
{
   Err err;
   UInt16 cardNo;
   LocalID dbID;

   SysCurAppDatabase(&cardNo, &dbID);
   err = SysNotifyRegister(cardNo, dbID,
      sysNotifyProcessPenStrokeEvent, (SysNotifyProcPtr)0,
      sysNotifyNormalPriority, 0);
   return;
}
コード例 #5
0
ファイル: sony_support.c プロジェクト: petesh/pocketcity
void
hookHoldSwitch(void (*CallBack)(UInt32))
{
	Err err;
	UInt32 val;

	err = FtrGet(sysFtrCreator, sysFtrNumNotifyMgrVersion, &val);
	if (!err && val) {
		UInt16 CardNo;
		LocalID dbID;
		SysCurAppDatabase(&CardNo, &dbID);
		SysNotifyRegister(CardNo, dbID,
		    sonySysNotifyHoldStatusChangeEvent,
		    PrvHoldNotificationHandler, sysNotifyNormalPriority, NULL);
		holdCB = CallBack;
	}
}
コード例 #6
0
ファイル: sony_support.c プロジェクト: petesh/pocketcity
Boolean
SonySilk(void)
{
	Err error = errNone;
	UInt32 version;
	UInt16		cardNo;
	LocalID		dbID;

	if (silk_ref != -1)
		return (silk_ref != 0);

	if (SysLibFind(sonySysLibNameSilk, &silk_ref)) {
		error = SysLibLoad('libr', sonySysFileCSilkLib, &silk_ref);
	}
	if (error == sysErrLibNotFound || silk_ref == -1) {
		silk_ref = 0;
		return (0);
	}
	WriteLog("found sony silk library ");

	error = FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &version);
	if (error || !version) {
		silk_ver = 0;
		SilkLibOpen(silk_ref);
	} else {
		VskOpen(silk_ref);
		silk_ver = VskGetAPIVersion(silk_ref);
	}

	WriteLog("version: %d\n", silk_ver);

	SonySetSilkResizable(true);

	SysCurAppDatabase(&cardNo, &dbID);
	SysNotifyRegister(cardNo, dbID, sysNotifyDisplayChangeEvent,
	    SonyNotifyHook, sysNotifyNormalPriority, NULL);


	return (silk_ref != 0);
}
コード例 #7
0
ファイル: UniMatrix.c プロジェクト: timn/unimatrix
/***********************************************************************
 * handling for form and control actions
 * menu actions are forwarded to MainFormDoCommand
 ***********************************************************************/
static Boolean
MainFormHandleEvent (EventPtr event)
{
  FormType *frm;
  Boolean handled = false;
  Boolean categoryEdited, reDraw=false;
  UInt16 category, numRecords;
  ControlType *ctl;
  UInt32 *recordList;

  
  if (event->eType == ctlSelectEvent) {
    // button handling
    handled = true;
    switch (event->data.ctlSelect.controlID) {
      // the ok button - this leaves the application

      case LIST_cat_trigger:
        frm = FrmGetActiveForm();
        category=DatabaseGetCat();
        numRecords=DmNumRecordsInCategory(DatabaseGetRef(), DELETE_CATEGORY);
        recordList=(UInt32 *)MemPtrNew(numRecords * sizeof(UInt32));
        CatPreEdit(numRecords, recordList);
        categoryEdited = CategorySelect(DatabaseGetRef(), frm,
                                        LIST_cat_trigger, LIST_cat, false,
                                        &category, gCategoryName, 0,
                                        STRING_cat_edit); // categoryDefaultEditCategoryString
        if (categoryEdited || (category != DatabaseGetCat())) {
          reDraw=true;
          DatabaseSetCat(category);
          ctl = GetObjectPtr(LIST_cat_trigger);
          CategoryGetName(DatabaseGetRef(), DatabaseGetCat(), gCategoryName); 
          CategorySetTriggerLabel(ctl, gCategoryName); 
        }
        CatPostEdit(numRecords, recordList);
        if (reDraw)  {
          GadgetSetNeedsCompleteRedraw(true);
          FrmDrawForm(frm);
        }
        if (recordList != NULL)    MemPtrFree((MemPtr)recordList);
        break;

      case BUTTON_beam:
        BeamCourse(GadgetGetHintCourseIndex());
        break;

      case BUTTON_edit:
        gMenuCurrentForm=FORM_main;
        EditTime();
        break;

      case BUTTON_next:
        GadgetDrawHintNext();
        break;

      default:
        break;
      }
    } else if (event->eType == keyDownEvent) {
      // We have a hard button assigned and it was pressed
      if (TxtCharIsHardKey(event->data.keyDown.modifiers, event->data.keyDown.chr)) {
        if (! (event->data.keyDown.modifiers & poweredOnKeyMask)) {
          GadgetDrawHintNext();
          handled = true;
        }
      } else if (EvtKeydownIsVirtual(event)) {
        // Up or down keys pressed
        switch (event->data.keyDown.chr) {
          case vchrPageUp:
            if (event->data.keyDown.modifiers & autoRepeatKeyMask) {
              if (! gMainRepeat) {
                GadgetSwitchScreen();
                gMainRepeat = true;
              }
            } else {
              GadgetDrawStep(winUp);
              gMainRepeat = false;
            }
            handled=true;
            break;

          case vchrPageDown:
            if (event->data.keyDown.modifiers & autoRepeatKeyMask) {
              if (! gMainRepeat) {
                GadgetSwitchScreen();
                gMainRepeat = true;
              }
            } else {
              GadgetDrawStep(winDown);
              gMainRepeat = false;
            }
            handled=true;
            break;

          case vchrSendData:
            BeamCourse(GadgetGetHintCourseIndex());
            handled=true;
            break;

          default:
            break;
        }
      }
    } else if (event->eType == menuEvent) {
      // forwarding of menu events
      return HandleMenuEvent(event->data.menu.itemID);
    } else if (event->eType == menuOpenEvent) {
      return HandleMenuOpenEvent(event);
    } else if (event->eType == frmUpdateEvent) {
      // redraws the form if needed
      frm = FrmGetActiveForm();
      FrmDrawForm(frm);
      // GadgetDrawHintNext();
      handled = true;
    } else if (event->eType == frmOpenEvent) {
      ControlType *ctl;
      LocalID dbID;
      UInt16 cardNo;
      Boolean newKeyP4=false;
      UInt16 newKeyP2=0xFFFF;

      // initializes and draws the form at program launch
      frm = FrmGetActiveForm();

      GadgetSet(frm, GADGET_main, GADGET_hint);
      FrmSetGadgetHandler(frm, FrmGetObjectIndex(frm, GADGET_main), GadgetHandler);
      FrmSetGadgetHandler(frm, FrmGetObjectIndex(frm, GADGET_hint), GadgetHintHandler);

      FrmDrawForm(frm);
      GadgetDrawHintNext();

      ctl = GetObjectPtr(LIST_cat_trigger);
      CategoryGetName (DatabaseGetRef(), DatabaseGetCat(), gCategoryName); 
      CategorySetTriggerLabel (ctl, gCategoryName); 

      DmOpenDatabaseInfo(DatabaseGetRefN(DB_MAIN), &dbID, NULL, NULL, &cardNo, NULL);
      SysNotifyRegister(cardNo, dbID, sysNotifyLateWakeupEvent, HandleNotification, sysNotifyNormalPriority, NULL);

    	KeyRates(false,&gKeyP1, &gKeyP2, &gKeyP3, &gKeyP4);
	    KeyRates(true, &gKeyP1, &newKeyP2, &gKeyP3, &newKeyP4);

      handled = true;
    } else if (event->eType == frmCloseEvent) {
      // this is done if program is closed
      LocalID dbID;
      UInt16 cardNo;
      DmOpenDatabaseInfo(DatabaseGetRefN(DB_MAIN), &dbID, NULL, NULL, &cardNo, NULL);
      SysNotifyUnregister(cardNo, dbID, sysNotifyLateWakeupEvent, sysNotifyNormalPriority);
      // Restore original key rates
	    KeyRates(true, &gKeyP1, &gKeyP2, &gKeyP3, &gKeyP4);
    }

  return (handled);
}