Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff -uNr recfriio-master.orig/recfriior5/AbstractFriio.cpp recfriio-master/recfriior5/AbstractFriio.cpp
- --- recfriio-master.orig/recfriior5/AbstractFriio.cpp 2016-03-24 13:59:48.000000000 +0900
- +++ recfriio-master/recfriior5/AbstractFriio.cpp 2023-08-15 18:39:19.521035884 +0900
- @@ -96,13 +96,13 @@
- return 0;
- }
- - if (req->urb.status != 0) {
- + if (req->urb->status != 0) {
- std::ostringstream stream;
- - stream << "UrbStatus: " << req->urb.status;
- + stream << "UrbStatus: " << req->urb->status;
- throw usb_error(stream.str());
- }
- - int rlen = req->urb.actual_length;
- + int rlen = req->urb->actual_length;
- *bufp = req->buf;
- return rlen;
- diff -uNr recfriio-master.orig/recfriior5/IoThread.cpp recfriio-master/recfriior5/IoThread.cpp
- --- recfriio-master.orig/recfriior5/IoThread.cpp 2016-03-24 13:59:48.000000000 +0900
- +++ recfriio-master/recfriior5/IoThread.cpp 2023-08-15 18:44:36.694324163 +0900
- @@ -23,7 +23,7 @@
- * 送信したURBをキャンセルする。
- */
- static void discard_async_request(AsyncRequest *r) {
- - int ret = usb_discardurb(r->fd, &(r->urb));
- + int ret = usb_discardurb(r->fd, r->urb);
- // EINVALは該当URBがkernel側のキューにない場合に返されるので無視で問題ない。
- if (ret < 0 && errno != EINVAL) {
- if (errno == EINVAL) {
- @@ -51,21 +51,25 @@
- // リクエスト待ちに空きがある。
- AsyncRequest *req = buf->getPushPtr(REQUEST_TIMEOUT_TS, discard_async_request);
- - memset(&(req->urb), '\0', sizeof(usbdevfs_urb));
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0)
- + memset(req->urb, '\0', sizeof(usbdevfs_urb) + sizeof(usbdevfs_iso_packet_desc));
- +#else
- + memset(req->urb, '\0', sizeof(usbdevfs_urb));
- +#endif
- memset(req->buf, '\0', TSDATASIZE);
- - req->urb.type = USBDEVFS_URB_TYPE_BULK;
- - req->urb.endpoint = endpoint;
- - req->urb.status = 0;
- - req->urb.buffer = req->buf;
- - req->urb.buffer_length = TSDATASIZE;
- - req->urb.actual_length = 0;
- - req->urb.number_of_packets = 0;
- - req->urb.signr = 0;
- - req->urb.usercontext = req;
- + req->urb->type = USBDEVFS_URB_TYPE_BULK;
- + req->urb->endpoint = endpoint;
- + req->urb->status = 0;
- + req->urb->buffer = req->buf;
- + req->urb->buffer_length = TSDATASIZE;
- + req->urb->actual_length = 0;
- + req->urb->number_of_packets = 0;
- + req->urb->signr = 0;
- + req->urb->usercontext = req;
- req->fd = fd;
- - int r = usb_submiturb(fd, &(req->urb));
- + int r = usb_submiturb(fd, req->urb);
- if (r < 0) {
- err(1, "can't send urb");
- }
- diff -uNr recfriio-master.orig/recfriior5/IoThread.hpp recfriio-master/recfriior5/IoThread.hpp
- --- recfriio-master.orig/recfriior5/IoThread.hpp 2016-03-24 13:59:48.000000000 +0900
- +++ recfriio-master/recfriior5/IoThread.hpp 2023-08-15 18:41:48.683725638 +0900
- @@ -9,13 +9,29 @@
- #include "usbops.hpp"
- #include "RingBuf.hpp"
- +#include <stdlib.h>
- +#include <linux/version.h>
- +
- /**
- * URB送信管理用
- */
- -struct AsyncRequest {
- - usbdevfs_urb urb;
- +class AsyncRequest {
- +public:
- + usbdevfs_urb *urb;
- int fd;
- uint8_t buf[TSDATASIZE];
- +
- + AsyncRequest() {
- +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,0,0)
- + urb = (usbdevfs_urb*) malloc(sizeof(usbdevfs_urb) + sizeof(usbdevfs_iso_packet_desc));
- +#else
- + urb = (usbdevfs_urb*) malloc(sizeof(usbdevfs_urb));
- +#endif
- + }
- +
- + ~AsyncRequest() {
- + free(urb);
- + }
- };
- /**
- diff -uNr recfriio-master.orig/recfriior5/Makefile recfriio-master/recfriior5/Makefile
- --- recfriio-master.orig/recfriior5/Makefile 2016-03-24 13:59:48.000000000 +0900
- +++ recfriio-master/recfriior5/Makefile 2023-08-15 18:42:01.957873377 +0900
- @@ -33,7 +33,7 @@
- CC = gcc
- CXX = g++
- -CXXFLAGS = -O2 -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25) $(HDUS) $(UDP) $(HTTP) $(TSSL) `pkg-config --cflags glib-2.0`
- +CXXFLAGS = -std=c++03 -O2 -g -Wall -pthread -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(B25) $(HDUS) $(UDP) $(HTTP) $(TSSL) `pkg-config --cflags glib-2.0`
- LDFLAGS =
- LIBS = -lpthread -lboost_thread -lboost_system -lboost_filesystem `pkg-config --libs glib-2.0`
- diff -uNr recfriio-master.orig/recfriior5/tssplitter_lite.hpp recfriio-master/recfriior5/tssplitter_lite.hpp
- --- recfriio-master.orig/recfriior5/tssplitter_lite.hpp 2016-03-24 13:59:48.000000000 +0900
- +++ recfriio-master/recfriior5/tssplitter_lite.hpp 2023-08-15 18:39:19.523035907 +0900
- @@ -65,7 +65,7 @@
- typedef struct _splitbuf_t
- {
- int size;
- - u_char buffer[32*1024*1024];
- + u_char buffer[4*1024*1024];
- } splitbuf_t;
- splitter* split_startup(char *sid);
Advertisement
Add Comment
Please, Sign In to add comment