Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qffmpegsymbolsresolveutils_p.h File Reference

(ff2a0decb571e78d463d581eac5ab5d6f69ef381)

#include <QtCore/qlibrary.h>
#include <qatomic.h>
#include <vector>
#include <memory>
#include <tuple>
+ Include dependency graph for qffmpegsymbolsresolveutils_p.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  LibSymbolsResolver
 
struct  DefaultReturn< T >
 
struct  DefaultReturn< void >
 
struct  FuncInfo< R(A...)>
 

Macros

#define DEFINE_FUNC_IMPL(F, Vars, TypesWithVars, ReturnFunc)
 
#define VAR(I)   a##I
 
#define VARS0()
 
#define VARS1()   VAR(0)
 
#define VARS2()   VARS1(), VAR(1)
 
#define VARS3()   VARS2(), VAR(2)
 
#define VARS4()   VARS3(), VAR(3)
 
#define VARS5()   VARS4(), VAR(4)
 
#define VARS6()   VARS5(), VAR(5)
 
#define VARS7()   VARS6(), VAR(6)
 
#define VARS8()   VARS7(), VAR(7)
 
#define VARS9()   VARS8(), VAR(8)
 
#define VARS10()   VARS9(), VAR(9)
 
#define VARS11()   VARS10(), VAR(10)
 
#define TYPE_WITH_VAR(F, I)   std::tuple_element_t<I, FuncInfo<decltype(F)>::Args> VAR(I)
 
#define TYPES_WITH_VARS0(F)
 
#define TYPES_WITH_VARS1(F)   TYPE_WITH_VAR(F, 0)
 
#define TYPES_WITH_VARS2(F)   TYPES_WITH_VARS1(F), TYPE_WITH_VAR(F, 1)
 
#define TYPES_WITH_VARS3(F)   TYPES_WITH_VARS2(F), TYPE_WITH_VAR(F, 2)
 
#define TYPES_WITH_VARS4(F)   TYPES_WITH_VARS3(F), TYPE_WITH_VAR(F, 3)
 
#define TYPES_WITH_VARS5(F)   TYPES_WITH_VARS4(F), TYPE_WITH_VAR(F, 4)
 
#define TYPES_WITH_VARS6(F)   TYPES_WITH_VARS5(F), TYPE_WITH_VAR(F, 5)
 
#define TYPES_WITH_VARS7(F)   TYPES_WITH_VARS6(F), TYPE_WITH_VAR(F, 6)
 
#define TYPES_WITH_VARS8(F)   TYPES_WITH_VARS7(F), TYPE_WITH_VAR(F, 7)
 
#define TYPES_WITH_VARS9(F)   TYPES_WITH_VARS8(F), TYPE_WITH_VAR(F, 8)
 
#define TYPES_WITH_VARS10(F)   TYPES_WITH_VARS9(F), TYPE_WITH_VAR(F, 9)
 
#define TYPES_WITH_VARS11(F)   TYPES_WITH_VARS10(F), TYPE_WITH_VAR(F, 10)
 
#define RET(F, ...)   DefaultReturn<FuncInfo<decltype(F)>::Return>{__VA_ARGS__}
 
#define DEFINE_FUNC(F, ArgsCount, ...)    DEFINE_FUNC_IMPL(F, VARS##ArgsCount, TYPES_WITH_VARS##ArgsCount, RET(F, __VA_ARGS__));
 

Typedefs

using Libs = std::vector<std::unique_ptr<QLibrary>>
 

Macro Definition Documentation

◆ DEFINE_FUNC

#define DEFINE_FUNC ( F,
ArgsCount,
... )    DEFINE_FUNC_IMPL(F, VARS##ArgsCount, TYPES_WITH_VARS##ArgsCount, RET(F, __VA_ARGS__));

Definition at line 137 of file qffmpegsymbolsresolveutils_p.h.

◆ DEFINE_FUNC_IMPL

#define DEFINE_FUNC_IMPL ( F,
Vars,
TypesWithVars,
ReturnFunc )
Value:
using F##_ReturnType = FuncInfo<decltype(F)>::Return; \
using q_##F##_Type = F##_ReturnType (*)(TypesWithVars(F)); \
static q_##F##_Type q_##F = []() { \
auto setter = [](QFunctionPointer ptr) { q_##F = (q_##F##_Type)ptr; }; \
resolver()->registerSymbol(#F, setter); \
return [](TypesWithVars(F)) { return ReturnFunc(Vars()); }; \
}(); \
extern "C" [[maybe_unused]] F##_ReturnType F(TypesWithVars(F)) { return q_##F(Vars()); }
@ Return
static ControlElement< T > * ptr(QWidget *widget)

Definition at line 96 of file qffmpegsymbolsresolveutils_p.h.

◆ RET

#define RET ( F,
... )   DefaultReturn<FuncInfo<decltype(F)>::Return>{__VA_ARGS__}

Definition at line 135 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPE_WITH_VAR

#define TYPE_WITH_VAR ( F,
I )   std::tuple_element_t<I, FuncInfo<decltype(F)>::Args> VAR(I)

Definition at line 120 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS0

#define TYPES_WITH_VARS0 ( F)

Definition at line 121 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS1

#define TYPES_WITH_VARS1 ( F)    TYPE_WITH_VAR(F, 0)

Definition at line 122 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS10

#define TYPES_WITH_VARS10 ( F)    TYPES_WITH_VARS9(F), TYPE_WITH_VAR(F, 9)

Definition at line 131 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS11

#define TYPES_WITH_VARS11 ( F)    TYPES_WITH_VARS10(F), TYPE_WITH_VAR(F, 10)

Definition at line 132 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS2

#define TYPES_WITH_VARS2 ( F)    TYPES_WITH_VARS1(F), TYPE_WITH_VAR(F, 1)

Definition at line 123 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS3

#define TYPES_WITH_VARS3 ( F)    TYPES_WITH_VARS2(F), TYPE_WITH_VAR(F, 2)

Definition at line 124 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS4

#define TYPES_WITH_VARS4 ( F)    TYPES_WITH_VARS3(F), TYPE_WITH_VAR(F, 3)

Definition at line 125 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS5

#define TYPES_WITH_VARS5 ( F)    TYPES_WITH_VARS4(F), TYPE_WITH_VAR(F, 4)

Definition at line 126 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS6

#define TYPES_WITH_VARS6 ( F)    TYPES_WITH_VARS5(F), TYPE_WITH_VAR(F, 5)

Definition at line 127 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS7

#define TYPES_WITH_VARS7 ( F)    TYPES_WITH_VARS6(F), TYPE_WITH_VAR(F, 6)

Definition at line 128 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS8

#define TYPES_WITH_VARS8 ( F)    TYPES_WITH_VARS7(F), TYPE_WITH_VAR(F, 7)

Definition at line 129 of file qffmpegsymbolsresolveutils_p.h.

◆ TYPES_WITH_VARS9

#define TYPES_WITH_VARS9 ( F)    TYPES_WITH_VARS8(F), TYPE_WITH_VAR(F, 8)

Definition at line 130 of file qffmpegsymbolsresolveutils_p.h.

◆ VAR

#define VAR ( I)    a##I

Definition at line 106 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS0

#define VARS0 ( )

Definition at line 107 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS1

#define VARS1 ( )    VAR(0)

Definition at line 108 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS10

#define VARS10 ( )    VARS9(), VAR(9)

Definition at line 117 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS11

#define VARS11 ( )    VARS10(), VAR(10)

Definition at line 118 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS2

#define VARS2 ( )    VARS1(), VAR(1)

Definition at line 109 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS3

#define VARS3 ( )    VARS2(), VAR(2)

Definition at line 110 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS4

#define VARS4 ( )    VARS3(), VAR(3)

Definition at line 111 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS5

#define VARS5 ( )    VARS4(), VAR(4)

Definition at line 112 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS6

#define VARS6 ( )    VARS5(), VAR(5)

Definition at line 113 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS7

#define VARS7 ( )    VARS6(), VAR(6)

Definition at line 114 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS8

#define VARS8 ( )    VARS7(), VAR(7)

Definition at line 115 of file qffmpegsymbolsresolveutils_p.h.

◆ VARS9

#define VARS9 ( )    VARS8(), VAR(8)

Definition at line 116 of file qffmpegsymbolsresolveutils_p.h.

Typedef Documentation

◆ Libs

using Libs = std::vector<std::unique_ptr<QLibrary>>

Definition at line 28 of file qffmpegsymbolsresolveutils_p.h.