This commit is contained in:
Thomas resiX 2025-02-15 07:43:27 +01:00
parent 3bdf55073a
commit 2336452447
3 changed files with 48 additions and 36 deletions

View file

@ -6,7 +6,6 @@
#include <string> #include <string>
#include <cstdlib> #include <cstdlib>
#include <curl/curl.h>
#include <vlc/vlc.h> #include <vlc/vlc.h>
#include <stdio.h> #include <stdio.h>
@ -19,6 +18,7 @@
#include <QStringList> #include <QStringList>
#include <QTextStream> #include <QTextStream>
#include <QMessageBox> #include <QMessageBox>
#include <QtNetwork>
player_gui::player_gui(QWidget *parent) : player_gui::player_gui(QWidget *parent) :
QMainWindow(parent), QMainWindow(parent),
@ -100,27 +100,34 @@ size_t player_gui::write_data(void *ptr, size_t size, size_t nmemb, void *stream
return written; return written;
} }
int player_gui::sender_holen(void){ int player_gui::sender_holen(void){
CURL *curl;
FILE *file; manager = new QNetworkAccessManager();
CURLcode res;
curl_global_init(CURL_GLOBAL_ALL); QString url = "http://" + ip + "/channels.m3u";
curl = curl_easy_init(); QNetworkRequest request(url);
if(curl){ QNetworkReply *reply = manager->get(request);
QString url = "http://" + ip + "/channels.m3u";
std::string urls = url.toStdString(); connect(reply, &QNetworkReply::finished, [=]() {
const char *cstr = urls.c_str(); if(reply->error() == QNetworkReply::NoError)
curl_easy_setopt(curl, CURLOPT_URL, cstr); {
file = fopen("channels.m3u", "wb"); QByteArray response = reply->readAll();
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, this->write_data); std::string Daten = response.toStdString();
curl_easy_setopt(curl, CURLOPT_WRITEDATA, file); std::cout << Daten << std::endl;
res = curl_easy_perform(curl); // do something with the data...
if(res != CURLE_OK) FILE *file = fopen("channels.m3u", "wb");
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); if (file!=NULL)
else {
std::cout << "Sender holen und in channels.m3u speichern..." << std::endl; std::fputs(response,file);
curl_easy_cleanup(curl); }
} fclose(file);
fclose(file); }
else // handle error
{
ui->statusbar->showMessage(reply->errorString().toUtf8().constData());
std::cout << reply->errorString().toUtf8().constData() << std::endl;
}
});
return 0; return 0;
} }
int player_gui::sender_laden(void){ int player_gui::sender_laden(void){

View file

@ -6,6 +6,7 @@
#include <QFile> #include <QFile>
#include <QFrame> #include <QFrame>
#include <QListWidget> #include <QListWidget>
#include <QtNetwork>
#include <vlc/vlc.h> #include <vlc/vlc.h>
namespace Ui { namespace Ui {
@ -38,6 +39,7 @@ private:
QString Name[10000]; QString Name[10000];
QString URL[10000]; QString URL[10000];
QString ip; QString ip;
QNetworkAccessManager *manager;
QFrame *videoWidget; QFrame *videoWidget;
libvlc_instance_t * inst; libvlc_instance_t * inst;
libvlc_media_player_t *mp=0; libvlc_media_player_t *mp=0;

View file

@ -1,19 +1,22 @@
QT += \
core \
gui \
widgets \
network
QT += core gui CONFIG += \
c++11 \
static
greaterThan(QT_MAJOR_VERSION, 4) : QT += widgets LIBS += \
-lvlc
SOURCES += \ SOURCES += \
main.cpp \ main.cpp \
player_gui.cpp player_gui.cpp
LIBS += -lcurl -lvlc HEADERS += \
DEFINES += CURL_STATICLIB VLC_STATICLIB player_gui.h
HEADERS += \ FORMS += \
player_gui.h player_gui.ui
#CONFIG+= static
FORMS += \
player_gui.ui