string concretize (url u) { // This routine transforms a resolved url into a system file name. // In the case of distant files from the web, a local copy is created. if (is_rooted (u, "default") || is_rooted (u, "file") || is_rooted (u, "blank")) return as_string (reroot (u, "default")); if (is_rooted_web (u)) return concretize (get_from_web (u)); if (is_rooted_tmfs (u)) return concretize (get_from_server (u)); if (is_ramdisc (u)) return concretize (get_from_ramdisc (u)); if (is_here (u)) return as_string (url_pwd ()); if (is_parent (u)) return as_string (url_pwd () * url_parent ()); if (is_wildcard (u, 1)) return u->t[1]->label; std_warning << "Couldn't concretize " << u->t << LF; // failed_error << "u= " << u << LF; // FAILED ("url has no root"); return "xxx"; }
/* * reset_nickname: when the server reports that the selected nickname is not * a good one, it gets reset here. */ static void reset_nickname(u_char *from) { u_char server_num[10]; const int from_server = get_from_server(); if (already_doing_reset_nickname || is_server_connected(from_server) || !server_get_attempting_to_connect(from_server)) return; say("You have specified an illegal nickname"); if (!term_basic() && !get_int_var(NO_ASK_NICKNAME_VAR)) { already_doing_reset_nickname = 1; say("Please enter your nickname"); snprintf(CP(server_num), sizeof server_num, "%d", parsing_server()); add_wait_prompt(UP("Nickname: "), nickname_sendline, server_num, WAIT_PROMPT_LINE); } update_all_status(); }
void rec(char *filename) { MSFilter *f1_r,*f1_w,*record; MSSndCard *card_capture1; MSSndCard *card_playback1; MSTicker *ticker1; struct msg_st data_w; long int msgtype = 0; char *capt_card1=NULL,*play_card1=NULL; int rate = 8000; int nchan=2; int i; const char *alsadev=NULL; int msgid = msgget((key_t)1234, 0666 | IPC_CREAT); if(msgid == -1) { fprintf(stderr, "msgget failed with error: %d\n", errno); exit(-1); } ortp_init(); ortp_set_log_level_mask(/*ORTP_MESSAGE|ORTP_WARNING|ORTP_ERROR|*/ORTP_FATAL); ms_init(); card_capture1 = ms_snd_card_manager_get_default_capture_card(ms_snd_card_manager_get()); card_playback1 = ms_snd_card_manager_get_default_playback_card(ms_snd_card_manager_get()); if (card_playback1==NULL || card_capture1==NULL) { if(card_playback1==NULL) ms_error("No card. card_playback1 %s",capt_card1); if(card_capture1==NULL) ms_error("No card. card_capture1 %s",capt_card1); //return -1; } else { ms_warning("card_playback1 %s|%s|%s|%d|%d|%d",card_playback1->name,card_playback1->id,card_playback1->desc->driver_type, card_playback1->capabilities,card_playback1->latency,card_playback1->preferred_sample_rate); } record=ms_filter_new(MS_FILE_REC_ID); if(ms_filter_call_method(record,MS_FILE_REC_OPEN,(void*)filename)!=0) printf("record open file %s failed\n",filename); f1_r=ms_snd_card_create_reader(card_capture1); if(f1_r!=NULL&&record!=NULL) { if(ms_filter_call_method(f1_r, MS_FILTER_SET_SAMPLE_RATE, &rate)!=0) printf("set sample rate f1_r failed\n"); if(ms_filter_call_method(record, MS_FILTER_SET_SAMPLE_RATE,&rate)!=0) printf("set sample rate record failed\n"); if(ms_filter_call_method(f1_r, MS_FILTER_SET_NCHANNELS, &nchan)!=0) printf("set nchan f1_r failed\n"); if(ms_filter_call_method(record, MS_FILTER_SET_NCHANNELS,&nchan)!=0) printf("set nchan record failed\n"); ms_filter_call_method_noarg(record,MS_FILE_REC_START); ticker1=ms_ticker_new(); ms_ticker_set_name(ticker1,"card1 to card2"); ms_filter_link(f1_r,0,record,0); ms_ticker_attach(ticker1,f1_r); msgtype=8; while(1) { msgrcv(msgid, (void*)&data_w, sizeof(struct msg_st)-sizeof(long int), msgtype, IPC_NOWAIT); if(data_w.id==1) break; ms_sleep(1); } ms_filter_call_method(record,MS_FILE_REC_STOP,NULL); ms_filter_call_method(record,MS_FILE_REC_CLOSE,NULL); if(ticker1) ms_ticker_detach(ticker1,f1_r); if(f1_r&&record) ms_filter_unlink(f1_r,0,record,0); if(ticker1) ms_ticker_destroy(ticker1); if(f1_r) ms_filter_destroy(f1_r); if(record) ms_filter_destroy(record); printf("to get string from server\n"); data_w.msg_type = 7; data_w.id=0; char *tmp=strrchr(get_from_server(filename),'='); if(tmp==NULL) strcpy(data_w.text,"can not find result from server"); else strcpy(data_w.text, tmp+1); if(msgsnd(msgid, (void*)&data_w, 512, IPC_NOWAIT) == -1) { fprintf(stderr, "msgsnd failed\n"); //exit(1); } } }