static void errorscreen_free(ErrorScreen *error) {
	if (error == NULL)
		return;

	button_free(error->quit);

	text_osd_free(error->message);
	rect_osd_free(error->background);

	screen_free(error->screen);

	g_free(error);
}
Exemple #2
0
void interface_free(struct twinterface *twinterface)
{
    button_free(twinterface->btn_play);
    button_free(twinterface->btn_reverse);
    button_free(twinterface->btn_deck);
    button_free(twinterface->btn_touch_mode);
    fader_free(twinterface->fader);
    closeup_free(twinterface->closeup);
    overview_free(twinterface->overview);
    
    //label_free(twinterface->label_pitch);
    
    SDL_FreeSurface(twinterface->surface);
    SDL_DestroyTexture(twinterface->texture);
    
    SDL_DestroyRenderer(twinterface->renderer);
    SDL_DestroyWindow(twinterface->window);
    SDL_RemoveTimer(twinterface->timer);
    
    free(twinterface);
    
    SDL_Quit();    
}
Exemple #3
0
static void manager_free(Manager *m) {
        Session *session;
        User *u;
        Device *d;
        Seat *s;
        Inhibitor *i;
        Button *b;

        assert(m);

        while ((session = hashmap_first(m->sessions)))
                session_free(session);

        while ((u = hashmap_first(m->users)))
                user_free(u);

        while ((d = hashmap_first(m->devices)))
                device_free(d);

        while ((s = hashmap_first(m->seats)))
                seat_free(s);

        while ((i = hashmap_first(m->inhibitors)))
                inhibitor_free(i);

        while ((b = hashmap_first(m->buttons)))
                button_free(b);

        hashmap_free(m->devices);
        hashmap_free(m->seats);
        hashmap_free(m->sessions);
        hashmap_free(m->users);
        hashmap_free(m->inhibitors);
        hashmap_free(m->buttons);

        hashmap_free(m->user_units);
        hashmap_free(m->session_units);

        sd_event_source_unref(m->idle_action_event_source);
        sd_event_source_unref(m->inhibit_timeout_source);
        sd_event_source_unref(m->scheduled_shutdown_timeout_source);
        sd_event_source_unref(m->nologin_timeout_source);
        sd_event_source_unref(m->wall_message_timeout_source);

        sd_event_source_unref(m->console_active_event_source);
        sd_event_source_unref(m->udev_seat_event_source);
        sd_event_source_unref(m->udev_device_event_source);
        sd_event_source_unref(m->udev_vcsa_event_source);
        sd_event_source_unref(m->udev_button_event_source);
        sd_event_source_unref(m->lid_switch_ignore_event_source);

        safe_close(m->console_active_fd);

        udev_monitor_unref(m->udev_seat_monitor);
        udev_monitor_unref(m->udev_device_monitor);
        udev_monitor_unref(m->udev_vcsa_monitor);
        udev_monitor_unref(m->udev_button_monitor);

        udev_unref(m->udev);

        if (m->unlink_nologin)
                (void) unlink("/run/nologin");

        bus_verify_polkit_async_registry_free(m->polkit_registry);

        sd_bus_unref(m->bus);
        sd_event_unref(m->event);

        safe_close(m->reserve_vt_fd);

        strv_free(m->kill_only_users);
        strv_free(m->kill_exclude_users);

        free(m->scheduled_shutdown_type);
        free(m->scheduled_shutdown_tty);
        free(m->wall_message);
        free(m->action_job);
        free(m);
}
Exemple #4
0
void cleanup_angband(void)
{
	int i;

    delete_notes_file();

	/* Free the macros */
	macro_free();

	/* Free the macro triggers */
	macro_trigger_free();

	/* Free the allocation tables */
	FREE(alloc_ego_table);
	FREE(alloc_feat_table);
	FREE(alloc_race_table);
	FREE(alloc_kind_table);

	if (store)
	{
		/* Free the store inventories */
		for (i = 0; i < MAX_STORES; i++)
		{
			/* Get the store */
			store_type *st_ptr = &store[i];

			/* Free the store inventory */
			FREE(st_ptr->stock);
		}
	}

	/* Free the stores */
	FREE(store);

	event_remove_all_handlers();

	/* free the buttons */
	button_free();

	/* Free the player inventory */
	FREE(inventory);

	/*Clean the Autoinscribe*/
	autoinscribe_clean();

	/* Free the lore, monster, effects, and object lists */
	FREE(l_list);
	FREE(f_l_list);
	FREE(a_l_list);
	FREE(mon_list);
	FREE(o_list);
	FREE(x_list);

#ifdef MONSTER_SMELL

	/* Flow arrays */
	FREE(cave_when);

#endif /* MONSTER_SMELL */

	/* Free the cave */
	FREE(cave_o_idx);
	FREE(cave_m_idx);
	FREE(cave_x_idx);
	FREE(cave_feat);
	FREE(cave_info);

	/* Prepare monster movement array*/
	FREE(mon_moment_info);

	/* Free the "update_view()" array */
	FREE(view_g);

	/* Free the other "update_view()" array */
	FREE(fire_g);

	/* Free the temp array */
	FREE(temp_g);
	FREE(temp_y);
	FREE(temp_x);

	/* Free the dynamic features array */
	FREE(dyna_g);

	/* Free the stacked monster messages */
	FREE(mon_msg);
	FREE(mon_message_hist);

	/* Free the messages */
	messages_free();

	/* Free the "quarks" */
	quarks_free();

	/*free the randart arrays*/
	free_randart_tables();

	/* Free the info, name, and text arrays */
	free_info(&flavor_head);
	free_info(&g_head);
	free_info(&b_head);
	free_info(&c_head);
	free_info(&p_head);
	free_info(&h_head);
	free_info(&v_head);
	free_info(&r_head);
	free_info(&e_head);
	free_info(&a_head);
	free_info(&k_head);
	free_info(&t_head);
	free_info(&f_head);
	free_info(&z_head);
	free_info(&n_head);

	/* Free the format() buffer */
	vformat_kill();

	/* Free the directories */
	string_free(ANGBAND_DIR);
	string_free(ANGBAND_DIR_APEX);
	string_free(ANGBAND_DIR_BONE);
	string_free(ANGBAND_DIR_DATA);
	string_free(ANGBAND_DIR_EDIT);
	string_free(ANGBAND_DIR_FILE);
	string_free(ANGBAND_DIR_HELP);
	string_free(ANGBAND_DIR_INFO);
	string_free(ANGBAND_DIR_SAVE);
	string_free(ANGBAND_DIR_PREF);
	string_free(ANGBAND_DIR_USER);
	string_free(ANGBAND_DIR_XTRA);
}
Exemple #5
0
void manager_free(Manager *m) {
        Session *session;
        User *u;
        Device *d;
        Seat *s;
        Inhibitor *i;
        Button *b;

        assert(m);

        while ((session = hashmap_first(m->sessions)))
                session_free(session);

        while ((u = hashmap_first(m->users)))
                user_free(u);

        while ((d = hashmap_first(m->devices)))
                device_free(d);

        while ((s = hashmap_first(m->seats)))
                seat_free(s);

        while ((i = hashmap_first(m->inhibitors)))
                inhibitor_free(i);

        while ((b = hashmap_first(m->buttons)))
                button_free(b);

        hashmap_free(m->devices);
        hashmap_free(m->seats);
        hashmap_free(m->sessions);
        hashmap_free(m->users);
        hashmap_free(m->inhibitors);
        hashmap_free(m->buttons);

        hashmap_free(m->user_units);
        hashmap_free(m->session_units);

        set_free_free(m->busnames);

        sd_event_source_unref(m->idle_action_event_source);

        sd_event_source_unref(m->console_active_event_source);
        sd_event_source_unref(m->udev_seat_event_source);
        sd_event_source_unref(m->udev_device_event_source);
        sd_event_source_unref(m->udev_vcsa_event_source);
        sd_event_source_unref(m->udev_button_event_source);
        sd_event_source_unref(m->lid_switch_ignore_event_source);

        safe_close(m->console_active_fd);

        if (m->udev_seat_monitor)
                udev_monitor_unref(m->udev_seat_monitor);
        if (m->udev_device_monitor)
                udev_monitor_unref(m->udev_device_monitor);
        if (m->udev_vcsa_monitor)
                udev_monitor_unref(m->udev_vcsa_monitor);
        if (m->udev_button_monitor)
                udev_monitor_unref(m->udev_button_monitor);

        if (m->udev)
                udev_unref(m->udev);

        bus_verify_polkit_async_registry_free(m->bus, m->polkit_registry);

        sd_bus_unref(m->bus);
        sd_event_unref(m->event);

        safe_close(m->reserve_vt_fd);

        strv_free(m->kill_only_users);
        strv_free(m->kill_exclude_users);

        free(m->action_job);
        free(m);
}
Exemple #6
0
void interface_widgets_init(struct twinterface *twinterface)
{
    if(twinterface->overview)
        overview_free(twinterface->overview);
    twinterface->overview = overview_init(0,
                           0, 
                           100,
                           twinterface->viewport.h, 
                           &tracks[0],
                           twinterface->renderer,
                           twinterface);
                           
    interface_closeup_init(twinterface);    
                           
    if(twinterface->btn_play)
        button_free(twinterface->btn_play);
    twinterface->btn_play = button_init(twinterface->viewport.w-400,
                      twinterface->viewport.h-100, 
                      100, 
                      100, 
                      "button.bmp",
                      twinterface->renderer,
                      &interface_button_play_callback,
                      &interface_button_play_color_callback);

    if(twinterface->btn_reset)
        button_free(twinterface->btn_reset);
    twinterface->btn_reset = button_init(twinterface->viewport.w-300,
                      twinterface->viewport.h-100, 
                      100, 
                      100, 
                      "button.bmp",
                      twinterface->renderer,
                      &interface_button_reset_callback,
                      &interface_button_reset_color_callback);  

      
    if(twinterface->btn_reverse)
        button_free(twinterface->btn_reverse);
    twinterface->btn_reverse = button_init(twinterface->viewport.w-200,
                      twinterface->viewport.h-100, 
                      100, 
                      100, 
                      "button.bmp",
                      twinterface->renderer,
                      &interface_button_reverse_callback,
                      &interface_button_reverse_color_callback);                
                      
    if(twinterface->btn_deck)
        button_free(twinterface->btn_deck);
    twinterface->btn_deck = button_init(200,
                      twinterface->viewport.h-100, 
                      100, 
                      100, 
                      "button.bmp",
                      twinterface->renderer,
                      &interface_button_deck_callback,
                      &interface_button_deck_color_callback);
                      
    if(twinterface->btn_touch_mode)
        button_free(twinterface->btn_touch_mode);
    twinterface->btn_touch_mode = button_init(100,
                      twinterface->viewport.h-100, 
                      100, 
                      100, 
                      "button.bmp",
                      twinterface->renderer,
                      &interface_button_touch_mode_callback,
                      &interface_button_touch_mode_color_callback);

//    if(twinterface->label_pitch)
//        label_free(twinterface->label_pitch);
//    twinterface->label_pitch = label_init(twinterface->viewport.w-100,
//                      0,
//                      100,
//                      20,
//                      "",
//                      twinterface->renderer);
                      
    if(twinterface->fader)
        fader_free(twinterface->fader);                      
    twinterface->fader = fader_init(twinterface->viewport.w-100, 
                       twinterface->viewport.h/2-50, 
                       100, 
                       100, 
                       twinterface->viewport.h,
                       twinterface->renderer,
                       twinterface);
}