void psnd_read_colormap(FILE *infile, int ncolors) { int i,r,g,b; G_PALETTEENTRY pal; char buf[PSND_STRLEN+1]; g_set_palettesize(ncolors); while (fgets(buf, PSND_STRLEN, infile) != NULL) { char *p; char sep[] = " \r\n\t"; if (buf[0] == '#') continue; strupr(buf); p= strtok(buf, sep); if (p) { if (strcmp(p, "PALETTE_END") == 0) { break; } else { i = psnd_scan_integer(p); p = strtok(NULL, sep); if (i > 0 && i <= ncolors && p) { r = psnd_scan_integer(p); p = strtok(NULL, sep); if (r >= 0 && r <= 255 && p) { g = psnd_scan_integer(p); p = strtok(NULL, sep); if (g >= 0 && g <= 255 && p) { b = psnd_scan_integer(p); if (b >= 0 && b <= 255) { pal.r = r; pal.g = g; pal.b = b; g_set_paletteentry(i-1, pal); } } } } } } } }
static void integrate1d_callback(G_POPUP_CHILDINFO *ci) { MBLOCK *mblk = (MBLOCK*) ci->userdata; POPUP_INFO *popinf = mblk->popinf + POP_INT1D; static G_EVENT ui; switch (ci->type) { case G_CHILD_OK: /* psnd_integrate1d(mblk, mblk->int1dinf->left, mblk->int1dinf->right); */ case G_CHILD_CANCEL: popinf->visible = FALSE; kill_integrals(mblk); ui.event = G_COMMAND; ui.win_id = mblk->info->win_id; ui.keycode = PSND_PL; g_send_event(&ui); return; } switch (ci->id) { case INT1D_LEFT: mblk->int1dinf->left = psnd_scan_integer(ci->label); mblk->int1dinf->left = max(mblk->int1dinf->left, 1); mblk->int1dinf->left = min(mblk->int1dinf->left, DAT->isize); break; case INT1D_RIGHT: mblk->int1dinf->right = psnd_scan_integer(ci->label); mblk->int1dinf->right = max(mblk->int1dinf->right, 1); mblk->int1dinf->right = min(mblk->int1dinf->right, DAT->isize); break; case INT1D_MOUSE: psnd_set_cursormode(mblk, 0, MOUSE_INTEGRATION); break; case INT1D_NOISE: psnd_rmsnoise(mblk, mblk->int1dinf->left, mblk->int1dinf->right, 1, 1); break; case INT1D_INTEGRAL: psnd_integrate1d(mblk, mblk->int1dinf->left, mblk->int1dinf->right); break; case INT1D_PRINT: print_integrals(mblk,NULL); break; case INT1D_WRITE: write_integrals(mblk); break; case INT1D_RESET: kill_integrals(mblk); ui.event = G_COMMAND; ui.win_id = mblk->info->win_id; ui.keycode = PSND_PL; g_send_event(&ui); break; } }