summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-04-20 21:02:20 (UTC)
committer llornkcor <llornkcor>2002-04-20 21:02:20 (UTC)
commitb452044ec1b3327f25f8552045b4229c8af39bf7 (patch) (side-by-side diff)
tree1a3785f1af71fe38aabe131a2a8f0ad8a5be76c9
parent99904a1df601bb5d1c0e6d43a3e04a63fe13cf51 (diff)
downloadopie-b452044ec1b3327f25f8552045b4229c8af39bf7.zip
opie-b452044ec1b3327f25f8552045b4229c8af39bf7.tar.gz
opie-b452044ec1b3327f25f8552045b4229c8af39bf7.tar.bz2
http streaming
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmad/libmad.pro2
-rw-r--r--core/multimedia/opieplayer/libmad/libmadplugin.cpp59
2 files changed, 42 insertions, 19 deletions
diff --git a/core/multimedia/opieplayer/libmad/libmad.pro b/core/multimedia/opieplayer/libmad/libmad.pro
index eddf242..679242b 100644
--- a/core/multimedia/opieplayer/libmad/libmad.pro
+++ b/core/multimedia/opieplayer/libmad/libmad.pro
@@ -6,5 +6,5 @@ SOURCES = version.c fixed.c bit.c timer.c stream.c frame.c synth.c dec
layer12.c layer3.c huffman.c libmadplugin.cpp libmadpluginimpl.cpp
TARGET = madplugin
-DESTDIR = ../../plugins/codecs
+DESTDIR = ../../../plugins/codecs
INCLUDEPATH += $(OPIEDIR)/include ..
DEPENDPATH += ../$(OPIEDIR)/include ..
diff --git a/core/multimedia/opieplayer/libmad/libmadplugin.cpp b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
index 46f2450..4665408 100644
--- a/core/multimedia/opieplayer/libmad/libmadplugin.cpp
+++ b/core/multimedia/opieplayer/libmad/libmadplugin.cpp
@@ -18,4 +18,9 @@
**
**********************************************************************/
+#include <qapplication.h>
+#include <qpe/config.h>
+#include <qmessagebox.h>
+#include <qstring.h>
+
#include <stdio.h>
#include <stdarg.h>
@@ -32,6 +37,5 @@
#include <math.h>
#include <assert.h>
-#include <qapplication.h>
-#include <qpe/config.h>
+
// for network handling
@@ -234,4 +238,5 @@ int LibMadPlugin::http_read_line(int tcp_sock, char *buf, int size) {
int LibMadPlugin::http_open(const QString& path ) {
+ qDebug("Open http");
char *host;
int port;
@@ -243,13 +248,19 @@ int LibMadPlugin::http_open(const QString& path ) {
char *arg =strdup(path.latin1());
+ QString errorMsg;
+
/* Check for URL syntax */
- if (strncmp(arg, "http://", strlen("http://")))
- return (0);
+// if (strncmp(arg, "http://", strlen("http://"))) {
+// qDebug("Url syntax error");
+// return (0);
+// }
- /* Parse URL */
+ qDebug("Parse URL");
port = 80;
host = arg + strlen("http://");
- if ((request = strchr(host, '/')) == NULL)
+ if ((request = strchr(host, '/')) == NULL) {
+ qDebug("Url syntax 2error %s", host);
return (0);
+ }
*request++ = 0;
@@ -260,8 +271,9 @@ int LibMadPlugin::http_open(const QString& path ) {
}
- /* Open a TCP socket */
- if (!(tcp_sock = tcp_open(host, port)))
- {
- perror("http_open");
+ 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);
return (0);
}
@@ -275,9 +287,10 @@ int LibMadPlugin::http_open(const QString& path ) {
/* "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);
- /* Parse server reply */
+ qDebug("Parse server reply");
#if 0
+ qDebug("do 0");
do
read(tcp_sock, &c, sizeof(char));
@@ -313,5 +326,5 @@ int LibMadPlugin::http_open(const QString& path ) {
if (strncmp(http_request, "Location:", 9) == 0)
{
- /* redirect */
+ qDebug("redirect");
std::close(tcp_sock);
@@ -323,5 +336,5 @@ int LibMadPlugin::http_open(const QString& path ) {
if (strncmp(http_request, "ICY ", 4) == 0)
{
- /* This is icecast streaming */
+ qDebug(" This is icecast streaming");
if (strncmp(http_request + 4, "200 ", 4))
{
@@ -353,9 +366,14 @@ bool LibMadPlugin::open( const QString& path ) {
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 {
@@ -367,6 +385,8 @@ bool LibMadPlugin::open( const QString& path ) {
return FALSE;
}
-
- printID3Tags();
+ if(!isStream) {
+ qDebug("Print ID#tags");
+ printID3Tags();
+ }
#if defined(HAVE_MMAP)
@@ -396,6 +416,9 @@ bool LibMadPlugin::open( const QString& path ) {
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);