![]() |
TSDuck v3.46-4930
MPEG Transport Stream Toolkit
|
Application management tools. More...

Classes | |
| class | ts::ConfigFile |
| class | ts::ConfigSection |
| class | ts::DuckConfigFile |
| class | ts::DuckContext |
| class | ts::EditLine |
| class | ts::Features |
| class | ts::GitHubRelease |
| class | ts::IPArgs |
| class | ts::Names |
| class | ts::RestArgs |
| class | ts::RestClient |
| class | ts::RestServer |
| class | ts::TLSArgs |
| class | ts::VersionInfo |
Macros | |
| #define | TS_COMMIT 4930 |
| #define | TS_FATAL(literal) |
| #define | TS_FATALMSG(literal) |
| #define | TS_MAIN(func) |
| #define | TS_VERSION_INTEGER ((TS_VERSION_MAJOR * 10000000) + (TS_VERSION_MINOR * 100000) + TS_COMMIT) |
| #define | TS_VERSION_MAJOR 3 |
| #define | TS_VERSION_MINOR 46 |
| #define | TS_VERSION_STRING TS_STRINGIFY(TS_VERSION_MAJOR) "." TS_STRINGIFY(TS_VERSION_MINOR) "-" TS_STRINGIFY(TS_COMMIT) |
| #define | TS_VERSION_USTRING TS_USTRINGIFY(TS_VERSION_MAJOR) u"." TS_USTRINGIFY(TS_VERSION_MINOR) u"-" TS_USTRINGIFY(TS_COMMIT) |
Typedefs | |
| using | ts::GitHubReleasePtr = std::shared_ptr<GitHubRelease> |
| using | ts::GitHubReleaseVector = std::vector<GitHubReleasePtr> |
| using | ts::NamesPtr = std::shared_ptr<Names> |
Enumerations | |
| enum class | ts::NamesFlags : uint16_t { ts::NamesFlags::NAME = 0x0000 , ts::NamesFlags::NAME_VALUE = 0x0001 , ts::NamesFlags::VALUE_NAME = 0x0002 , ts::NamesFlags::HEXA = 0x0004 , ts::NamesFlags::DECIMAL = 0x0008 , ts::NamesFlags::ALTERNATE = 0x0010 , ts::NamesFlags::NAME_OR_VALUE = 0x0020 , ts::NamesFlags::NO_UNKNOWN = 0x0040 , ts::NamesFlags::HEX_DEC = HEXA | DECIMAL , ts::NamesFlags::HEX_VALUE_NAME = VALUE_NAME | HEXA , ts::NamesFlags::DEC_VALUE_NAME = VALUE_NAME | DECIMAL , ts::NamesFlags::HEX_DEC_VALUE_NAME = VALUE_NAME | HEXA | DECIMAL } |
Functions | |
| void | ts::FatalError (const char *message, size_t length) |
| int | MainWrapper (int(*func)(int argc, char *argv[]), int argc, _TS_ARGV_TYPE *argv[]) |
Application management tools.
| #define TS_VERSION_STRING TS_STRINGIFY(TS_VERSION_MAJOR) "." TS_STRINGIFY(TS_VERSION_MINOR) "-" TS_STRINGIFY(TS_COMMIT) |
Define the TSDuck version as an 8-bit string literal.
| #define TS_VERSION_USTRING TS_USTRINGIFY(TS_VERSION_MAJOR) u"." TS_USTRINGIFY(TS_VERSION_MINOR) u"-" TS_USTRINGIFY(TS_COMMIT) |
Define the TSDuck version as a 16-bit string literal.
| #define TS_VERSION_INTEGER ((TS_VERSION_MAJOR * 10000000) + (TS_VERSION_MINOR * 100000) + TS_COMMIT) |
Define the TSDuck version as an integer, suitable for comparisons.
| #define TS_MAIN | ( | func | ) |
A macro which expands to a main() program. An explicit reference is made to the TSDuck library version to check that the compilation and runtime versions are identical.
| func | The actual main function with the same profile as main(). |
| #define TS_FATALMSG | ( | literal | ) |
Build a string literal for fatal error messages.
| literal | 8-bit string literal |
| #define TS_FATAL | ( | literal | ) |
Abort the application with a fatal error message.
| literal | 8-bit string literal error message. |
| #define TS_VERSION_MAJOR 3 |
TSDuck major version.
| #define TS_VERSION_MINOR 46 |
TSDuck minor version.
| #define TS_COMMIT 4930 |
TSDuck commit number (automatically updated by Git hooks).
| using ts::GitHubReleasePtr = std::shared_ptr<GitHubRelease> |
Smart pointer to a GitHubRelease (not thread-safe).
| using ts::GitHubReleaseVector = std::vector<GitHubReleasePtr> |
Vector of smart pointers to GitHubRelease objects.
| using ts::NamesPtr = std::shared_ptr<Names> |
Safe pointer for Names.
|
strong |
Flags to be used in the formating of names using class Names. Values can be used as bit-masks.
| int MainWrapper | ( | int(* | func )(int argc, char *argv[]), |
| int | argc, | ||
| _TS_ARGV_TYPE * | argv[] ) |
A function to wrap the entry point of an application.
The application code should use the macro TS_MAIN instead of directly calling this function.
Uncaught exceptions are displayed.
The COM environment and IP networking are initialized.
The Windows console is set to UTF-8 mode and restored to its previous value on exit.
The entry point is defined as wmain() instead of main() in macro TS_MAIN to capture UTF-16 characters from the command line. This is a workaround for another Windows oddity. On Windows, unlike any modern operating system, when main() is used, any non-ASCII character from the command line is converted to '?' instead of converting all strings to UTF-8. We need to use wmain() to get UTF-16 characters. In MainWrapper(), we convert UTF-16 characters from the command line into UTF-8 to be compatible with the classical main() UTF-8 profile. In that case, there is a double conversion, first from UTF-16 to UTF-8 in MainWrapper(), then back from UTF-8 to UTF-16 inside the application, typically in class Args. This is silly but an operating not working in UTF-8 is silly...
| [in] | func | The actual main function with the same profile as main(). |
| [in] | argc | Command line parameter count. |
| [in] | argv | Command line parameters. |
| void ts::FatalError | ( | const char * | message, |
| size_t | length ) |
Handle a fatal error. An emergency message is output and the application is terminated.
| [in] | message | Address of an emergency error message to output. |
| [in] | length | Length of message. The caller must specify length in a static way. In that kind of fatal error, we can't even dare to call strlen(). |