INLINE emu_timer *_timer_alloc_common(timer_fired_func callback, void *ptr, const char *file, int line, const char *func, int temp) { attotime time = get_current_time(); emu_timer *timer = timer_new(); /* fill in the record */ timer->callback = callback; timer->ptr = ptr; timer->param = 0; timer->enabled = FALSE; timer->temporary = temp; timer->period = attotime_zero; timer->file = file; timer->line = line; timer->func = func; /* compute the time of the next firing and insert into the list */ timer->start = time; timer->expire = attotime_never; timer_list_insert(timer); /* if we're not temporary, register ourselves with the save state system */ if (!temp) { timer_register_save(timer); restrack_register_object(OBJTYPE_TIMER, timer, 0, file, line); } /* return a handle */ return timer; }
astring *auto_astring_alloc_file_line(const char *file, int line) { return restrack_register_object(OBJTYPE_ASTRING, astring_alloc(), 0, file, line); }
bitmap_t *auto_bitmap_alloc_file_line(int width, int height, bitmap_format format, const char *file, int line) { return restrack_register_object(OBJTYPE_BITMAP, bitmap_alloc(width, height, format), width * height, file, line); }
astring *auto_astring_alloc_file_line(running_machine *machine, const char *file, int line) { return (astring *)restrack_register_object(OBJTYPE_ASTRING, astring_alloc(), 0, file, line); }