Example #1
0
void open_menu_renderer(struct menu_renderer *self, struct menu *menu)
{
	static const struct menu_observer_ops menu_observer_ops = {
		.on_focus_in = menu_renderer_on_focus_in,
		.on_focus_out = menu_renderer_on_focus_out,
	};
	struct menu_iterator iter;
	self->menu = menu;
	setup_menu_iterator(&iter, menu);
	while (menu_iterator_has_next(&iter)) {
		struct menu_entry *entry = menu_iterator_next(&iter);
		entry->cookie = b6_allocate(&b6_std_allocator,
					    sizeof(struct menu_entry_renderer));
	}
	initialize_menu_renderer_entries(self);
	setup_menu_observer(&self->menu_observer, &menu_observer_ops);
	add_menu_observer(self->menu, &self->menu_observer);
	menu_renderer_on_focus_in(&self->menu_observer);
}
Example #2
0
int initialize_menu_mixer(struct menu_mixer *self, struct menu *menu,
			  const char *skin, struct mixer *mixer)
{
	static struct menu_observer_ops ops = {};
	struct istream *is;
	struct data_entry *data;
	self->menu = menu;
	self->mixer = mixer;
	self->music = 0;
	if ((data = lookup_data(skin, audio_data_type, "menu.music")) &&
	    (is = get_data(data))) {
		int retval = mixer->ops->load_music_from_stream(mixer, is);
		if (!retval) {
			play_music(mixer);
			self->music = 1;
		} else
			log_w(_s("could not load background music"));
		put_data(data, is);
	} else
		log_w(_s("cannot find background music"));
	add_menu_observer(self->menu,
			  setup_menu_observer(&self->menu_observer, &ops));
	return 0;
}