/** * * main cycle of following algorithm * */ int MainCycle() { struct work_unit* w=algo.head; do { if(w==NULL) { syslog(LOG_ERR, "NULL алгоритм\n"); go_out(); }; fill_time(); switch(w->type) { case 't': play_dtmf(time_buffer); break; case 'v': play_voice(time_buffer); break; case 's': play_wav(w->param); break; case 'p': play_pause(w->param); break; default: syslog(LOG_ERR, "Ошибка в структуре алгоритма работы: %c\n", w->type); go_out(); break; }; w=w->next_unit; } while(w!=NULL); return(0); }
//The interface function to the playing part of the program. //Input: // fp: file descriptor for the sound device // freqs, containing (int)frequency*1000 of the notes you want //to play. // duration, containing the duration of the note in ms. // num_els, total number of elements in freqs and duration arrays. //Some integers in freqs are special codes for more advanced commands: //-1: Play pause with the corresponding length in duration-array. // void play_sequence(int fp, int freqs[], double duration[], int num_els) { int i; int duration_int; for (i=0; i<num_els; i++) { duration_int = (int)duration[i]; if (freqs[i] == -1) { play_pause(duration_int); } else { play_note(fp, freqs[i], duration_int); } } }
void MainWindow::connectSignalsAndSlots() { //if track info emit e_dane run update function connect(info, SIGNAL(dataReady()), this, SLOT(update())); //this function load actual track image to label connect(load, SIGNAL(image(QPixmap*)), this, SLOT(image(QPixmap*))); //this function load next track image to label connect(loadNext, SIGNAL(image(QPixmap*)), this, SLOT(imageNext(QPixmap*))); //proxy setup connect(proxyDial, SIGNAL(data_ok(QNetworkProxy)), this, SLOT(setProxy(QNetworkProxy))); connect(ui->play_pause, SIGNAL(clicked()), this, SLOT(play_pause())); connect(ui->actionO_programie, SIGNAL(triggered()), this, SLOT(about())); connect(&tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(iconClicked(QSystemTrayIcon::ActivationReason))); //play on enter key push connect(ui->listWidget, SIGNAL(activated(QModelIndex)), this, SLOT(on_listWidget_doubleClicked(QModelIndex))); connect(ui->actionOpcje, SIGNAL(triggered()), this, SLOT(options())); }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_FOO_GET_ACTIVE_PLAYLIST_COUNT: if(plist_api) return activeplaylist_get_item_count(&plist_api); return P_ERROR; case WM_FOO_GET_PLAYLIST_ITEM: { char title[512]; wchar_t w_title[512]; if(!ptcomp_api || !plist_api || !pback_api) return P_ERROR; if(wParam == -1 && !is_playing(&pback_api)) return P_ERROR; int tracknumb = (wParam==-1)?(int)get_playing_item_location(&plist_api):wParam; PTITLEFORMAT_OBJECT *t_obj=0; // Must be 0!!! if(!GetWindowText(p_hWnd, title, 512)) return P_ERROR; if(compile(&ptcomp_api, &t_obj, title)) { string_free(); playlist_item_format_title(&plist_api, get_active_playlist(&plist_api), tracknumb, 0, &str, &t_obj, 0, display_level_all); MultiByteToWideChar(CP_UTF8, 0, str.data, -1, w_title, 512); SetWindowTextW(p_hWnd, w_title); service_release((PSERVICE_BASE*)t_obj); return 0; } return P_ERROR; } case WM_FOO_GET_CURRENT_TRACK: if(plist_api) return get_playing_item_location(&plist_api); return P_ERROR; case WM_FOO_ORDER: if(plist_api) {playback_order_set_active(&plist_api, wParam); return 0;} return P_ERROR; case WM_FOO_OPEN: return main_open(&g_api); case WM_FOO_ADD: return main_add_files(&g_api); case WM_FOO_ADDDIR: return main_add_directory(&g_api); case WM_FOO_PLAY: if(pback_api) {start_resume(&pback_api); return 0;} return P_ERROR; case WM_FOO_STOP: if(pback_api) {stop(&pback_api); return 0;} return P_ERROR; case WM_FOO_PLAY_NEXT: if(pback_api) {start(&pback_api, track_command_next); return 0;} return P_ERROR; case WM_FOO_PLAY_PREV: if(pback_api) {start(&pback_api, track_command_prev); return 0;} return P_ERROR; case WM_FOO_PLAY_RANDOM: if(pback_api) {start(&pback_api, track_command_rand); return 0;} return P_ERROR; case WM_FOO_PAUSE: if(pback_api) {pause(&pback_api, true); return 0;} return P_ERROR; case WM_FOO_PLAY_PAUSE: if(pback_api) {play_pause(&pback_api); return 0;} return P_ERROR; case WM_FOO_VOLUME_UP: if(pback_api) {volume_up(&pback_api); return 0;} return P_ERROR; case WM_FOO_VOLUME_DOWN: if(pback_api) {volume_down(&pback_api); return 0;} return P_ERROR; case WM_FOO_GET_VOLUME: if(pback_api) return get_volume(&pback_api); return P_ERROR; case WM_FOO_SET_VOLUME: if(pback_api) {set_volume(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_MUTE: if(pback_api) {mute(&pback_api); return 0;} return P_ERROR; case WM_FOO_IS_PLAYING: if(pback_api) return (is_playing(&pback_api) && !is_paused(&pback_api)); return P_ERROR; case WM_FOOL_IS_PAUSED: if(pback_api) return is_paused(&pback_api); return P_ERROR; case WM_FOO_GET_STOP_AFTER_CURRENT: if(pback_api) return get_stop_after_current(&pback_api); return P_ERROR; case WM_FOO_SET_STOP_AFTER_CURRENT: if(pback_api) {set_stop_after_current(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_PLAYBACK_CAN_SEEK: if(pback_api) return playback_can_seek(&pback_api); return P_ERROR; case WM_FOO_PLAYBACK_SEEK: if(pback_api) {playback_seek(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_PLAYBACK_SEEK_DELTA: if(pback_api) {playback_seek_delta(&pback_api, wParam); return 0;} return P_ERROR; case WM_FOO_GET_POSITION: if(pback_api) return playback_get_position(&pback_api); return P_ERROR; case WM_FOO_GET_LENGTH: if(pback_api) return playback_get_length(&pback_api); return P_ERROR; case WM_FOO_EXIT: return main_exit(&g_api); case WM_FOO_ACTIVATE: return main_activate(&g_api); case WM_FOO_HIDE: return main_hide(&g_api); case WM_FOO_PLAY_TRACK: if(plist_api) {playlist_execute_default_action(&plist_api, get_active_playlist(&plist_api), wParam); return 0;} return P_ERROR; case WM_FOO_REGISTER_CALLBACK: if(wParam & PLAYBACK_START) AddCallback((PFCALLBACK)&callbacks, CSTARTING, (HWND)lParam, 0); if(wParam & PLAYBACK_DYNAMIC_INFO) AddCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO, (HWND)lParam, 0); if(wParam & PLAYBACK_DYNAMIC_INFO_TRACK) AddCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO_TRACK, (HWND)lParam, 0); if(wParam & PLAYBACK_TIME) AddCallback((PFCALLBACK)&callbacks, CTIME, (HWND)lParam, 0); if(wParam & PLAYBACK_VOLUME_CHANGE) AddCallback((PFCALLBACK)&callbacks, CVOLUME_CHANGE, (HWND)lParam, 0); if(wParam & PLAYBACK_STOP) AddCallback((PFCALLBACK)&callbacks, CSTOP, (HWND)lParam, 0); if(wParam & PLAYBACK_SEEK) AddCallback((PFCALLBACK)&callbacks, CSEEK, (HWND)lParam, 0); if(wParam & PLAYBACK_PAUSE) AddCallback((PFCALLBACK)&callbacks, CPAUSE, (HWND)lParam, 0); if(wParam & PLAYBACK_NEW_TRACK) { char caption[512]; if(GetWindowText(p_hWnd, caption, 512)) AddCallback((PFCALLBACK)&callbacks, CNEW_TRACK, (HWND)lParam, caption); } if(wParam & PLAYBACK_EDITED) { char caption[512]; if(GetWindowText(p_hWnd, caption, 512)) AddCallback((PFCALLBACK)&callbacks, CEDITED, (HWND)lParam, caption); } return 0; case WM_FOO_UNREGISTER_CALLBACK: if(wParam & PLAYBACK_START) RemoveCallback((PFCALLBACK)&callbacks, CSTARTING, (HWND)lParam); if(wParam & PLAYBACK_NEW_TRACK) RemoveCallback((PFCALLBACK)&callbacks, CNEW_TRACK, (HWND)lParam); if(wParam & PLAYBACK_STOP) RemoveCallback((PFCALLBACK)&callbacks, CSTOP, (HWND)lParam); if(wParam & PLAYBACK_SEEK) RemoveCallback((PFCALLBACK)&callbacks, CSEEK, (HWND)lParam); if(wParam & PLAYBACK_PAUSE) RemoveCallback((PFCALLBACK)&callbacks, CPAUSE, (HWND)lParam); if(wParam & PLAYBACK_EDITED) RemoveCallback((PFCALLBACK)&callbacks, CEDITED, (HWND)lParam); if(wParam & PLAYBACK_DYNAMIC_INFO) RemoveCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO, (HWND)lParam); if(wParam & PLAYBACK_DYNAMIC_INFO_TRACK) RemoveCallback((PFCALLBACK)&callbacks, CDYNAMIC_INFO_TRACK, (HWND)lParam); if(wParam & PLAYBACK_TIME) RemoveCallback((PFCALLBACK)&callbacks, CTIME, (HWND)lParam); if(wParam & PLAYBACK_VOLUME_CHANGE) RemoveCallback((PFCALLBACK)&callbacks, CVOLUME_CHANGE, (HWND)lParam); return 0; default: return DefWindowProc(hWnd, message, wParam, lParam); } }
void wakeUp_User(){ mp3Player_onoff(); if(snoozeCounter == 0){ next_song(); } play_pause(); _delay_ms(1000);//warten bis mp3Player an ist boot_amp(); bool user_awake = false; LCD_LED = 1; LED_AUSTRALIA = 1; LED_NORWAY = 1; int secondsStart = seconds; while((!btn_light_pushed) && (rotary == 0) && (!btn_drehenc_pushed)){//Könnte auch von Sekundenzähler aufgewacht sein goodNight(); if(check_TimeUpdate()); update_time(); if(seconds == secondsStart + 30){ LCD_LED = 0; LED_AUSTRALIA = 0; LED_NORWAY = 0; } } LCD_LED = 0; LED_AUSTRALIA = 0; LED_NORWAY = 0; if(snoozeCounter==0){ if(btn_light_pushed){ //while(!btn_light_pushed){_delay_ms(100);} start_btnPress(); while((PINB & (1<<PINB1)) && (btn_press_duration<BTN_PRESS_LONG)){_delay_ms(50);} stop_btnPress(); if(btn_press_duration>=BTN_PRESS_LONG){ user_awake = true; } else { reset_alarmLogo(); print_snoozeLogo(); update_LCD(); snooze_alarm(); snoozeCounter = 1; } } else { reset_alarmLogo(); print_snoozeLogo(); update_LCD(); snooze_alarm(); snoozeCounter = 1; } } else { while(!user_awake){ goodNight(); if(check_TimeUpdate()) update_time(); start_btnPress(); while((PINB & (1<<PINB1)) && (btn_press_duration<BTN_PRESS_LONG)){_delay_ms(50);} stop_btnPress(); if(btn_press_duration>=BTN_PRESS_LONG){ user_awake = true; alarm = OFF; reset_alarmLogo(); reset_snoozeLogo(); snoozeCounter = 0; alarm_hour = saved_alarm_h; alarm_minute = saved_alarm_m; } } } play_pause();//Pause shutdown_amp(); mp3Player_onoff(); }
void set_audio(){ btn_drehenc_pushed = false; int item = 0; clear_pixelMatrix(); clear_LCD(); print_symbol(16,17, hakenSymb,108,46); int warte_ASCII [strlen("Bitte warten")]; convertString("Bitte warten", warte_ASCII); print_ASCIIString(20,16, warte_ASCII, sizeof(warte_ASCII)/sizeof(warte_ASCII[0])); update_LCD(); mp3Player_onoff();//On play_pause(); _delay_ms(1000); boot_amp(); //Speaker-Symbol aus EEPROM holen uint8_t speakerSymb[SPEAKER_WIDTH]; for(int i=0; i<SPEAKER_WIDTH; i++){ speakerSymb[i] = pgm_read_byte(&speaker[0][i]); } clear_pixelMatrix(); clear_LCD(); print_symbol(16,17, hakenSymb,108,46); print_symbol(24,31,speakerSymb,(128-31)/2,(64-24)/2); rotary = 0; while(item!=1){ while(!btn_drehenc_pushed){ item+=rotary; item=item%2; if(item<0) item+=2; rotary = 0; if(item == 0){ //ggf. offenes Herz entfernen for(int x = 64-HERZ_KLEIN_WIDTH/2; x<64-HERZ_KLEIN_WIDTH/2+2; x++){ for(int y = 2; y<11; y++) reset_pixel(x,y); } print_symbol(8,HERZ_KLEIN_WIDTH,herzKleinSymb,64-4, 2);//kleines Herz über Speaker malen for(int x = 92; x<92+16; x++){//Großes Herz am Haken entfernen for(int y = 2+3*15; y<64; y++) reset_pixel(x,y); } } else { print_symbol(16,16, herzSymb, 92, 2+3*15);//Großes Herz am Haken malen for(int x = 64-8; x<64+8; x++){//kleines Herz über Speaker entfernen for(int y = 2; y<11; y++) reset_pixel(x,y); } } update_LCD(); goodNight(); check_light(); } btn_drehenc_pushed = false; for(int x = 64-8; x<64+8; x++){ for(int y = 2; y<11; y++) reset_pixel(x,y); } if(item==0){ print_symbol(8,HERZ_KLEIN_WIDTH,herzKleinOffenSymb,64-HERZ_KLEIN_WIDTH/2, 2); update_LCD(); btn_drehenc_pushed = false; while(!btn_drehenc_pushed){ goodNight(); if(rotary>0){ volume(UP); rotary = 0; } else { volume(DOWN); rotary = 0; } check_light(); } btn_drehenc_pushed = false; } } clear_pixelMatrix(); clear_LCD(); print_ASCIIString(20,16, warte_ASCII, sizeof(warte_ASCII)/sizeof(warte_ASCII[0])); update_LCD(); shutdown_amp(); mp3Player_onoff(); }