📄 xltwavplay.c
字号:
ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wListFrame = XmCreateFrame(wLeftRC,"list_frame",al,ac); XtManageChild(wListFrame); ac = 0; wListForm = XmCreateForm(wListFrame,"list_form",al,ac); XtManageChild(wListForm); /* * Create the Selections List Box Label: */ ac = 0; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wSelectionsLbl = XmCreateLabel(wListForm,"listbox_label",al,ac); XtManageChild(wSelectionsLbl); /* * Create the Selections List Box: */ ac = 0; XtSetArg(al[ac],XmNvisibleItemCount,7); ++ac; XtSetArg(al[ac],XmNscrollingPolicy,XmSTATIC); ++ac; XtSetArg(al[ac],XmNvisualPolicy,XmCONSTANT); ++ac; XtSetArg(al[ac],XmNscrolledWindowMarginHeight,6); ++ac; XtSetArg(al[ac],XmNscrolledWindowMarginWidth,6); ++ac; XtSetArg(al[ac],XmNselectionPolicy,XmSINGLE_SELECT); ++ac; XtSetArg(al[ac],XmNwidth,420); ++ac; wSelectionsListBox = XmCreateScrolledList(wListForm,"lstbox",al,ac); XtManageChild(wSelectionsListBox); XtAddCallback(wSelectionsListBox,XmNsingleSelectionCallback,PathSelected_CB,NULL); XtVaSetValues(wSelectionsLbl, XmNtopAttachment,XmATTACH_FORM, XmNleftAttachment,XmATTACH_FORM, NULL); XtVaSetValues(XtParent(wSelectionsListBox), XmNtopAttachment,XmATTACH_WIDGET,XmNtopWidget,wSelectionsLbl, XmNleftAttachment,XmATTACH_FORM, NULL); ac = 0; XtSetArg(al[ac],XmNmarginHeight,12); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wDetailsFrame = XmCreateFrame(wLeftRC,"DetailsFrame",al,ac); XtManageChild(wDetailsFrame); ac = 0; XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ++ac; wDetailsRC = XmCreateRowColumn(wDetailsFrame,"DetailsRC",al,ac); XtManageChild(wDetailsRC); ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNentryAlignment,XmALIGNMENT_END); ++ac; wBotLeftRC0 = XmCreateRowColumn(wDetailsRC,"BotLeftRC0",al,ac); XtManageChild(wBotLeftRC0); ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNentryAlignment,XmALIGNMENT_BEGINNING); ++ac; wBotLeftRC1 = XmCreateRowColumn(wDetailsRC,"BotLeftRC1",al,ac); XtManageChild(wBotLeftRC1); ac = 0; wFileLbl0 = XmCreateLabel(wBotLeftRC0,"FileLbl0",al,ac); XtManageChild(wFileLbl0); ac = 0; wTypeLbl0 = XmCreateLabel(wBotLeftRC0,"TypeLbl0",al,ac); XtManageChild(wTypeLbl0); ac = 0; wDateLbl0 = XmCreateLabel(wBotLeftRC0,"DateLbl0",al,ac); XtManageChild(wDateLbl0); ac = 0; wSizeLbl0 = XmCreateLabel(wBotLeftRC0,"SizeLbl0",al,ac); XtManageChild(wSizeLbl0); ac = 0; wSamplingRateLbl0 = XmCreateLabel(wBotLeftRC0,"SamplingRateLbl0",al,ac); XtManageChild(wSamplingRateLbl0); ac = 0; wSamplesLbl0 = XmCreateLabel(wBotLeftRC0,"SamplesLbl0",al,ac); XtManageChild(wSamplesLbl0); ac = 0; wTimeLbl0 = XmCreateLabel(wBotLeftRC0,"TimeLbl0",al,ac); XtManageChild(wTimeLbl0); ac = 0; wFileLbl1 = XmCreateLabel(wBotLeftRC1,"FileLbl1",al,ac); XtManageChild(wFileLbl1); ac = 0; wTypeLbl1 = XmCreateLabel(wBotLeftRC1,"TypeLbl1",al,ac); XtManageChild(wTypeLbl1); ac = 0; wDateLbl1 = XmCreateLabel(wBotLeftRC1,"DateLbl1",al,ac); XtManageChild(wDateLbl1); ac = 0; wSizeLbl1 = XmCreateLabel(wBotLeftRC1,"SizeLbl1",al,ac); XtManageChild(wSizeLbl1); ac = 0; wSamplingRateLbl1 = XmCreateLabel(wBotLeftRC1,"SamplingRateLbl1",al,ac); XtManageChild(wSamplingRateLbl1); ac = 0; wSamplesLbl1 = XmCreateLabel(wBotLeftRC1,"SamplesLbl1",al,ac); XtManageChild(wSamplesLbl1); ac = 0; wTimeLbl1 = XmCreateLabel(wBotLeftRC1,"TimeLbl1",al,ac); XtManageChild(wTimeLbl1); /* * Create the time scroll bar: */ ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wTimeFrame = XmCreateFrame(wLeftRC,"timeframe",al,ac); XtManageChild(wTimeFrame); ac = 0; wTimeRC = XmCreateRowColumn(wTimeFrame,"time_rolcol",al,ac); XtManageChild(wTimeRC); ac = 0; XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ++ac; wTimeDisplayRC = XmCreateRowColumn(wTimeRC,"timedisplay_rolcol",al,ac); XtManageChild(wTimeDisplayRC); ac = 0; wTimeDisplayLbl0 = XmCreateLabel(wTimeDisplayRC,"TimeDisplayLbl0",al,ac); XtManageChild(wTimeDisplayLbl0); ac = 0; wTimeDisplayLbl1 = XmCreateLabel(wTimeDisplayRC,"TimeDisplayLbl1",al,ac); XtManageChild(wTimeDisplayLbl1); ac = 0; XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ++ac; XtSetArg(al[ac],XmNminimum,0); ++ac; XtSetArg(al[ac],XmNsliderSize,4000); ++ac; XtSetArg(al[ac],XmNmaximum,0+4000); ++ac; XtSetArg(al[ac],XmNincrement,1); ++ac; wTimeScrollBar = XmCreateScrollBar(wTimeRC,"time_scrollbar",al,ac); XtManageChild(wTimeScrollBar); XtAddCallback(wTimeScrollBar,XmNvalueChangedCallback,TimeChg_CB,NULL); /* * Create the sampling rate scroll bar: */ ac = time_display.sample_num = 0; time_display.sampling_rate = 1; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wRateSBFrame = XmCreateFrame(wLeftRC,"rateSBframe",al,ac); XtManageChild(wRateSBFrame); ac = 0; wRateRC = XmCreateRowColumn(wRateSBFrame,"rate_rolcol",al,ac); XtManageChild(wRateRC); ac = 0; wRateLbl = XmCreateLabel(wRateRC,"rate_lbl",al,ac); XtManageChild(wRateLbl); ac = 0; XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ++ac; XtSetArg(al[ac],XmNminimum,0); ++ac; /* DSP_MIN is actual min */ XtSetArg(al[ac],XmNsliderSize,4000); ++ac; XtSetArg(al[ac],XmNmaximum,DSP_MAX+4000); ++ac; XtSetArg(al[ac],XmNincrement,100); ++ac; wRateScrollBar = XmCreateScrollBar(wRateRC,"rate_scrollbar",al,ac); XtManageChild(wRateScrollBar); XtAddCallback(wRateScrollBar,XmNvalueChangedCallback,SampleRateChg_CB,NULL); ac = 0; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; wRecRateFrame = XmCreateFrame(wRateRC,"rec_rate_frame",al,ac); XtManageChild(wRecRateFrame); ac = 0; XtSetArg(al[ac],XmNorientation,XmHORIZONTAL); ++ac; XtSetArg(al[ac],XmNpacking,XmPACK_COLUMN); ++ac; XtSetArg(al[ac],XmNnumColumns,1); ++ac; wRecRateRC = XmCreateRowColumn(wRecRateFrame,"rec_rate_rc",al,ac); XtManageChild(wRecRateRC); ac = 0; wRecRateTgl = XmCreateToggleButton(wRecRateRC,"rec_rate_tgl",al,ac); XtManageChild(wRecRateTgl); XtAddCallback(wRecRateTgl,XmNvalueChangedCallback,RecRateTgl_CB,NULL); ac = 0; XtSetArg(al[ac],XmNeditable,True); ++ac; wRecRate = XmCreateText(wRecRateRC,"rec_rate",al,ac); XtManageChild(wRecRate); XtAddCallback(wRecRate,XmNfocusCallback,RecRateFocus_CB,NULL); /* * Now build the right hand side: */ ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; XtSetArg(al[ac],XmNpacking,XmPACK_TIGHT); ++ac; wRightRC = XmCreateRowColumn(wMainForm,"RightRC",al,ac); XtManageChild(wRightRC); ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wBitsFrame = XmCreateFrame(wRightRC,"BitsFrame",al,ac); XtManageChild(wBitsFrame); ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; XtSetArg(al[ac],XmNpacking,XmPACK_TIGHT); ++ac; XtSetArg(al[ac],XmNradioBehavior,True); ++ac; wBitsRC = XmCreateRowColumn(wBitsFrame,"BitsRC",al,ac); XtManageChild(wBitsRC); ac = 0; w8BitCB = XmCreateToggleButton(wBitsRC,"8Bit",al,ac); XtManageChild(w8BitCB); XtAddCallback(w8BitCB,XmNvalueChangedCallback,BitsChanged_CB,(XtPointer)8UL); ac = 0; w16BitCB = XmCreateToggleButton(wBitsRC,"16Bit",al,ac); XtManageChild(w16BitCB); XtAddCallback(w16BitCB,XmNvalueChangedCallback,BitsChanged_CB,(XtPointer)16UL); ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wPlayFrame = XmCreateFrame(wRightRC,"PlayFrame",al,ac); XtManageChild(wPlayFrame); ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; XtSetArg(al[ac],XmNpacking,XmPACK_TIGHT); ++ac; wPlayRC = XmCreateRowColumn(wPlayFrame,"PlayRC",al,ac); XtManageChild(wPlayRC); ac = 0; wPlayPB = XmCreatePushButton(wPlayRC,"Play",al,ac); XtManageChild(wPlayPB); XtAddCallback(wPlayPB,XmNactivateCallback,Play_CB,NULL); ac = 0; wPausePB = XmCreatePushButton(wPlayRC,"Pause",al,ac); XtManageChild(wPausePB); XtAddCallback(wPausePB,XmNactivateCallback,Pause_CB,NULL); ac = 0; wStopPlayPB = XmCreatePushButton(wPlayRC,"Stop",al,ac); XtManageChild(wStopPlayPB); XtAddCallback(wStopPlayPB,XmNactivateCallback,Stop_CB,NULL); ac = 0; wRestorePB = XmCreatePushButton(wPlayRC,"Restore",al,ac); XtManageChild(wRestorePB); XtAddCallback(wRestorePB,XmNactivateCallback,Restore_CB,NULL); ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wStereoFrame = XmCreateFrame(wRightRC,"StereoFrame",al,ac); XtManageChild(wStereoFrame); ac = 0; wStereoCB = XmCreateToggleButton(wStereoFrame,"Stereo",al,ac); XtManageChild(wStereoCB); XtAddCallback(wStereoCB,XmNvalueChangedCallback,StereoChanged_CB,NULL); ac = 0; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; wRecordFrame = XmCreateFrame(wRightRC,"RecordFrame",al,ac); XtManageChild(wRecordFrame); ac = 0; XtSetArg(al[ac],XmNorientation,XmVERTICAL); ++ac; XtSetArg(al[ac],XmNmarginHeight,6); ++ac; XtSetArg(al[ac],XmNmarginWidth,6); ++ac; XtSetArg(al[ac],XmNpacking,XmPACK_TIGHT); ++ac; wRecordRC = XmCreateRowColumn(wRecordFrame,"RecordRC",al,ac); XtManageChild(wRecordRC); ac = 0; wRecordPB = XmCreatePushButton(wRecordRC,"Record",al,ac); XtManageChild(wRecordPB); XtAddCallback(wRecordPB,XmNactivateCallback,Record_CB,NULL); ac = 0; wStopPB = XmCreatePushButton(wRecordRC,"Stop",al,ac); XtManageChild(wStopPB); XtAddCallback(wStopPB,XmNactivateCallback,Stop_CB,NULL); /* * Main form layout details: */ XtVaSetValues(wLeftRC, XmNtopAttachment,XmATTACH_FORM, XmNleftAttachment,XmATTACH_FORM, NULL); XtVaSetValues(wRightRC, XmNtopAttachment,XmATTACH_FORM, XmNleftAttachment,XmATTACH_WIDGET, XmNleftWidget,wLeftRC, XmNrightAttachment,XmATTACH_FORM, NULL); /* * Realize the widgets now: */ BitsShow(); /* Initialize bit settings */ XtVaSetValues(wOptions_DebugTgl,XmNset,bOptionsDebug ? True : False,NULL); cmdopt_x = bOptionsDebug != False ? 1 : 0; XtRealizeWidget(wParent); /* OK, realize it all.. */ /* * Fork a new process, and try to start the server: */ if ( tosvr_start(v_erf) < 0 ) { ReportErrorf("Failure to start the wavplay server is fatal.\n" "Please check the executability of the 'wavplay' command."); exit(3); } /* * Tell the server our debug setting: */ tosvr_debug(0,NULL,cmdopt_x); /* * This work process receives and operates on messages * from the server to this client program: */ XtAppAddTimeOut(aContext,TIMER1_MS,TimerProc1,NULL); /* * Clear out the "XXXXXXXXXXXX" in the initial resources, * to set the width of those labels. */ XmSprintfLabel(wFileLbl1,"No file(s) selected."); XmSprintfLabel(wTypeLbl1,"Choose [File] -> [Select Files...]"); XmSprintfLabel(wDateLbl1,"then click on entries in the"); XmSprintfLabel(wSizeLbl1,"list box."); XmSprintfLabel(wSamplingRateLbl1," "); XmSprintfLabel(wSamplesLbl1," "); XmSprintfLabel(wTimeLbl1," "); /* * The MOTIF Main Loop: */ XtAppMainLoop(aContext); return 0; /* A cookie for the compiler */} /* $Source: /home/cvs/wavplay/xltwavplay.c,v $ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -