void PA::MarkAsTodo(unsigned mark) { if (_listlink.empty()) { warning_message("The list has not listed or it's invalid."); my_pause(); return; } map_iterator it = _listlink.find(mark); if (it == _listlink.end()) { warning_message("The number doesn't exist in the list."); my_pause(); return; } (*(it->second))->mark_todo(); }
void PA::Delete(unsigned mark) { if (_listlink.empty()) { warning_message("The list has not listed or it's invalid."); my_pause(); return; } map_iterator it = _listlink.find(mark); if (it == _listlink.end()) { warning_message("The number doesn't exist in the list."); my_pause(); return; } delete *(it->second); _affair.erase(it->second); _listlink.erase(it); }
void* signal_handler_thread(void * c) { struct sigaction act; sigset_t set; // Make sure to UNBLOCK all sigemptyset(&set); pthread_sigmask(SIG_SETMASK,&set,NULL); // Setup handler for USR1 signal act.sa_handler = USR1_handler; act.sa_flags = 0; sigemptyset(&act.sa_mask); if (sigaction(SIGUSR1, &act, NULL) != 0) { printf("ERROR: can't install SIGUSR1 signal handler"); return NULL; } // Setup handler for INT signal act.sa_handler = SIGINT_handler; act.sa_flags = 0; sigemptyset(&act.sa_mask); if (sigaction(SIGINT, &act, NULL) != 0) { printf("ERROR: can't install SIGINT signal handler"); return NULL; } act.sa_handler = USR2_handler; act.sa_flags = 0; sigemptyset(&act.sa_mask); if (sigaction(SIGUSR2, &act, NULL) != 0) { printf("ERROR: can't install SIGUSR2 signal handler"); return NULL; } // Wait forever while (!finish_thread) { my_pause(); } printf("Exiting signal_handler thread\n"); return NULL; }
/* main */ int main(void) { int buttons_fd; int key_value; link_t head; buttons_fd = open("/dev/key", 0); if (buttons_fd < 0) { perror("open device buttons"); exit(1); } head = create_song_list(SONG_DIRECTORY); if (is_empty_list(head) == 1) { printf("The song list is empty !\n"); destroy_list(head); exit(1); } printf("===================================SONG LIST====================================\n"); traverse_list(print_songname, head); printf("================================================================================\n"); printf("===================================FUNTION======================================\n\n"); printf(" K1:START/PAUSE K2:STOP K3:NEXT K4:PRIOR\n\n"); printf("================================================================================\n"); if ((shmid = shmget(IPC_PRIVATE, 5, PERM)) == -1) { perror("shmget"); exit(1); } p_addr = shmat(shmid, 0, 0); memset(p_addr, '\0', 1024); while (1) { fd_set rds; int ret; FD_ZERO(&rds); FD_SET(buttons_fd, &rds); ret = select(buttons_fd + 1, &rds, NULL, NULL, NULL); if (ret < 0) { perror("select"); exit(1); } if (ret == 0) { printf("Timeout.\n"); } else if (FD_ISSET(buttons_fd, &rds)) { ret = read(buttons_fd, &key_value, sizeof key_value); if (ret != sizeof key_value) { if (errno != EAGAIN) perror("read buttons\n"); continue; } else { printf("buttons_value: %d\n", key_value + 1); if (first_key == 1) { switch(key_value) { case 0: startplay(&pid, head->next, head); first_key = 0; break; case 1: case 2: case 3: printf("=======================PRESS K1 TO START PLAY===================\n"); break; default: printf("=======================PRESS K1 TO START PLAY===================\n"); break; } //end switch }//end if(first_key) else if(first_key == 0) { memcpy(&gradchild, p_addr, sizeof(pid_t)); switch(key_value) { case 0: //printf("play_flag:%d\n",play_flag); if(play_flag == 1) { my_pause(gradchild); } else { conti_play(gradchild); } break; case 1: my_stop(gradchild); first_key = 1; break; case 2: next(gradchild, head); break; case 3: prev(gradchild, head); break; default: break; } //end switch }//end if(!first_key) } } } destroy_list(head); close(buttons_fd); return 0; }
int main(void) { int syserr = -1; int sock = -1; sock = socket(AF_INET, SOCK_STREAM, 0); assert(sock != -1); struct sockaddr_in addr = { .sin_family=AF_INET, .sin_port=htons(PORTNO), .sin_addr.s_addr=inet_addr("10.96.157.84"), }; syserr = connect(sock, &addr, sizeof addr); assert(syserr == 0); // //char buff1[] = "abc\nABC\nde"; char buff1[] = "GET / HTTP/1.1\r\n" #if 1 "Content-Length: 100\r\n" "\r\n" "A123456789" "B123456789" "C123456789" "D123456789" "E1234567\r\n" "F123456789" "G123456789" "H123456789" "I123456789" "J123456789" #else "Content-Length: 10\r\n" "\r\n" "A123456789" #endif ; //size_t wsize1 = sizeof buff1; size_t wsize1 = strlen(buff1); fprintf(stderr, "SEND %zd [%.*s]\n", wsize1, (int)wsize1, buff1); ssize_t nw1 = write(sock, buff1, wsize1); assert(nw1 == (ssize_t)wsize1); // #if 0 my_pause("sended-1"); // char buff2[] = "fg\nhi"; //size_t wsize2 = sizeof buff2; size_t wsize2 = strlen(buff2); ssize_t nw2 = write(sock, buff2, wsize2); assert(nw2 == (ssize_t)wsize2); // my_pause("sended-2"); // shutdown(sock, SHUT_WR); #endif // while (1) { char rbuf[10] = { 0 }; ssize_t nr = read(sock, rbuf, sizeof(rbuf) - 1); if (nr <= 0) { break; } rbuf[nr] = '\0'; printf("[%s]\n", rbuf); } close(sock); return 0; }
void do_step(void) { int syserr = -1; int sock = -1; my_pause("do connect"); sock = conn(); if (sock == -1) { goto EXIT_LABEL; } my_pause("do write"); ssize_t nw = write_bigdata(sock); if (nw == -1) { perror("write"); goto EXIT_LABEL; } my_pause("do shutdown"); shutdown(sock, SHUT_WR); my_pause("do read"); ssize_t nr = 0; do { char buf[10] = { 0 }; nr = read(sock, buf, sizeof(buf) - 1); if (nr) { buf[nr] = '\0'; printf("[%s]\n", buf); } } while (nr); my_pause("do close"); close(sock); sock = -1; syserr = 0; EXIT_LABEL: if (sock != -1) { close(sock); sock = -1; } printf("syserr = %d\n", syserr); }
int main(int argc, const char *argv[]) { if (argc < 2) { std::cout << "Usage: " << std::string(argv[0]) << " movie_path" << std::endl; my_pause(); return 1; } std::string mediaFile = std::string(argv[1]); std::cout << "Going to open movie file \"" << mediaFile << "\"" << std::endl; sfe::Movie movie; if (!movie.openFromFile(mediaFile)) { my_pause(); return 1; } bool fullscreen = false; sf::VideoMode desktopMode = sf::VideoMode::getDesktopMode(); float width = std::min(static_cast<float>(desktopMode.width), movie.getSize().x); float height = std::min(static_cast<float>(desktopMode.height), movie.getSize().y); // For audio files, there is no frame size, set a minimum: if (width * height < 1.f) { width = std::max(width, 250.f); height = std::max(height, 40.f); } // Create window sf::RenderWindow window(sf::VideoMode(width, height), "sfeMovie Player", sf::Style::Close | sf::Style::Resize); // Scale movie to the window drawing area and enable VSync window.setFramerateLimit(60); window.setVerticalSyncEnabled(true); movie.fit(0, 0, width, height); UserInterface ui(window, movie); StreamSelector selector(movie); displayShortcuts(); movie.play(); while (window.isOpen()) { sf::Event ev; while (window.pollEvent(ev)) { // Window closure if (ev.type == sf::Event::Closed || (ev.type == sf::Event::KeyPressed && ev.key.code == sf::Keyboard::Escape)) { window.close(); } if (ev.type == sf::Event::KeyPressed) { switch (ev.key.code) { case sf::Keyboard::Space: if (movie.getStatus() == sfe::Playing) movie.pause(); else movie.play(); break; case sf::Keyboard::A: if (ev.key.alt) selector.selectNextStream(sfe::Audio); break; case sf::Keyboard::F: fullscreen = !fullscreen; if (fullscreen) window.create(desktopMode, "sfeMovie Player", sf::Style::Fullscreen); else window.create(sf::VideoMode(width, height), "sfeMovie Player", sf::Style::Close | sf::Style::Resize); window.setFramerateLimit(60); window.setVerticalSyncEnabled(true); movie.fit(0, 0, (float)window.getSize().x, (float)window.getSize().y); ui.applyProperties(); break; case sf::Keyboard::H: ui.toggleVisible(); break; case sf::Keyboard::I: displayMediaInfo(movie);; break; case sf::Keyboard::S: if (ev.key.alt) selector.selectNextStream(sfe::Subtitle); else movie.stop(); break; case sf::Keyboard::V: if (ev.key.alt) selector.selectNextStream(sfe::Video); default: break; } } else if (ev.type == sf::Event::MouseWheelMoved) { float volume = movie.getVolume() + 10 * ev.mouseWheel.delta; volume = std::min(volume, 100.f); volume = std::max(volume, 0.f); movie.setVolume(volume); std::cout << "Volume changed to " << int(volume) << "%" << std::endl; } else if (ev.type == sf::Event::Resized) { movie.fit(0, 0, window.getSize().x, window.getSize().y); window.setView(sf::View(sf::FloatRect(0, 0, (float)window.getSize().x, (float)window.getSize().y))); } else if (ev.type == sf::Event::MouseButtonPressed || (ev.type == sf::Event::MouseMoved && sf::Mouse::isButtonPressed(sf::Mouse::Left))) { int xPos = 0; if (ev.type == sf::Event::MouseButtonPressed) xPos = ev.mouseButton.x; else if (ev.type == sf::Event::MouseMoved) xPos = ev.mouseMove.x; float ratio = static_cast<float>(xPos) / window.getSize().x; sf::Time targetTime = ratio * movie.getDuration(); movie.setPlayingOffset(targetTime); } } movie.update(); // Render movie window.clear(); window.draw(movie); ui.draw(); window.display(); } return 0; }