int init_ais_decoder(char * host, char * port ,int show_levels,int _debug_nmea,int buf_len,int time_print_stats, int use_tcp_listener, int tcp_keep_ais_time){ debug_nmea=_debug_nmea; use_tcp = use_tcp_listener; pthread_mutex_init(&message_mutex, NULL); if(debug_nmea) fprintf(stderr,"Log NMEA sentences to console ON\n"); else fprintf(stderr,"Log NMEA sentences to console OFF\n"); if( !use_tcp_listener) { if (host && port && !initSocket(host, port)) { return EXIT_FAILURE; } } else { if (!initTcpSocket(port, debug_nmea, tcp_keep_ais_time)) { return EXIT_FAILURE; } } if (show_levels) on_sound_level_changed=sound_level_changed; on_nmea_sentence_received=nmea_sentence_received; initSoundDecoder(buf_len,time_print_stats); return 0; }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setFixedSize(600, 200); this->setStatusBar(NULL); lcdCtrl = new LcdControl; /* 各ボタン生成 */ btnUp = new QRightClickButton(this); btnUp->setGeometry( 75, 20, 50, 40); btnUp->setText("U"); btnDown = new QRightClickButton(this); btnDown->setGeometry( 75, 100, 50, 40); btnDown->setText("D"); btnLeft = new QRightClickButton(this); btnLeft->setGeometry( 20, 60, 50, 40); btnLeft->setText("L"); btnRight = new QRightClickButton(this); btnRight->setGeometry(130, 60, 50, 40); btnRight->setText("R"); btnBack = new QRightClickButton(this); btnBack->setGeometry( 20, 120, 50, 40); btnBack->setText("BACK"); btnEnter = new QRightClickButton(this); btnEnter->setGeometry(130, 120, 50, 40); btnEnter->setText("ENT"); /* ラベル生成 */ label = new QLabel(this); label->setText("R button -> toggle mode on/off"); label->setGeometry(18, 170, 260, 18); labelUp = new QLabel(this); labelUp->setText(""); labelUp->setGeometry(200, 120, 60, 18); labelDown = new QLabel(this); labelDown->setText(""); labelDown->setGeometry(260, 120, 60, 18); labelLeft = new QLabel(this); labelLeft->setText(""); labelLeft->setGeometry(320, 120, 60, 18); labelRight = new QLabel(this); labelRight->setText(""); labelRight->setGeometry(380, 120, 60, 18); labelBack = new QLabel(this); labelBack->setText(""); labelBack->setGeometry(200, 140, 60, 18); labelEnter = new QLabel(this); labelEnter->setText(""); labelEnter->setGeometry(260, 140, 60, 18); /* タイマ生成 */ // timer = new QTimer(this); // timerSample = new QTimer(this); stateBtnUp_Pushed = false; stateBtnUp_Toggled = false; stateBtnDown_Pushed = false; stateBtnDown_Toggled = false; stateBtnLeft_Pushed = false; stateBtnLeft_Toggled = false; stateBtnRight_Pushed = false; stateBtnRight_Toggled = false; stateBtnBack_Pushed = false; stateBtnBack_Toggled = false; stateBtnEnter_Pushed = false; stateBtnEnter_Toggled = false; /* シグナル/スロット登録 */ connect(btnUp, SIGNAL(pressed()), this, SLOT(pressedBtnUp())); connect(btnUp, SIGNAL(released()), this, SLOT(releasedBtnUp())); connect(btnUp, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnUp())); connect(btnDown, SIGNAL(pressed()), this, SLOT(pressedBtnDown())); connect(btnDown, SIGNAL(released()), this, SLOT(releasedBtnDown())); connect(btnDown, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnDown())); connect(btnLeft, SIGNAL(pressed()), this, SLOT(pressedBtnLeft())); connect(btnLeft, SIGNAL(released()), this, SLOT(releasedBtnLeft())); connect(btnLeft, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnLeft())); connect(btnRight, SIGNAL(pressed()), this, SLOT(pressedBtnRight())); connect(btnRight, SIGNAL(released()), this, SLOT(releasedBtnRight())); connect(btnRight, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnRight())); connect(btnBack, SIGNAL(pressed()), this, SLOT(pressedBtnBack())); connect(btnBack, SIGNAL(released()), this, SLOT(releasedBtnBack())); connect(btnBack, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnBack())); connect(btnEnter, SIGNAL(pressed()), this, SLOT(pressedBtnEnter())); connect(btnEnter, SIGNAL(released()), this, SLOT(releasedBtnEnter())); connect(btnEnter, SIGNAL(rightClicked()), this, SLOT(rightClickedBtnEnter())); // connect(timer, SIGNAL(timeout()), this, SLOT(changeBlink())); // connect(timerSample, SIGNAL(timeout()), this, SLOT(changeSample())); // TCPソケット初期化 initTcpSocket(); /* Blinkタイマ起動 */ //timer->start(500); /* サンプル用タイマ起動 */ //timerSample->start(500); }