/*
- * Copyright (C) 1994-1998, Index Data
+ * Copyright (C) 1994-1999, Index Data
* All rights reserved.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: recctrl.c,v $
- * Revision 1.3 1998-10-16 08:14:36 adam
+ * Revision 1.5 1999-05-26 07:49:14 adam
+ * C++ compilation.
+ *
+ * Revision 1.4 1999/05/20 12:57:18 adam
+ * Implemented TCL filter. Updated recctrl system.
+ *
+ * Revision 1.3 1998/10/16 08:14:36 adam
* Updated record control system.
*
* Revision 1.2 1996/10/29 14:03:16 adam
RecType recType;
struct recTypeEntry *next;
int init_flag;
+ void *clientData;
};
struct recTypes {
for (rte = rts->entries; rte; rte = rte->next)
if (rte->init_flag)
- (*(rte->recType)->destroy)(rte->recType);
+ (*(rte->recType)->destroy)(rte->clientData);
}
void recTypes_add_handler (RecTypes rts, RecType rt)
{
struct recTypeEntry *rte;
- rte = nmem_malloc (data1_nmem_get (rts->dh), sizeof(*rte));
+ rte = (struct recTypeEntry *)
+ nmem_malloc (data1_nmem_get (rts->dh), sizeof(*rte));
rte->recType = rt;
rte->init_flag = 0;
+ rte->clientData = 0;
rte->next = rts->entries;
rts->entries = rte;
}
-RecType recType_byName (RecTypes rts, const char *name, char *subType)
+RecType recType_byName (RecTypes rts, const char *name, char *subType,
+ void **clientDataP)
{
struct recTypeEntry *rte;
char *p;
if (!rte->init_flag)
{
rte->init_flag = 1;
- (*(rte->recType)->init)(rte->recType);
+ rte->clientData =
+ (*(rte->recType)->init)(rte->recType);
}
+ *clientDataP = rte->clientData;
return rte->recType;
}
return 0;