author | llornkcor <llornkcor> | 2002-04-21 02:16:03 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-21 02:16:03 (UTC) |
commit | 1c459273c0e9e387fd5fe2e2c05bef4db5bce115 (patch) (side-by-side diff) | |
tree | cba3a1247a06ec54508c154b0232b7d33d581413 /core/multimedia/opieplayer/libmad/libmadplugin.cpp | |
parent | 0e028a1857c7648bc329cbbf5cb35435be909ea6 (diff) | |
download | opie-1c459273c0e9e387fd5fe2e2c05bef4db5bce115.zip opie-1c459273c0e9e387fd5fe2e2c05bef4db5bce115.tar.gz opie-1c459273c0e9e387fd5fe2e2c05bef4db5bce115.tar.bz2 |
I really dont understand..
Diffstat (limited to 'core/multimedia/opieplayer/libmad/libmadplugin.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/multimedia/opieplayer/libmad/libmadplugin.cpp | 68 |
1 files changed, 21 insertions, 47 deletions
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.cpp b/core/multimedia/opieplayer/libmad/libmadplugin.cpp index 7978805..7bb6541 100644 --- a/core/multimedia/opieplayer/libmad/libmadplugin.cpp +++ b/core/multimedia/opieplayer/libmad/libmadplugin.cpp @@ -8,44 +8,40 @@ ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ -#include <qapplication.h> -#include <qpe/config.h> -#include <qmessagebox.h> -#include <qstring.h> - #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <time.h> #include <locale.h> #include <math.h> #include <assert.h> - +#include <qapplication.h> +#include <qpe/config.h> // for network handling #include <netinet/in.h> #include <netdb.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> //#define HAVE_MMAP #if defined(HAVE_MMAP) @@ -228,82 +224,70 @@ int LibMadPlugin::http_read_line(int tcp_sock, char *buf, int size) { if (std::read(tcp_sock, buf + offset, 1) < 0) return -1; if (buf[offset] != '\r') /* Strip \r from answer */ offset++; } while (offset < size - 1 && buf[offset - 1] != '\n'); buf[offset] = 0; return offset; } int LibMadPlugin::http_open(const QString& path ) { - qDebug("Open http"); char *host; int port; char *request; int tcp_sock; char http_request[PATH_MAX]; char filename[PATH_MAX]; - // char c; + char c; char *arg =strdup(path.latin1()); - QString errorMsg; - /* Check for URL syntax */ -// if (strncmp(arg, "http://", strlen("http://"))) { -// qDebug("Url syntax error"); -// return (0); -// } + if (strncmp(arg, "http://", strlen("http://"))) + return (0); - qDebug("Parse URL"); + /* Parse URL */ port = 80; host = arg + strlen("http://"); - - // we need to think of something better than that - //if ((request = strchr(host, '/')) == NULL) { - // qDebug("Url syntax 2error %s", host); - // return (0); - // } - + if ((request = strchr(host, '/')) == NULL) + return (0); *request++ = 0; if (strchr(host, ':') != NULL) /* port is specified */ { port = atoi(strchr(host, ':') + 1); *strchr(host, ':') = 0; } - qDebug("Open a TCP socket"); - if (!(tcp_sock = tcp_open(host, port))) { - perror("http_open"); - errorMsg="http_open "+(QString)strerror(errno); - QMessageBox::message("OPiePlayer",errorMsg); + /* Open a TCP socket */ + if (!(tcp_sock = tcp_open(host, port))) + { + perror("http_open"); return (0); } snprintf(filename, sizeof(filename) - strlen(host) - 75, "%s", request); /* Send HTTP GET request */ /* Please don't use a Agent know by shoutcast (Lynx, Mozilla) seems to be reconized and print * a html page and not the stream */ snprintf(http_request, sizeof(http_request), "GET /%s HTTP/1.0\r\n" /* "User-Agent: Mozilla/2.0 (Win95; I)\r\n" */ "Pragma: no-cache\r\n" "Host: %s\r\n" "Accept: */*\r\n" "\r\n", filename, host); - qDebug("send"); + send(tcp_sock, http_request, strlen(http_request), 0); - qDebug("Parse server reply"); + /* Parse server reply */ #if 0 - qDebug("do 0"); do read(tcp_sock, &c, sizeof(char)); while (c != ' '); read(tcp_sock, http_request, 4 * sizeof(char)); http_request[4] = 0; if (strcmp(http_request, "200 ")) { fprintf(stderr, "http_open: "); do { read(tcp_sock, &c, sizeof(char)); fprintf(stderr, "%c", c); @@ -319,87 +303,80 @@ int LibMadPlugin::http_open(const QString& path ) { int len; len = http_read_line(tcp_sock, http_request, sizeof(http_request)); if (len == -1) { fprintf(stderr, "http_open: %s\n", strerror(errno)); return 0; } if (strncmp(http_request, "Location:", 9) == 0) { - qDebug("redirect"); + /* redirect */ std::close(tcp_sock); http_request[strlen(http_request) - 1] = '\0'; return http_open(&http_request[10]); } if (strncmp(http_request, "ICY ", 4) == 0) { - qDebug(" This is icecast streaming"); + /* This is icecast streaming */ if (strncmp(http_request + 4, "200 ", 4)) { fprintf(stderr, "http_open: %s\n", http_request); return 0; } } else if (strncmp(http_request, "icy-", 4) == 0) { /* we can have: icy-noticeX, icy-name, icy-genre, icy-url, icy-pub, icy-metaint, icy-br */ /* Don't print these - mpg123 doesn't */ /* fprintf(stderr,"%s\n",http_request); */ } } while (strcmp(http_request, "\n") != 0); return (tcp_sock); } bool LibMadPlugin::open( const QString& path ) { debugMsg( "LibMadPlugin::open" ); - Config cfg("OpiePlayer"); + Config cfg("MediaPlayer"); cfg.setGroup("Options"); bufferSize = cfg.readNumEntry("MPeg_BufferSize",MPEG_BUFFER_SIZE); qDebug("buffer size is %d", bufferSize); d->bad_last_frame = 0; d->flush = TRUE; info = QString( "" ); - qDebug( "Opening %s", path.latin1() ); + //qDebug( "Opening %s", path.latin1() ); + - bool isStream=FALSE; if (path.left( 4 ) == "http" ) { d->input.fd = http_open(path); - if(d->input.fd == 0) { - qDebug("http_open error"); - } - isStream=TRUE; - qDebug("Opened ok"); } else { d->input.path = path.latin1(); d->input.fd = ::open( d->input.path, O_RDONLY ); } if (d->input.fd == -1) { qDebug("error opening %s", d->input.path ); return FALSE; } - if(!isStream) { - qDebug("Print ID#tags"); - printID3Tags(); - } + + printID3Tags(); #if defined(HAVE_MMAP) struct stat stat; if (fstat(d->input.fd, &stat) == -1) { qDebug("error calling fstat"); return FALSE; } if (S_ISREG(stat.st_mode) && stat.st_size > 0) { d->input.length = stat.st_size; d->input.fdm = map_file(d->input.fd, &d->input.length); if (d->input.fdm == 0) { qDebug("error mmapping file"); return FALSE; } @@ -409,29 +386,26 @@ bool LibMadPlugin::open( const QString& path ) { if (d->input.data == 0) { d->input.data = (unsigned char *)malloc( bufferSize /*MPEG_BUFFER_SIZE*/); if (d->input.data == 0) { qDebug("error allocating input buffer"); return FALSE; } d->input.length = 0; } d->input.eof = 0; -qDebug("about to mad_stream"); mad_stream_init(&d->stream); -qDebug("mad_frame"); mad_frame_init(&d->frame); -qDebug("mad_synth"); mad_synth_init(&d->synth); return TRUE; } bool LibMadPlugin::close() { debugMsg( "LibMadPlugin::close" ); int result = TRUE; mad_synth_finish(&d->synth); |