⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xaddop.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 2 页
字号:
                             XV_WIDTH, 431,                             XV_HEIGHT, WIN_EXTEND_TO_EDGE,                             WIN_BORDER, TRUE,                             NULL);  varlist = xv_create(lpanel, PANEL_LIST,                      XV_X, 16,                      XV_Y, 8,                      PANEL_LIST_WIDTH, 175,                      PANEL_LIST_DISPLAY_ROWS, 7,                      PANEL_LABEL_STRING, savestring("Global Variables:"),                      PANEL_LAYOUT, PANEL_VERTICAL,                      PANEL_READ_ONLY, TRUE,                      PANEL_CHOOSE_ONE, TRUE,                      PANEL_CHOOSE_NONE, TRUE,                      PANEL_NOTIFY_PROC, insert_var,                      NULL);  for (i=0; params->global_vars[i] != NULL; i++)   {    xv_set(varlist,            PANEL_LIST_STRING, i, savestring(params->global_vars[i]),           NULL);  }  varlist = xv_create(lpanel, PANEL_LIST,                      XV_X, 224,                      XV_Y, 8,                      PANEL_LIST_WIDTH, 175,                      PANEL_LIST_DISPLAY_ROWS, 7,                      PANEL_LABEL_STRING, savestring("View-Specific Variables:"),                      PANEL_LAYOUT, PANEL_VERTICAL,                      PANEL_READ_ONLY, TRUE,                      PANEL_CHOOSE_ONE, TRUE,                      PANEL_CHOOSE_NONE, TRUE,                      PANEL_NOTIFY_PROC, insert_var,                      NULL);  for (i=0; params->view_vars[i] != NULL; i++)   {    xv_set(varlist,            PANEL_LIST_STRING, i, savestring(params->view_vars[i]),           NULL);  }  rpanel = (Panel) xv_create(vars_win, PANEL,                             XV_X, (int)xv_get(lpanel, XV_X) +                                   (int)xv_get(lpanel, XV_WIDTH) + 2,                             XV_Y, 0,                             XV_WIDTH, WIN_EXTEND_TO_EDGE,                             XV_HEIGHT, WIN_EXTEND_TO_EDGE,                             WIN_BORDER, TRUE,                             NULL);  (void) xv_create(rpanel, PANEL_MESSAGE,                   XV_X, 24,                  XV_Y, 24,                  PANEL_LABEL_STRING, savestring("Output Files:"),                  PANEL_LABEL_BOLD, TRUE,                  NULL);  (void) xv_create(rpanel, PANEL_BUTTON,                   XV_X, 24,                   XV_Y, 54,                   PANEL_LABEL_STRING,                          savestring("Output File (display graphics)"),                   PANEL_NOTIFY_PROC, insert_gOut,                   NULL);  gOutExt = xv_create(rpanel, PANEL_TEXT,                      XV_X, 237,                      XV_Y, 58,                      PANEL_VALUE_DISPLAY_LENGTH, 8,                      PANEL_VALUE_STORED_LENGTH, 80,                      PANEL_LABEL_STRING, savestring(".ext:"),                      PANEL_VALUE, "out",                      PANEL_LAYOUT, PANEL_HORIZONTAL,                      PANEL_READ_ONLY, FALSE,                      NULL);  (void) xv_create(rpanel, PANEL_BUTTON,                   XV_X, 24,                   XV_Y, 93,                   PANEL_LABEL_STRING, savestring("Output File (display text)"),                   PANEL_NOTIFY_PROC, insert_tOut,                    NULL);  tOutExt = xv_create(rpanel, PANEL_TEXT,                      XV_X, 237,                      XV_Y, 97,                      PANEL_VALUE_DISPLAY_LENGTH, 8,                      PANEL_VALUE_STORED_LENGTH, 80,                      PANEL_LABEL_STRING, savestring(".ext:"),                      PANEL_VALUE, "out",                      PANEL_LAYOUT, PANEL_HORIZONTAL,                      PANEL_READ_ONLY, FALSE,                      NULL);    (void) xv_create(rpanel, PANEL_BUTTON,                   XV_X, 24,                   XV_Y, 132,                   PANEL_LABEL_STRING,                    savestring("Output File (don't display)"),                   PANEL_NOTIFY_PROC, insert_nOut,                    NULL);  nOutExt = xv_create(rpanel, PANEL_TEXT,                      XV_X, 237,                      XV_Y, 136,                      PANEL_VALUE_DISPLAY_LENGTH, 8,                      PANEL_VALUE_STORED_LENGTH, 80,                      PANEL_LABEL_STRING, savestring(".ext:"),                      PANEL_VALUE, "out",                      PANEL_LAYOUT, PANEL_HORIZONTAL,                      PANEL_READ_ONLY, FALSE,                      NULL);}/*quit_proc(item)*/static voiddismiss_proc(item)Panel_item item;{  /* erase text to avoid popup asking about discarding edits */  textsw_reset(textwin, 0,0);  xv_set(addop_win, XV_SHOW, FALSE, NULL);/*  dt_xv_destroy_safe(4,addop_win);*/  xv_set(vars_win, FRAME_CMD_PUSHPIN_IN, FALSE, NULL);  xv_set(vars_win, XV_SHOW, FALSE, NULL);   xv_set(ops_win, FRAME_CMD_PUSHPIN_IN, FALSE, NULL);   xv_set(ops_win, XV_SHOW, FALSE, NULL);/*  addop_win = NULL;  vars_win = ops_win = NULL;*/}static void show_ops(item, event)Panel_item      item;Event           *event;{  int ax, ay;  int oh = xv_get(ops_win, XV_HEIGHT);  if (xv_get(ops_win, XV_SHOW) == TRUE)     return;  if (debug_level)    Fprintf(stderr, "Pop up operations panel.\n");  if ((Gparams->ops_x_pos >= 0) && (Gparams->ops_y_pos >= 0))   {        xv_set(ops_win,            XV_X, Gparams->ops_x_pos,           XV_Y, Gparams->ops_y_pos,           NULL);  }  else   {    int oy;    if (Gparams->owner == XV_NULL)      {      ax = xv_get(addop_win, XV_X);      ay = xv_get(addop_win, XV_Y);    }    else     {      ax = xv_get(xv_get(addop_win, XV_OWNER), XV_X)        + xv_get(addop_win, XV_X);                  ay = xv_get(xv_get(addop_win, XV_OWNER), XV_Y)        + xv_get(addop_win, XV_Y);    }        oy = ay - oh - 50;  /* subtract two window title bars */    if (debug_level > 1)       Fprintf(stderr, "ax = %d, ay = %d, oh = %d, oy = %d\n",               ax, ay, oh, oy);    if (oy > 0)       xv_set(ops_win,             XV_X, ax,             XV_Y, oy,             NULL);    else      xv_set(ops_win,             XV_X, ax,             NULL);        }  xv_set(ops_win, XV_SHOW, TRUE, NULL);}static void show_vars(item, event)Panel_item      item;Event           *event;{  int ax, ay;    int ah = xv_get(addop_win, XV_HEIGHT);  if (xv_get(vars_win, XV_SHOW) == TRUE)     return;  if (debug_level)    Fprintf(stderr, "Pop up variables panel.\n");    if ((Gparams->vars_x_pos >= 0) && (Gparams->vars_y_pos >= 0))   {    xv_set(vars_win,            XV_X, Gparams->vars_x_pos,           XV_Y, Gparams->vars_y_pos,           NULL);  }  else  {    if (Gparams->owner == XV_NULL)      {      ax = xv_get(addop_win, XV_X);      ay = xv_get(addop_win, XV_Y);    }    else     {      ax = xv_get(xv_get(addop_win, XV_OWNER), XV_X)        + xv_get(addop_win, XV_X);                  ay = xv_get(xv_get(addop_win, XV_OWNER), XV_Y)        + xv_get(addop_win, XV_Y);    }        if (debug_level > 1)       Fprintf(stderr, "ax = %d, ay = %d\n", ax, ay);    xv_set(vars_win,           XV_X, ax,           XV_Y, ay + ah,           NULL);  }  xv_set(vars_win, XV_SHOW, TRUE, NULL);}static void insert_var(item, string, client_data, op, event, row)Panel_item      item;char            *string;Xv_opaque       client_data;Panel_list_op   op;Event           *event;int             row;{  char *insert;  if (op != 1) /* only operate on select */    return;  insert = (char *)malloc(strlen(string) + 5);    sprintf(insert, "_%s ", string);  if (debug_level)    Fprintf(stderr, "Inserting var string: %s\n", insert);  textsw_insert(textwin, insert, strlen(string) + 2);}static void insert_op(item, string, client_data, op, event, row)Panel_item      item;char            *string;Xv_opaque       client_data;Panel_list_op   op;Event           *event;int             row;{  char *insert;  int obtype = xv_get(objNameType, PANEL_VALUE);  if (op != 1) /* only operate on select */    return;  if (obtype == 0)   {    insert = (char *) malloc(strlen(string) + 10);        sprintf(insert, "#%s ", string);  }  else if (obtype == 1)  {    insert = (char *) malloc(strlen("_name") + strlen(string) + 10);        sprintf(insert, "#_name %s ", string);  }  else   {    char *objname = (char *) xv_get(objNameStr, PANEL_VALUE);    insert = (char *) malloc(strlen(objname) + strlen(string) + 10);        sprintf(insert, "#%s %s ", objname, string);  }  if (debug_level)    Fprintf(stderr, "Inserting %s\n", insert);  textsw_insert(textwin, insert, strlen(insert));  free(insert);  /* rewrite the op attributes */  revise_op_attr(string);}static void revise_op_attr(operation) char *operation;{  static int last_attr = 0; /* row number of last attribute */  int i;  char **new_attr = NULL;    xv_set(attrlist, XV_SHOW, FALSE, NULL);  for (i = last_attr; i > 0; i--)   {    xv_set(attrlist, PANEL_LIST_DELETE, i, NULL);  }    if (Gparams->get_attr_list != NULL)   {    if((new_attr = (Gparams->get_attr_list)(operation))) {            for (last_attr=0; new_attr[last_attr] != NULL; last_attr++) 	{	  xv_set(attrlist, 		 PANEL_LIST_STRING, last_attr, savestring(new_attr[last_attr]),		 NULL);	}    }    xv_set(attrlist, XV_SHOW, TRUE, NULL);    free_string_list(new_attr);  }}static void insert_attr(item, string, client_data, op, event, row)Panel_item      item;char            *string;Xv_opaque       client_data;Panel_list_op   op;Event           *event;int             row;{  char *insert;  if (op != 1) /* only operate on select */    return;  insert = (char *)malloc(strlen(string) + 5);    sprintf(insert, "%s ", string);  if (debug_level)    Fprintf(stderr, "Inserting attribute string: %s\n", insert);  textsw_insert(textwin, insert, strlen(string) + 1);}static void insert_gOut(item, event)Panel_item      item;Event           *event;{  char *base = "out.g.";  char *ext = (char *) xv_get(gOutExt, PANEL_VALUE);  char *insert = (char *) malloc(strlen(base) + strlen(ext) + 10);  sprintf(insert, "_%s%s ", base, ext);  if (debug_level)    Fprintf(stderr, "Inserting %s\n", insert);    textsw_insert(textwin, insert, strlen(insert));}static void insert_tOut(item, event)Panel_item      item;Event           *event;{  char *base = "out.t.";  char *ext = (char *) xv_get(tOutExt, PANEL_VALUE);  char *insert = (char *) malloc(strlen(base) + strlen(ext) + 10);  sprintf(insert, "_%s%s ", base, ext);  if (debug_level)    Fprintf(stderr, "Inserting %s\n", insert);    textsw_insert(textwin, insert, strlen(insert));}static void insert_nOut(item, event)Panel_item      item;Event           *event;{  char *base = "out.n.";  char *ext = (char *) xv_get(gOutExt, PANEL_VALUE);  char *insert = (char *) malloc(strlen(base) + strlen(ext) + 10);  sprintf(insert, "_%s%s ", base, ext);  if (debug_level)    Fprintf(stderr, "Inserting %s\n", insert);    textsw_insert(textwin, insert, strlen(insert));}static void apply_addop(item, event)Panel_item      item;Event           *event;{  char *menu;  int menu_type = xv_get(windows, PANEL_VALUE);  int ncom_char = xv_get(textwin, TEXTSW_LENGTH);  char *command = (char *)malloc(ncom_char + 10);  char *op = (char *) xv_get(opName, PANEL_VALUE);  char *full_command;  if (ncom_char == 0)   {    (void) notice_prompt(addop_win, (Event *) NULL,			 NOTICE_BLOCK_THREAD, FALSE,                         NOTICE_MESSAGE_STRINGS,                          savestring("The command window has nothing in it!"),                         NULL,/*                         NOTICE_FOCUS_XY, xv_get(addop_win, XV_X),                                          xv_get(addop_win, XV_Y),*/                         NOTICE_BUTTON_YES,      "Continue",                          NULL);    return;  }    if (strlen(op) == 0)   {    (void) notice_prompt(addop_win, (Event *) NULL,			 NOTICE_BLOCK_THREAD, FALSE,                         NOTICE_MESSAGE_STRINGS,                          savestring("There's no operation name!"),                         NULL,/*                         NOTICE_FOCUS_XY, xv_get(addop_win, XV_X),                                          xv_get(addop_win, XV_Y),*/                         NOTICE_BUTTON_YES,      "Continue",                         NULL);    return;  }  if(debug_level)    Fprintf(stderr, "menu_type = %d\n", menu_type);  switch(menu_type)   {  case 0: /* none (not on a menu) */       menu = "none";     break;  case 1: /* waveform only */    menu = "wave";    break;  case 2: /* image only */    menu = "spect";    break;  case 3:    menu = "all";    break;  }    if ((Textsw_index) xv_get(textwin, TEXTSW_CONTENTS, 0, command, ncom_char)       != ncom_char)  {    Fprintf(stderr, "Error getting textsw contents.\n");  }  else     command[ncom_char] = '\0';    full_command = (char *) malloc(ncom_char + strlen(op) + 100);    if (strchr(op, ' ') == NULL)     sprintf(full_command, "%add_op name %s menu %s command %s\n",             op, menu, command);  else    sprintf(full_command, "%add_op name \"%s\" menu %s command %s\n",             op, menu, command);  if (debug_level)     Fprintf(stderr, "Applying the command:\n%s\n", full_command);  if (Gparams->apply_add_op)   {    if (Gparams->apply_add_op(full_command) != 1)      (void) notice_prompt(addop_win, (Event *) NULL,			   NOTICE_BLOCK_THREAD, FALSE,                           NOTICE_MESSAGE_STRINGS,                            savestring("add_op failed."),                           NULL,/*                           NOTICE_FOCUS_XY, xv_get(addop_win, XV_X),                                            xv_get(addop_win, XV_Y),*/                           NOTICE_BUTTON_YES,      "Continue",                           NULL);  }  free(full_command);  free(command);}static void add_op_help(item, event)Panel_item      item;Event           *event;{  if (debug_level)    Fprintf(stderr, "Getting help.\n");  exv_make_text_window(addop_win,                        "Help for add_op op", "Help", helpfile, 1, 0);}static void select_object_name(item, value, event)Panel_item      item;int             value;Event           *event;{  if (value < 2)  {    xv_set(objNameStr, PANEL_INACTIVE, TRUE, NULL);  }  else  {    xv_set(objNameStr, PANEL_INACTIVE, FALSE, NULL);  }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -