refactor(libs): organize libSceVideoOut with cmakelists
This commit is contained in:
parent
792e0a1023
commit
bd16eaaacf
|
|
@ -0,0 +1,8 @@
|
|||
add_library(libSceVideoOut SHARED EXCLUDE_FROM_ALL
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/Event.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/Buffer.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/Output.cpp
|
||||
)
|
||||
|
||||
target_include_directories(libSceVideoOut PRIVATE ${LIBS_INCLUDE_DIR})
|
||||
target_link_libraries(libSceVideoOut PRIVATE libc)
|
||||
|
|
@ -1,219 +0,0 @@
|
|||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include "SceTypes.hpp"
|
||||
#include "prx/libc/include/General.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutAddFlipEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddOutputModeEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddPreVblankStartEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddVblankEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutClose(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutConfigureOutput(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved) {
|
||||
(void)handle;
|
||||
(void)mode;
|
||||
(void)options;
|
||||
(void)reserved_ptr;
|
||||
(void)reserved;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeleteFlipEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeletePreVblankStartEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeleteVblankEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventCount(const KernelEvent* ev) {
|
||||
(void)ev;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventData(const KernelEvent* ev, int64_t* data) {
|
||||
(void)ev;
|
||||
(void)data;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventId(const KernelEvent* ev) {
|
||||
(void)ev;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetFlipStatus(int handle, VideoOutFlipStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetOutputStatus(int handle, VideoOutOutputStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetVblankStatus(int handle, VideoOutVblankStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutInitializeOutputOptions(VideoOutOutputOptions* options) {
|
||||
(void)options;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutIsFlipPending(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutIsOutputSupported(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved) {
|
||||
(void)handle;
|
||||
(void)mode;
|
||||
(void)options;
|
||||
(void)reserved_ptr;
|
||||
(void)reserved;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutOpen(int user_id, int bus_type, int index, const void* param) {
|
||||
(void)user_id;
|
||||
(void)bus_type;
|
||||
(void)index;
|
||||
(void)param;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutRegisterBuffers2(int handle, int set_index, int buffer_index_start, const VideoOutBuffers* buffers, int buffer_num, const VideoOutBufferAttribute2* attribute, int category, void* option) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
(void)buffer_index_start;
|
||||
(void)buffers;
|
||||
(void)buffer_num;
|
||||
(void)attribute;
|
||||
(void)category;
|
||||
(void)option;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void APS5_VABI sceVideoOutSetBufferAttribute2(VideoOutBufferAttribute2* attribute, uint64_t pixel_format, uint32_t tiling_mode, uint32_t width, uint32_t height, uint64_t option, uint32_t dcc_control, uint64_t dcc_cb_register_clear_color) {
|
||||
(void)attribute;
|
||||
(void)pixel_format;
|
||||
(void)tiling_mode;
|
||||
(void)width;
|
||||
(void)height;
|
||||
(void)option;
|
||||
(void)dcc_control;
|
||||
(void)dcc_cb_register_clear_color;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSetFlipRate(int handle, int rate) {
|
||||
(void)handle;
|
||||
(void)rate;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSetWindowModeMargins(int handle, int top, int bottom) {
|
||||
(void)handle;
|
||||
(void)top;
|
||||
(void)bottom;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSubmitChangeBufferAttribute2(int handle, int set_index, const VideoOutBufferAttribute2* attribute, void* option) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
(void)attribute;
|
||||
(void)option;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSubmitFlip(int handle, int index, int flip_mode, int64_t flip_arg) {
|
||||
(void)handle;
|
||||
(void)index;
|
||||
(void)flip_mode;
|
||||
(void)flip_arg;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutUnregisterBuffers(int handle, int set_index) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutWaitVblank(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
#ifndef CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_OUTPUT_HPP
|
||||
#define CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_OUTPUT_HPP
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "SceTypes.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutRegisterBuffers2(int handle, int set_index, int buffer_index_start, const VideoOutBuffers* buffers, int buffer_num, const VideoOutBufferAttribute2* attribute, int category, void* option);
|
||||
void APS5_VABI sceVideoOutSetBufferAttribute2(VideoOutBufferAttribute2* attribute, uint64_t pixel_format, uint32_t tiling_mode, uint32_t width, uint32_t height, uint64_t option, uint32_t dcc_control, uint64_t dcc_cb_register_clear_color);
|
||||
int APS5_VABI sceVideoOutSubmitChangeBufferAttribute2(int handle, int set_index, const VideoOutBufferAttribute2* attribute, void* option);
|
||||
int APS5_VABI sceVideoOutSubmitFlip(int handle, int index, int flip_mode, int64_t flip_arg);
|
||||
int APS5_VABI sceVideoOutUnregisterBuffers(int handle, int set_index);
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_EVENT_HPP
|
||||
#define CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_EVENT_HPP
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "SceTypes.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutAddFlipEvent(KernelEqueue eq, int handle, void* udata);
|
||||
int APS5_VABI sceVideoOutAddOutputModeEvent(KernelEqueue eq, int handle, void* udata);
|
||||
int APS5_VABI sceVideoOutAddPreVblankStartEvent(KernelEqueue eq, int handle, void* udata);
|
||||
int APS5_VABI sceVideoOutAddVblankEvent(KernelEqueue eq, int handle, void* udata);
|
||||
|
||||
int APS5_VABI sceVideoOutDeleteFlipEvent(KernelEqueue eq, int handle);
|
||||
int APS5_VABI sceVideoOutDeletePreVblankStartEvent(KernelEqueue eq, int handle);
|
||||
int APS5_VABI sceVideoOutDeleteVblankEvent(KernelEqueue eq, int handle);
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventCount(const KernelEvent* ev);
|
||||
int APS5_VABI sceVideoOutGetEventData(const KernelEvent* ev, int64_t* data);
|
||||
int APS5_VABI sceVideoOutGetEventId(const KernelEvent* ev);
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_OUTPUT_HPP
|
||||
#define CORE_LIBS_PRX_LIBSCEVIDEOUOUT_INCLUDE_OUTPUT_HPP
|
||||
|
||||
#include <cstdint>
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "SceTypes.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutOpen(int user_id, int bus_type, int index, const void* param);
|
||||
int APS5_VABI sceVideoOutClose(int handle);
|
||||
int APS5_VABI sceVideoOutConfigureOutput(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved);
|
||||
int APS5_VABI sceVideoOutIsOutputSupported(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved);
|
||||
int APS5_VABI sceVideoOutInitializeOutputOptions(VideoOutOutputOptions* options);
|
||||
int APS5_VABI sceVideoOutSetFlipRate(int handle, int rate);
|
||||
int APS5_VABI sceVideoOutSetWindowModeMargins(int handle, int top, int bottom);
|
||||
int APS5_VABI sceVideoOutGetFlipStatus(int handle, VideoOutFlipStatus* status);
|
||||
int APS5_VABI sceVideoOutGetOutputStatus(int handle, VideoOutOutputStatus* status);
|
||||
int APS5_VABI sceVideoOutGetVblankStatus(int handle, VideoOutVblankStatus* status);
|
||||
int APS5_VABI sceVideoOutIsFlipPending(int handle);
|
||||
int APS5_VABI sceVideoOutWaitVblank(int handle);
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
#include <cstdint>
|
||||
#include "SceTypes.hpp"
|
||||
|
||||
#include "prx/libSceVideoOut/include/Buffer.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutRegisterBuffers2(int handle, int set_index, int buffer_index_start, const VideoOutBuffers* buffers, int buffer_num, const VideoOutBufferAttribute2* attribute, int category, void* option) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
(void)buffer_index_start;
|
||||
(void)buffers;
|
||||
(void)buffer_num;
|
||||
(void)attribute;
|
||||
(void)category;
|
||||
(void)option;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void APS5_VABI sceVideoOutSetBufferAttribute2(VideoOutBufferAttribute2* attribute, uint64_t pixel_format, uint32_t tiling_mode, uint32_t width, uint32_t height, uint64_t option, uint32_t dcc_control, uint64_t dcc_cb_register_clear_color) {
|
||||
(void)attribute;
|
||||
(void)pixel_format;
|
||||
(void)tiling_mode;
|
||||
(void)width;
|
||||
(void)height;
|
||||
(void)option;
|
||||
(void)dcc_control;
|
||||
(void)dcc_cb_register_clear_color;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSubmitChangeBufferAttribute2(int handle, int set_index, const VideoOutBufferAttribute2* attribute, void* option) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
(void)attribute;
|
||||
(void)option;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSubmitFlip(int handle, int index, int flip_mode, int64_t flip_arg) {
|
||||
(void)handle;
|
||||
(void)index;
|
||||
(void)flip_mode;
|
||||
(void)flip_arg;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutUnregisterBuffers(int handle, int set_index) {
|
||||
(void)handle;
|
||||
(void)set_index;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,79 @@
|
|||
#include "SceTypes.hpp"
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "../include/Event.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutAddFlipEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddOutputModeEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddPreVblankStartEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutAddVblankEvent(KernelEqueue eq, int handle, void* udata) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
(void)udata;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeleteFlipEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeletePreVblankStartEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutDeleteVblankEvent(KernelEqueue eq, int handle) {
|
||||
(void)eq;
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventCount(const KernelEvent* ev) {
|
||||
(void)ev;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventData(const KernelEvent* ev, int64_t* data) {
|
||||
(void)ev;
|
||||
(void)data;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetEventId(const KernelEvent* ev) {
|
||||
(void)ev;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
#include <cstdint>
|
||||
#include "SceTypes.hpp"
|
||||
#include "prx/libc/include/General.hpp"
|
||||
#include "../include/Output.hpp"
|
||||
|
||||
extern "C" {
|
||||
|
||||
int APS5_VABI sceVideoOutOpen(int user_id, int bus_type, int index, const void* param) {
|
||||
(void)user_id;
|
||||
(void)bus_type;
|
||||
(void)index;
|
||||
(void)param;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutClose(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutConfigureOutput(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved) {
|
||||
(void)handle;
|
||||
(void)mode;
|
||||
(void)options;
|
||||
(void)reserved_ptr;
|
||||
(void)reserved;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutIsOutputSupported(int handle, uint64_t mode, const VideoOutOutputOptions* options, void* reserved_ptr, uint64_t reserved) {
|
||||
(void)handle;
|
||||
(void)mode;
|
||||
(void)options;
|
||||
(void)reserved_ptr;
|
||||
(void)reserved;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutInitializeOutputOptions(VideoOutOutputOptions* options) {
|
||||
(void)options;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSetFlipRate(int handle, int rate) {
|
||||
(void)handle;
|
||||
(void)rate;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutSetWindowModeMargins(int handle, int top, int bottom) {
|
||||
(void)handle;
|
||||
(void)top;
|
||||
(void)bottom;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetFlipStatus(int handle, VideoOutFlipStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetOutputStatus(int handle, VideoOutOutputStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutGetVblankStatus(int handle, VideoOutVblankStatus* status) {
|
||||
(void)handle;
|
||||
(void)status;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutIsFlipPending(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceVideoOutWaitVblank(int handle) {
|
||||
(void)handle;
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue