/*****************************************************************************
 * 
 * name					: notify.c
 * description			: handle the notify intuition library
 * version				: 1.2
 *
 * created				: ?
 * last change			: 9-3-98
 *
 *****************************************************************************
 */
#include <libraries/notifyintuition.h>
#include <exec/memory.h>

#include <proto/exec.h>
#include <string.h>
#include <stdio.h>
#include "utils.h"


#define SCREEN "Workbench#?"

int startNotify(idWin * prj) {
  /* initialise notification
   */
  int ret = FALSE ;
  if ((prj->Notify->inr_Name  = AllocVec(sizeof(SCREEN), MEMF_PUBLIC)) != NULL) {
    if ((prj->notifyPort      = CreateMsgPort()) != NULL) {
      strcpy(prj->Notify->inr_Name, SCREEN) ;
      prj->Notify->inr_Flags         = INRF_SEND_MESSAGE|INRF_WAIT_REPLY|INRF_BEFORE_CLOSEWORKBENCH|INRF_AFTER_OPENWORKBENCH ;
      prj->Notify->inr_stuff.inr_Msg.inr_Port          = prj->notifyPort ;
      prj->Notify->inr_Pri           = 101 ;
      prj->Notify->inr_UniqueID      = 'MYCL' ;
      NotIStartNotify(prj->Notify) ;
      ret = TRUE ;
    }
  }
  return(ret) ;
}

void endNotify(idWin * prj) {
  /* terminate notifiaction
   */
  if (prj->Notify)           NotIEndNotify(prj->Notify) ;
  if (prj->notifyPort)       DeleteMsgPort(prj->notifyPort) ; 
  if (prj->Notify->inr_Name) FreeVec(prj->Notify->inr_Name) ;
}