/* ----------------------------------------------------------------------------*/ int main(int argc,char* argv[]) { gboolean retry; GtkWidget* dialog; gint result; int i; gtk_init(&argc,&argv); fprintf(stderr,"gHermes Version %s\n",VERSION); strcpy(propertyPath,"gHermes.properties"); // strcpy(soundCardName,"HPSDR"); ozy_set_interface("eth0"); processCommands(argc,argv); loadProperties(propertyPath); #ifdef ALEX_TEST alex_rx_test_load("alex_rx_test.csv"); alex_tx_test_load("alex_tx_test.csv"); #endif //init_cw(); // initialize DttSP Setup_SDR(); Release_Update(); SetTRX(0,FALSE); // thread 0 is for receive SetTRX(1,TRUE); // thread 1 is for transmit SetThreadProcessingMode(0,2); // set thread 0 to RUN SetThreadProcessingMode(1,2); // set thread 1 to RUN SetSubRXSt(0,0,TRUE); reset_for_buflen(0,buffer_size); reset_for_buflen(1,buffer_size); // initialize ozy (default 48K) //ozyRestoreState(); do { switch(ozy_init()) { case -1: // cannot find ozy dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_YES_NO, "Cannot locate Ozy!\n\nIs it powered on and plugged in?"); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"Retry?"); gtk_window_set_title(GTK_WINDOW(dialog),"GHPSDR"); result = gtk_dialog_run (GTK_DIALOG (dialog)); switch (result) { case GTK_RESPONSE_YES: retry=TRUE; break; default: exit(1); break; } gtk_widget_destroy (dialog); break; case -2: // found but needs initializing result=fork(); if(result==0) { // child process - exec initozy fprintf(stderr,"exec initozy\n"); result=execl("initozy",NULL,NULL); fprintf(stderr,"exec returned %d\n",result); exit(result); } else if(result>0) { // wait for the forked process to terminate dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_NONE, "Initializing Ozy"); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"Please Wait ..."); gtk_window_set_title(GTK_WINDOW(dialog),"GHPSDR"); gtk_widget_show_all (dialog); while (gtk_events_pending ()) gtk_main_iteration (); wait(&result); fprintf(stderr,"wait status=%d\n",result); retry=TRUE; } gtk_widget_destroy (dialog); break; case -3: // did not find metis dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_YES_NO, "Cannot locate Metis on interface %s!", ozy_get_interface()); gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog),"Retry?"); gtk_window_set_title(GTK_WINDOW(dialog),"GHPSDR"); result = gtk_dialog_run (GTK_DIALOG (dialog)); switch (result) { case GTK_RESPONSE_YES: retry=TRUE; break; default: exit(1); break; } gtk_widget_destroy (dialog); break; default: retry=FALSE; break; } } while(retry); mainRootX=0; mainRootY=0; cwPitch =600; restoreInitialState(); //SetKeyerResetSize(4096); //NewKeyer(600.0f,TRUE,0.0f,3.0f,25.0f,48000.0f); //SetKeyerPerf(FALSE); //StartKeyer(); initColors(); //gtk_key_snooper_install((GtkKeySnoopFunc)keyboardSnooper,NULL); //bandscopeRestoreState(); //bandscopeWindow=buildBandscopeUI(); //bandscope_controlRestoreState(); //bandscope_controlWindow=buildBandscope_controlUI(); meterRestoreState(); meterWindow=buildMeterUI(); vfoRestoreState(); vfoWindow=buildVfoUI(); bandRestoreState(); bandWindow=buildBandUI(); modeRestoreState(); modeWindow=buildModeUI(); filterRestoreState(); filterWindow=buildFilterUI(); displayRestoreState(); displayWindow=buildDisplayUI(); audioRestoreState(); audioWindow=buildAudioUI(); agcRestoreState(); agcWindow=buildAgcUI(); preampWindow=buildPreampUI(); zoomWindow=buildZoomUI(); receiverRestoreState(); receiverWindow=buildReceiverUI(); volumeRestoreState(); volumeWindow=buildVolumeUI(); keyerRestoreState(); keyerWindow=buildKeyerUI(); cwPitch =(int)cw_sidetone_frequency; transmitRestoreState(); transmitWindow=buildTransmitUI(); mic_meterWindow=buildMic_MeterUI(); subrxRestoreState(); subrxWindow=buildSubRxUI(); restoreState(); // build the Main UI buildMainUI(); //setSoundcard(getSoundcardId(soundCardName)); audio_stream_init(); hamlibserv_init(); gtk_main(); return 0; }
void radioRestoreState() { char *value; sem_wait(&property_sem); loadProperties(property_path); value=getProperty("atlas_penelope"); if(value) atlas_penelope=atoi(value); value=getProperty("tx_out_of_band"); if(value) tx_out_of_band=atoi(value); value=getProperty("sample_rate"); if(value) sample_rate=atoi(value); value=getProperty("filter_board"); if(value) filter_board=atoi(value); value=getProperty("apollo_tuner"); if(value) apollo_tuner=atoi(value); value=getProperty("pa"); if(value) pa=atoi(value); value=getProperty("updates_per_second"); if(value) updates_per_second=atoi(value); value=getProperty("display_panadapter"); if(value) display_panadapter=atoi(value); value=getProperty("display_detector_mode"); if(value) display_detector_mode=atoi(value); value=getProperty("display_average_mode"); if(value) display_average_mode=atoi(value); value=getProperty("display_average_time"); if(value) display_average_time=atof(value); value=getProperty("panadapter_high"); if(value) panadapter_high=atoi(value); value=getProperty("panadapter_low"); if(value) panadapter_low=atoi(value); value=getProperty("display_waterfall"); if(value) display_waterfall=atoi(value); value=getProperty("display_sliders"); if(value) display_sliders=atoi(value); value=getProperty("display_toolbar"); if(value) display_toolbar=atoi(value); value=getProperty("toolbar_simulate_buttons"); if(value) toolbar_simulate_buttons=atoi(value); value=getProperty("waterfall_high"); if(value) waterfall_high=atoi(value); value=getProperty("waterfall_low"); if(value) waterfall_low=atoi(value); value=getProperty("waterfall_automatic"); if(value) waterfall_automatic=atoi(value); value=getProperty("volume"); if(value) volume=atof(value); value=getProperty("drive"); if(value) drive=atoi(value); value=getProperty("tune_drive"); if(value) tune_drive=atoi(value); value=getProperty("mic_gain"); if(value) mic_gain=atof(value); value=getProperty("mic_boost"); if(value) mic_boost=atof(value); value=getProperty("mic_linein"); if(value) mic_linein=atof(value); value=getProperty("mic_ptt_enabled"); if(value) mic_ptt_enabled=atof(value); value=getProperty("mic_bias_enabled"); if(value) mic_bias_enabled=atof(value); value=getProperty("mic_ptt_tip_bias_ring"); if(value) mic_ptt_tip_bias_ring=atof(value); value=getProperty("nr_none"); if(value) nr_none=atoi(value); value=getProperty("nr"); if(value) nr=atoi(value); value=getProperty("nr2"); if(value) nr2=atoi(value); value=getProperty("nb"); if(value) nb=atoi(value); value=getProperty("nb2"); if(value) nb2=atoi(value); value=getProperty("anf"); if(value) anf=atoi(value); value=getProperty("snb"); if(value) snb=atoi(value); value=getProperty("nr_agc"); if(value) nr_agc=atoi(value); value=getProperty("nr2_gain_method"); if(value) nr2_gain_method=atoi(value); value=getProperty("nr2_npe_method"); if(value) nr2_npe_method=atoi(value); value=getProperty("nr2_ae"); if(value) nr2_ae=atoi(value); value=getProperty("agc"); if(value) agc=atoi(value); value=getProperty("agc_gain"); if(value) agc_gain=atof(value); value=getProperty("step"); if(value) step=atoi(value); value=getProperty("cw_keys_reversed"); if(value) cw_keys_reversed=atoi(value); value=getProperty("cw_keyer_speed"); if(value) cw_keyer_speed=atoi(value); value=getProperty("cw_keyer_mode"); if(value) cw_keyer_mode=atoi(value); value=getProperty("cw_keyer_weight"); if(value) cw_keyer_weight=atoi(value); value=getProperty("cw_keyer_spacing"); if(value) cw_keyer_spacing=atoi(value); value=getProperty("cw_keyer_internal"); if(value) cw_keyer_internal=atoi(value); value=getProperty("cw_keyer_sidetone_volume"); if(value) cw_keyer_sidetone_volume=atoi(value); value=getProperty("cw_keyer_ptt_delay"); if(value) cw_keyer_ptt_delay=atoi(value); value=getProperty("cw_keyer_hang_time"); if(value) cw_keyer_hang_time=atoi(value); value=getProperty("cw_keyer_sidetone_frequency"); if(value) cw_keyer_sidetone_frequency=atoi(value); value=getProperty("cw_breakin"); if(value) cw_breakin=atoi(value); value=getProperty("vfo_encoder_divisor"); if(value) vfo_encoder_divisor=atoi(value); value=getProperty("OCtune"); if(value) OCtune=atoi(value); value=getProperty("OCfull_tune_time"); if(value) OCfull_tune_time=atoi(value); value=getProperty("OCmemory_tune_time"); if(value) OCmemory_tune_time=atoi(value); value=getProperty("attenuation"); if(value) attenuation=atoi(value); value=getProperty("rx_dither"); if(value) rx_dither=atoi(value); value=getProperty("rx_random"); if(value) rx_random=atoi(value); value=getProperty("rx_preamp"); if(value) rx_preamp=atoi(value); bandRestoreState(); sem_post(&property_sem); }