Thankyou and many thanks.
is 'code 1' the code resource of the total compiled desk accessory or can the 
function (notif handler) be compiled seperatly and used instead.
Also from this it would appear that the locked function needs to remain in 
either storage or dynamic heap after application close, until either 
unregistered or reset. Surley it would be
more econimcal to supply an offset to the function from the start of the 
database thats passed, and for the notif manger to be responsible for locking 
the database during calls to the function?
much appreciated
regards
Darren

--- On Sat, 27/9/08, Jan Slodicka <[EMAIL PROTECTED]> wrote:

From: Jan Slodicka <[EMAIL PROTECTED]>
Subject: Re: Notifications, help please
To: "Palm Developer Forum" <[email protected]>
Date: Saturday, 27 September, 2008, 10:25 PM


 


Hi Darren,
 
we use the code bellow. Just supply your definition for appFileCreator.
 
The function (proc) is supposed to be in the 1st segment.
 
Have a nice day.
 
With best regards,
    Jan Slodicka
    Resco, Palm Division

 
 
static int RegisterProcedureNotification( Boolean bRegister, UInt32 notifyType, 
           SysNotifyProcPtr proc, void *data, Int8 priority)
{
 LocalID dbID = FindDatabaseByTypeCreator('appl', appFileCreator) ;
 int err = dmErrCantFind ;
 
 if( dbID )
 {
  DmOpenRef dbRef = DmOpenDBNoOverlay(0, dbID, dmModeReadOnly) ;
  if( dbRef )
  {
   MemHandle h = DmGetResource('code',1) ;
   if( h )
   {
    if( bRegister )
    {
     MemHandleLock(h) ;
     
     err = DmDatabaseProtect(0, dbID, true) ;
     if( err == 0 )
     {
      err = SysNotifyRegister(0, dbID, notifyType, proc, priority, data) ;
      if( err )
       DmDatabaseProtect(0, dbID, false) ;
     }
     
     if( err )
      MemHandleUnlock(h) ;
    }
    else
    {
     // Unprotect & Unlock only if we *really* were registered...
     err = SysNotifyUnregister(0, dbID, notifyType, priority) ;
     if( err == 0 )
     {
      MemHandleUnlock(h) ;
      DmDatabaseProtect(0, dbID, false) ;
     }
    }
    
    DmReleaseResource(h) ;
   }
   DmCloseDatabase(dbRef) ;
  }
 }
 
 return err ;
}

 
 

----- Original Message ----- 
From: Darren Barnes 
To: Palm Developer Forum 
Sent: Saturday, September 27, 2008 11:31 AM
Subject: Notifications, help please






Helloam using notifications 
:sysNotifySleepNotifyEventsysNotifyEarlyWakeupEventsysNotifyGotUsersAttentionto 
try and detect when the device is woken up using a keypress(user) or an 
alarm(system), so that the auto-off timer can be automaticaly set totimes that 
will conserve battery power.The notifications for sleep & wake are registered 
or unregistered depending ona selection made from a desk accessory, (this means 
passing a pointer to
 a functionfor the notifs handlers as there is no PilotMain in a desk 
accessory).The sysNotifyGotUsersAttention notif is registered in the sleep 
notif handler, so that if the device wakes with an alarm sysAutoOff can be set 
to a few secs.Anyway, the functions work well for the first alarm but on 
following alarms (if repeat alarms are set)it resets.Reading the SDK 
documention, there is advice there about locking a function pointer,how is this 
done ? Is the pointer that is passed to the sysNotifyRegister a pointer to an 
abosulte address inthe storage heap, or is it a pointer that is an offset from 
the start of the database
 thatspassed?Any help please, many thanks and regardsDarren  
-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/
-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/


      
-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to