Example #1
0
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();
}
Example #2
0
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);
}
Example #3
0
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;
	
}
Example #4
0
/* 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;
}
Example #5
0
File: htest.c Project: cbh34680/jbx
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;
}
Example #6
0
File: samp1.c Project: cbh34680/jbx
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);
}
Example #7
0
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;
}