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

📄 popup.cc

📁 一个共享源码的音频库4
💻 CC
📖 第 1 页 / 共 2 页
字号:
   _text2 = XmCreateText(row, "Start Time", args, n);   XtManageChild(_text2);   n = 0;   XtSetArg(args[n], XmNcolumns, 10); n++;   XtSetArg(args[n], XmNmarginWidth, 2); n++;   _text3 = XmCreateText(row, "Stop Date", args, n);   XtManageChild(_text3);   n = 0;   XtSetArg(args[n], XmNcolumns, 10); n++;   XtSetArg(args[n], XmNmarginWidth, 2); n++;   _text4 = XmCreateText(row, "Stop Time", args, n);   XtManageChild(_text4);   n = 0;   XtSetArg(args[n], XmNcolumns, 10); n++;   XtSetArg(args[n], XmNmarginWidth, 2); n++;   _text5 = XmCreateText(row, "Each File Limit", args, n);   XtManageChild(_text5);   n = 0;   XtSetArg(args[n], XmNcolumns, 10); n++;   XtSetArg(args[n], XmNmarginWidth, 2); n++;   _text6 = XmCreateText(row, "Max File Limit", args, n);   XtManageChild(_text6);   n = 0;   file = XmCreatePushButtonGadget(row, "File", args, n);   XtAddCallback(file, XmNactivateCallback, popup_record_callback, shell);   XtManageChild(file);   n = 0;   place1 = XmCreateLabel(row, "", args, n);   XtManageChild(place1);   n = 0;   place2 = XmCreateLabel(row, "", args, n);   XtManageChild(place2);   n = 0;   place3 = XmCreateLabel(row, "", args, n);   XtManageChild(place3);   n = 0;   place4 = XmCreateLabel(row, "", args, n);   XtManageChild(place4);   n = 0;   place5 = XmCreateLabel(row, "", args, n);   XtManageChild(place5);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;   XtSetArg(args[n], XmNtopWidget, row); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNvisibleItemCount, 3); n++;   list1 = XmCreateScrolledList(form1, "List", args, n);   XtManageChild(row);   XtManageChild(list1);   XtManageChild(form1);   n = 0;   XtSetArg(args[n], XmNfractionBase, 4); n++;   form2 = XmCreateForm(pane, "Form2", args, n);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 0); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 1); n++;   close = XmCreatePushButtonGadget(form2, "Close", args, n);   XtAddCallback(close, XmNactivateCallback, popup_record_close, shell);   XtManageChild(close);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 1); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 2); n++;   edit = XmCreatePushButtonGadget(form2, "Edit", args, n);   XtAddCallback(edit, XmNactivateCallback, popup_record_edit, NULL);   XtManageChild(edit);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 2); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 3); n++;   delete1 = XmCreatePushButtonGadget(form2, "Delete", args, n);   XtAddCallback(delete1, XmNactivateCallback, popup_record_delete, NULL);   XtManageChild(delete1);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 3); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 4); n++;   add = XmCreatePushButtonGadget(form2, "Add", args, n);   XtAddCallback(add, XmNactivateCallback, popup_record_add, NULL);   XtManageChild(add);   XtManageChild(form2);   XtManageChild(pane);   XtPopup(shell, XtGrabNone);   _timer_record_mode = TRUE;   if (_recorder == NULL)   {      _recorder = new aflibAudioRecorder();   }   popup_record_update_list();}voidpopup_record_close(   Widget  w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   XtDestroyWidget((Widget) client_data);   _timer_record_mode = TRUE;   audio_timer_record(_recorder);}voidpopup_record_edit(   Widget  w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){}voidpopup_record_add(   Widget  w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   char * str = NULL;   string s_date, s_time;   long long each_limit;   long long max_limit;   // Get Start Date   str = XmTextGetString(_text1);   s_date = str;   XtFree(str);   // Get Start Time   str = XmTextGetString(_text2);   s_time = str;   XtFree(str);   aflibDateTime start(s_date, s_time);   // Get Stop Date   str = XmTextGetString(_text3);   s_date = str;   XtFree(str);   // Get Stop Time   str = XmTextGetString(_text4);   s_time = str;   XtFree(str);   // Get Each Limit   str = XmTextGetString(_text5);   //each_limit = atoll(str);   sscanf(str, "%qd", &each_limit);   XtFree(str);   // Get Max Limit   str = XmTextGetString(_text6);   //max_limit = atoll(str);   sscanf(str, "%qd", &max_limit);   XtFree(str);   aflibDateTime stop(s_date, s_time);   _recorder->addRecordItem(start, stop, _record_file, _format_type,      max_limit, each_limit, _config);   popup_record_update_list();}voidpopup_record_update_list(){   int segs = 0;   aflibDateTime start_date, stop_date;   string  file;   string file_type;   long long max_limit;   long long each_limit;   aflibConfig config;   int i;   char buf[2048];   XmString  str;   segs = _recorder->getNumberOfRecordItems();   XmListDeleteAllItems(list1);   for (i = 1; i <= segs; i++)   {      _recorder->getRecordItem(i,         start_date, stop_date, file,         file_type, max_limit, each_limit, config);      sprintf(buf, "%d  %2.2d/%2.2d/%4d %2.2d:%2.2d:%2.2d  %2.2d/%2.2d/%4d %2.2d:%2.2d:%2.2d  %lld %lld %s",         i, start_date.getMonth(), start_date.getDay(), start_date.getYear(),         start_date.getHour(), start_date.getMinute(), start_date.getSecond(),         stop_date.getMonth(), stop_date.getDay(), stop_date.getYear(),         stop_date.getHour(), stop_date.getMinute(), stop_date.getSecond(),         each_limit, max_limit, file.c_str());      str = XmStringCreateSimple(buf);      XmListAddItem(list1, str, i);      XmStringFree(str);   }}voidpopup_record_delete(   Widget  w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   int *position_list;   int position_count;   XmListGetSelectedPos(list1, &position_list, &position_count);   if (position_count != 0)   {      _recorder->removeRecordItem(position_list[0]);   }   // TBD probably need to delete something   popup_record_update_list();}voidpopup_bit_callback(   Widget w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   _bytes_per_sample = (int)client_data;}voidpopup_channels_callback(   Widget w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   _channels = (int)client_data;}voidpopup_rate_callback(   Widget w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   _samples_per_second = (int)client_data;}voidpopup_config_ok(   Widget w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   aflibConfig config;   config.setSamplesPerSecond(_samples_per_second);   if (_bytes_per_sample == 1)   {      config.setSampleSize(AFLIB_DATA_8S);   }   else   {      config.setSampleSize(AFLIB_DATA_16U);   }   config.setChannels(_channels);   if (_timer_record_mode == TRUE)   {      _config = config;   }   else   {      audio_record(_record_file.c_str(), config, _format_type);      gui_set_record_mode(TRUE);   }   XtDestroyWidget((Widget) client_data);}voidpopup_config_cancel(   Widget w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   XtDestroyWidget((Widget) client_data);}voidpopup_format_cb(   Widget  w,   caddr_t client_data,   XmAnyCallbackStruct *cbs){   _format_type = (char *)client_data;}voidpopup_config_dialog(   Widget w){   Widget shell, pane, form1, form2;   Widget channels, stereo, mono;   Widget label1, label2, label3, label4;   Widget bitwid, bit8, bit16;   Widget data_rate, rate_22050, rate_44100;   Widget data_format;   Widget cancel, ok;   Widget format_menu, format_pulldown, temp;   Arg   args[10];   int   n;   list<string> formats;   list<string> descriptions;   list<string>::iterator  it;   n = 0;   XtSetArg(args[n], XmNdeleteResponse, XmDESTROY); n++;   shell = XmCreateDialogShell(w, "Record Config", args, n);   n = 0;   pane = XmCreatePanedWindow(shell, "Config Pane", args, n);   n = 0;   form1 = XmCreateForm(pane, "Form1", args, n);   n = 0;   XtSetArg(args[n], XmNradioBehavior, True); n++;   XtSetArg(args[n], XmNradioAlwaysOne, True); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 20); n++;   channels = XmCreateRowColumn(form1, "Channels", args, n);   XtManageChild(channels);   n = 0;   XtSetArg(args[n], XmNborderWidth, 0); n++;   label1 = XmCreateLabel(channels, "MODE", args, n);   XtManageChild(label1);   n = 0;   XtSetArg(args[n], XmNset, True); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   mono = XmCreateToggleButton(channels, "Mono", args, n);   XtManageChild(mono);   XtAddCallback(mono, XmNarmCallback, popup_channels_callback, (void *)1);   n = 0;   XtSetArg(args[n], XmNset, False); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   stereo = XmCreateToggleButton(channels, "Stereo", args, n);   XtManageChild(stereo);   XtAddCallback(stereo, XmNarmCallback, popup_channels_callback, (void *)2);   n = 0;   XtSetArg(args[n], XmNradioBehavior, True); n++;   XtSetArg(args[n], XmNradioAlwaysOne, True); n++;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;   XtSetArg(args[n], XmNleftWidget, channels); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 40); n++;   bitwid = XmCreateRowColumn(form1, "Bit Width", args, n);   XtManageChild(bitwid);   n = 0;   XtSetArg(args[n], XmNborderWidth, 0); n++;   label2 = XmCreateLabel(bitwid, "BITS", args, n);   XtManageChild(label2);   n = 0;   XtSetArg(args[n], XmNset, True); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   bit8 = XmCreateToggleButton(bitwid, "8 Bit", args, n);   XtManageChild(bit8);   XtAddCallback(bit8, XmNarmCallback, popup_bit_callback, (void *)8);   n = 0;   XtSetArg(args[n], XmNset, False); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   bit16 = XmCreateToggleButton(bitwid, "16 Bit", args, n);   XtManageChild(bit16);   XtAddCallback(bit16, XmNarmCallback, popup_bit_callback, (void *)16);   n = 0;   XtSetArg(args[n], XmNradioBehavior, True); n++;   XtSetArg(args[n], XmNradioAlwaysOne, True); n++;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;   XtSetArg(args[n], XmNleftWidget, bitwid); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 60); n++;   data_rate = XmCreateRowColumn(form1, "Date Rate", args, n);   XtManageChild(data_rate);   n = 0;   XtSetArg(args[n], XmNborderWidth, 0); n++;   label3 = XmCreateLabel(data_rate, "RATE", args, n);   XtManageChild(label3);   n = 0;   XtSetArg(args[n], XmNset, True); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   rate_22050 = XmCreateToggleButton(data_rate, "22050", args, n);   XtManageChild(rate_22050);   XtAddCallback(rate_22050, XmNarmCallback, popup_rate_callback, (void *)22050);   n = 0;   XtSetArg(args[n], XmNset, False); n++;   XtSetArg(args[n], XmNborderWidth, 0); n++;   rate_44100 = XmCreateToggleButton(data_rate, "44100", args, n);   XtManageChild(rate_44100);   XtAddCallback(rate_44100, XmNarmCallback, popup_rate_callback, (void *)44100);   n = 0;   XtSetArg(args[n], XmNradioBehavior, True); n++;   XtSetArg(args[n], XmNradioAlwaysOne, True); n++;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_WIDGET); n++;   XtSetArg(args[n], XmNleftWidget, data_rate); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;   data_format = XmCreateRowColumn(form1, "Format", args, n);   XtManageChild(data_format);   n = 0;   XtSetArg(args[n], XmNborderWidth, 0); n++;   label4 = XmCreateLabel(data_format, "FORMAT", args, n);   XtManageChild(label4);   n = 0;   format_pulldown = XmCreatePulldownMenu(data_format, "pulldown", args, n);   n = 0;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_WIDGET); n++;   XtSetArg(args[n], XmNtopWidget, label4); n++;   XtSetArg(args[n], XmNsubMenuId, format_pulldown); n++;   format_menu = XmCreateOptionMenu(data_format, "Format Menu", args, n);   aflibFile::returnSupportedFormats(formats, descriptions);   for (it = formats.begin(); it != formats.end(); it++)   {      char * format_str = (char *)(*it).c_str();      n = 0;      temp = XmCreatePushButtonGadget(format_pulldown, format_str, args, n);      XtManageChild(temp);      XtAddCallback(temp, XmNactivateCallback, popup_format_cb, format_str);   }   // Initialize to the first item in the list   _format_type = formats.begin()->c_str();   XtManageChild(format_menu);   XtManageChild(form1);   n = 0;   XtSetArg(args[n], XmNfractionBase, 2); n++;   form2 = XmCreateForm(pane, "Form2", args, n);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 0); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 1); n++;   ok = XmCreatePushButtonGadget(form2, "OK", args, n);   XtAddCallback(ok, XmNactivateCallback, popup_config_ok, shell);   XtManageChild(ok);   n = 0;   XtSetArg(args[n], XmNtopAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNbottomAttachment, XmATTACH_FORM); n++;   XtSetArg(args[n], XmNleftAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNleftPosition, 1); n++;   XtSetArg(args[n], XmNrightAttachment, XmATTACH_POSITION); n++;   XtSetArg(args[n], XmNrightPosition, 2); n++;   cancel = XmCreatePushButtonGadget(form2, "Cancel", args, n);   XtAddCallback(cancel, XmNactivateCallback, popup_config_cancel, shell);   XtManageChild(cancel);   XtManageChild(form2);   XtManageChild(pane);   XtPopup(shell, XtGrabNone);   // initialize vars   _channels = 1;   _samples_per_second = 22050;   _bytes_per_sample = 1;}

⌨️ 快捷键说明

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