Beispiel #1
0
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);
                            }
                        }
                    }
                }
            }
        }
    }
}
Beispiel #2
0
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;
    }
}