Example #1
0
File: disk.c Project: asqz/tagger
static int disk_uninit (disk_t* disk)
{
   int err = ERR_OK;
   
   uint32 i = 0;
   uint32 ntracks = ptrvec_get_count(disk->tracks);
   uint32 ntags = ptrvec_get_count(disk->tags);
   uint32 npicts = ptrvec_get_count(disk->picts);

   for (i = 0; i < npicts; ++i)
   {
      pict_t* pic = (pict_t*)ptrvec_get_item(disk->picts, i);
      err = pict_delete(pic);
   }

   for (i = 0; i < ntags; ++i)
   {
      tag_t* tag = (tag_t*)ptrvec_get_item(disk->tags, i);
      err = tag_delete(tag);
   }

   for (i = 0; i < ntracks; ++i)
   {
      track_t* track = (track_t*)ptrvec_get_item(disk->tracks, i);
      err = track_delete(track);
   }

   err = ptrvec_delete(disk->picts);
   err = ptrvec_delete(disk->tags);
   err = ptrvec_delete(disk->tracks);

   free(disk->fname);

   return err;
}
Example #2
0
	static void
flytec_delete(flytec_t *flytec)
{
	if (flytec) {
		snp_delete(flytec->snp);
		if (flytec->trackv) {
			track_t **track;
			for (track = flytec->trackv; *track; ++track)
				track_delete(*track);
			free(flytec->trackv);
		}
		if (close(flytec->fd) == -1)
			DIE("close", errno);
		free(flytec->pilot_name);
		free(flytec);
	}
}
Example #3
0
	static track_t *
track_new(const char *p)
{
	track_t *track = xmalloc(sizeof(track_t));
	memset(track, 0, sizeof *track);
	p = match_literal(p, "PBRTL,");
	p = match_unsigned(p, &track->count);
	p = match_char(p, ',');
	p = match_unsigned(p, &track->index);
	p = match_char(p, ',');
	struct tm tm;
	memset(&tm, 0, sizeof tm);
	p = match_unsigned(p, &tm.tm_mday);
	p = match_char(p, '.');
	p = match_unsigned(p, &tm.tm_mon);
	p = match_char(p, '.');
	p = match_unsigned(p, &tm.tm_year);
	p = match_char(p, ',');
	p = match_unsigned(p, &tm.tm_hour);
	p = match_char(p, ':');
	p = match_unsigned(p, &tm.tm_min);
	p = match_char(p, ':');
	p = match_unsigned(p, &tm.tm_sec);
	p = match_char(p, ',');
	int duration_hour = 0, duration_min = 0, duration_sec = 0;
	p = match_unsigned(p, &duration_hour);
	p = match_char(p, ':');
	p = match_unsigned(p, &duration_min);
	p = match_char(p, ':');
	p = match_unsigned(p, &duration_sec);
	p = match_eos(p);
	if (!p) {
		track_delete(track);
		return 0;
	}
	tm.tm_mon -= 1;
	tm.tm_year += 2000 - 1900;
	track->date = DATE_NEW(tm);
	track->time = mktime(&tm);
	if (track->time == (time_t) -1)
		DIE("mktime", errno);
	track->duration = 3600 * duration_hour + 60 * duration_min + duration_sec;
	return track;
}
Example #4
0
File: cd.c Project: RobertAudi/mpfc
void cd_delete(struct Cd* cd)
{
	int i = 0;

	if (cd != NULL)
	{
		free(cd->catalog);

		free(cd->cdtextfile);

		for (i = 0; i < cd->ntrack; i++)
			track_delete(cd->track[i]);

		cdtext_delete(cd_get_cdtext(cd));

		rem_free(cd_get_rem(cd));

		free(cd);
	}
}
Example #5
0
/**
 *
 *  rct2: 0x006D3823
 */
static void window_track_delete_prompt_mouseup()
{
	rct_window *w;
	short widgetIndex;

	window_widget_get_registers(w, widgetIndex);

	switch (widgetIndex) {
	case WIDX_CLOSE:
	case WIDX_PROMPT_CANCEL:
		window_close(w);
		break;
	case WIDX_PROMPT_DELETE:
		window_close(w);
		if (track_delete())
			window_close_by_class(WC_MANAGE_TRACK_DESIGN);
		else
			window_error_open(STR_CANT_DELETE_TRACK_DESIGN, RCT2_GLOBAL(RCT2_ADDRESS_GAME_COMMAND_ERROR_TEXT, uint16));
		break;
	}
}