comparison Plugins/Input/mpg123/http.c @ 1273:3b990c26fc46 trunk

[svn] - Support for the buffer indicator in playpaus.png that was apparently ignored by XMMS devs. Supports mp3 streams only, at the moment.
author nhjm449
date Fri, 16 Jun 2006 02:17:33 -0700
parents b5ae09a6c2f1
children f12d7e208b43
comparison
equal deleted inserted replaced
1272:11785f0bf967 1273:3b990c26fc46
653 g_free(output_name); 653 g_free(output_name);
654 } 654 }
655 655
656 while (going) { 656 while (going) {
657 657
658 if (!http_used() && !mpgdec_ip.output->buffer_playing()) 658 if (!http_used() && !mpgdec_ip.output->buffer_playing()) {
659 prebuffering = TRUE; 659 prebuffering = TRUE;
660 mpgdec_ip.set_status_buffering(TRUE);
661 }
660 if (http_free() > 0 && !eof) { 662 if (http_free() > 0 && !eof) {
661 if (http_check_for_data()) { 663 if (http_check_for_data()) {
662 cnt = min(http_free(), buffer_length - wr_index); 664 cnt = min(http_free(), buffer_length - wr_index);
663 if (cnt > 1024) 665 if (cnt > 1024)
664 cnt = 1024; 666 cnt = 1024;
665 written = read(sock, buffer + wr_index, cnt); 667 written = read(sock, buffer + wr_index, cnt);
666 if (written <= 0) { 668 if (written <= 0) {
667 eof = TRUE; 669 eof = TRUE;
668 if (prebuffering) { 670 if (prebuffering) {
669 prebuffering = FALSE; 671 prebuffering = FALSE;
672 mpgdec_ip.set_status_buffering(FALSE);
670 673
671 mpgdec_ip.set_info_text(NULL); 674 mpgdec_ip.set_info_text(NULL);
672 } 675 }
673 676
674 } 677 }
677 } 680 }
678 681
679 if (prebuffering) { 682 if (prebuffering) {
680 if (http_used() > prebuffer_length) { 683 if (http_used() > prebuffer_length) {
681 prebuffering = FALSE; 684 prebuffering = FALSE;
685 mpgdec_ip.set_status_buffering(FALSE);
682 mpgdec_ip.set_info_text(NULL); 686 mpgdec_ip.set_info_text(NULL);
683 } 687 }
684 else { 688 else {
685 status = 689 status =
686 g_strdup_printf(_("PRE-BUFFERING: %zuKB/%zuKB"), 690 g_strdup_printf(_("PRE-BUFFERING: %zuKB/%zuKB"),
731 buffer_length = mpgdec_cfg.http_buffer_size * 1024; 735 buffer_length = mpgdec_cfg.http_buffer_size * 1024;
732 prebuffer_length = (buffer_length * mpgdec_cfg.http_prebuffer) / 100; 736 prebuffer_length = (buffer_length * mpgdec_cfg.http_prebuffer) / 100;
733 buffer_read = 0; 737 buffer_read = 0;
734 icy_metaint = 0; 738 icy_metaint = 0;
735 prebuffering = TRUE; 739 prebuffering = TRUE;
740 mpgdec_ip.set_status_buffering(TRUE);
736 going = TRUE; 741 going = TRUE;
737 eof = FALSE; 742 eof = FALSE;
738 buffer = g_malloc(buffer_length); 743 buffer = g_malloc(buffer_length);
739 744
740 thread = g_thread_create(http_buffer_loop, url, TRUE, NULL); 745 thread = g_thread_create(http_buffer_loop, url, TRUE, NULL);