aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Rename StringUtil.strip() -> StringUtil.trim(), refine API docHEADmasterSven Göthel2024-02-042-43/+45
|
* Adding StringUtil, containing basic utility functions as well as unicode ↵Sven Göthel2024-02-042-0/+504
| | | | space (whitespace) and full- and halfwidth tests.
* PTS: Rename millisToTimeStr() -> toTimeStr(), analogue to toMillis()Sven Göthel2024-02-021-10/+10
|
* PTS: Add toMillis(String), parsing string representation in ↵Sven Göthel2024-02-021-3/+28
| | | | '[H[H]:]m[m]:s[s][.S*]' using custom DateTimeFormatter to milliseconds, complementing millisToTimeStr(..)
* PTS: Add convenient getCurrent() passing Clock.currentMillis() to get(long).Sven Göthel2024-01-311-0/+2
|
* Merge remote-tracking branch ↵Sven Göthel2024-01-051-1/+2
|\ | | | | | | 'Mathieu_Fery/1482-npe-on-java-callback-call-with-native-null-ptr'
| * feat(callbackGenerator): Prevent NPE during call of java callbackMathieu Féry2023-12-061-1/+2
| | | | | | | | NPE can occured when argument supplied by native api are compoundTypeWrapper but pointer are NULL
* | PTS: Add millisToTimeStr(..) convenient time string representation, also ↵Sven Gothel2023-12-301-0/+67
|/ | | | used by added get{SCR, Last, }TimeStr(..) methods
* Bug 1481 - Remove redundant isPascalLen() branchSven Gothel2023-12-021-2/+0
|
* TestStructGen*: Enable standalone testing, enforce Platform.initSingleton()Sven Gothel2023-12-022-0/+4
|
* Bug 1481 - Hide [ArgumentIs]PascalString argument's lengthSven Gothel2023-12-0216-166/+267
| | | | | | | | Native pascal strings shall be just treated as normal Java strings on the Java side. Hence drop the length parameter across generated API, i.e. - C Function bindings - Java Callbacks
* Bug 1474: Only quote exe-file path on Windows for executionSven Gothel2023-11-281-1/+9
| | | | Double quoting of the exe-file for execution is only allowed and required on Window.
* Bug 1474: Allow temp folder for exe-file test to contain parenthesis on WindowsSven Gothel2023-11-282-3/+10
| | | | | | | | | | | If the temp path contains parenthesis on Windows, e.g. the username or the sub-temp folder, the used exeTestFile.getCanonicalPath() can't be used by 'Runtime.getRuntime().exec( path )'. Example: C:\Users\(ABC)abc\AppData\Local\Temp Output: Exe-Tst: 'C:\Users\' is not recognized as an internal or external command, operable program or batch file. Hence the complete canonical path must be quoted, i.e. Path: "C:\Users\(ABC)abc\AppData\Local\Temp"
* Bug 1479: NativeLibrary: Add getNativeLibraryPath() returning queried used ↵Sven Gothel2023-11-2615-68/+226
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | native library path, supported throughout DynamicLibraryBundle[Info] Motivation: It is helpful to retrieve the actually used native library pathname, since loading a library w/o absolute path but lookup through LD_LIBRARY_PATH may render it hard for the user to determine which library is used. +++ +++ Windows implementation simply can use GetModuleFileNameA() with the native library handle. POSIX implementation may utilize a symbol-name to retrieve its address within the loading native library used to retrieved the library information via dladdr(). To support this feature throughout DynamicLibraryBundle and DynamicLibraryBundleInfo, the custom DynamicLibraryBundleInfo specializations shall provide optional symbol-names per each tool-library-name for the POSIX implementation, see above. public interface DynamicLibraryBundleInfo { ... /** * Returns optional list of optional symbol names per {@link #getToolLibNames()} * in same order for an OS which requires the symbol's address to retrieve * the path of the containing library. */ public List<String> getSymbolForToolLibPath(); ... }
* PTS: Add copy constructorSven Gothel2023-10-161-0/+5
|
* PTS: get(currentMillis): Employ rounding in integer conversionSven Gothel2023-10-161-2/+2
|
* Bug 1472: Enhance AV Sync: Pass through PTS object in AudioSink, tracking ↵Sven Gothel2023-10-154-19/+159
| | | | | | | last PTS value against System Clock Reference (SCR) This allows passing through actual SCR with the PTS when enqueueing audio frames and utilizing it when querying actual time lapsed PTS value (interpolation SCR to currentMillis).
* AudioSink: Rename getQueued{Time->Duration}(), add updateQueue()Sven Gothel2023-10-063-4/+22
|
* AudioSink/TimeFrame1: API doc: Add notes about integer stored milliseconds ↵Sven Gothel2023-10-062-7/+39
| | | | for PTS and duration, i.e. good for 24.855 days
* Clock/Platform: Add currentMillis() analogue to currentNanos(), returning ↵Sven Gothel2023-10-065-9/+277
| | | | | | | | current monotonic milliseconds **since start of this application** Also added TSPrinter, a simple millisecond timestamp prepending `print*()` wrapper for a {@link PrintStream}. Test coverage via TestClock01.
* AudioSink: Just pass a finte buffer size (KISS), add getLastBufferedPTS() to ↵Sven Gothel2023-10-043-67/+52
| | | | access the last buffered audio pts
* WorkerThread.start(paused): Merge RUNNING | ACTIVESven Gothel2023-09-221-1/+1
| | | | Last review editting I hope :)
* Uri: Added `Uri tryUriOrFile(final String uri_s)` for convenience / ↵Sven Gothel2023-09-221-0/+56
| | | | usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String)
* WorkerThread: Enhanced testing, added optional StateCallback for state ↵Sven Gothel2023-09-222-134/+605
| | | | changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc)
* WorkerThread: Remove minDelayMS field, have it in Runnable branch onlySven Gothel2023-09-211-3/+2
|
* WorkerThread: Fix minDelayMS assignment using validated field valueSven Gothel2023-09-211-1/+1
|
* WorkerThread: Add optional minDelay to throttle excecutionSven Gothel2023-09-212-24/+57
|
* WorkerThread: Move 'streamErr' Exception to local RunnableSven Gothel2023-09-201-1/+1
|
* Add WorkerThread: A re-start'able, pause'able and interrupt'able worker ↵Sven Gothel2023-09-202-0/+490
| | | | thread with an optional minimum execution duration
* InterruptSource.Thread: Add ctor variant w/ sole Runnable argument (was missing)Sven Gothel2023-08-231-0/+7
|
* GlueGen: 'from expression' -> 'with expression'Sven Gothel2023-08-101-1/+1
|
* Bug 1450: TestCParser: Enable test10_cc() w/o JCPPSven Gothel2023-08-101-1/+1
|
* Bug 1450: Add test snippets covering the issues: test2.h for Bindingtest2, ↵Sven Gothel2023-08-105-11/+367
| | | | TestJCPP and new TestCParser
* Bug 1450: Be more verbose w/ JavaEmitter comment lines for enums and ↵Sven Gothel2023-08-102-4/+9
| | | | defines, include native expression
* Bug 1450: Widen ConstantDefinition.isConstantExpression() to include ↵Sven Gothel2023-08-101-2/+4
| | | | | | 'patternCPPOperand' i.e. all supported operands used for constant-expression of define macros.
* Bug 1450: Fix 'Number' rule, i.e. only consume positive numbers as ↵Sven Gothel2023-08-101-2/+2
| | | | | | | | | | | | | | | `additiveExpr` and `unaryExpr` consume the '-' operator n GlueGen commit 10032c0115f2794a254cffc2a1cd5e48ca8ff0b8 in branch JOGL_2_SANDBOX Ken hacked in consuming a '-' prefix to have negative numbers covered by 'Number'. This is wrong, as it breaks deduction of `additiveExpr` and 'unaryExpr' rules, which want to consume '-' and '+'. The latter is used to completely resolve constant expressions starting from the 'constExpr' rule. See ISO 9899:202x Programming Language - C https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2596.pdf
* ANTLR Syntax: Add debugging facility for GnuCParser.g and StdCParser.gSven Gothel2023-08-102-9/+29
|
* TestJCPP: Add recursive-include test and include a header file starting with ↵Sven Gothel2023-08-084-9/+53
| | | | '-' and in a subdir containing a '-'
* Merge remote-tracking branch 'Mathieu_Fery/1447-java-wildcard-parsing'Sven Gothel2023-08-081-1/+7
|\
| * feat(generation): Fix generic parsing inside JavaParser.g to allow parsing ↵Mathieu Féry2023-08-081-1/+7
| | | | | | | | of java callback implementation
* | Merge remote-tracking branch ↵Sven Gothel2023-08-081-0/+1
|\ \ | | | | | | | | | 'Mathieu_Fery/1446-parent-class-directives-issue-with-if-and-impl'
| * | feat(generation): Fix CodeGenUtils.emitJavaHeadersMathieu Féry2023-08-081-0/+1
| |/ | | | | | | When both classExtended and interfaces are specified for given class space missing between classExtended and implements keyword
* | Drop PCPP, GlueGen exclusively uses JCPP; Adopt test case Test{P->J}CPPSven Gothel2023-08-085-1426/+26
| |
* | Bump jcpp (merged w/ jcpp upstream v1.4.14) and adopt to changesSven Gothel2023-08-081-2/+5
|/
* Minor cleanup (includes, spacing)Sven Gothel2023-08-055-12/+1
|
* Cleanup unit test class names (pt3): Try to start w/ 'Test', remove ↵Sven Gothel2023-08-051-3/+3
| | | | intermediate 'Test' for supporting, non-test classes
* Cleanup unit test class names (pt2): Try to start w/ 'Test', remove ↵Sven Gothel2023-08-0516-23/+23
| | | | intermediate 'Test' for supporting, non-test classes
* Cleanup unit test class names: Try to start w/ 'Test', remove intermediate ↵Sven Gothel2023-08-059-0/+0
| | | | 'Test' for supporting, non-test classes
* JavaConfiguration.requiresJavaCallbackCode() shall return true for all ↵Sven Gothel2023-08-051-1/+1
| | | | | | JavaCallback cases no just non-userParam case Additional body code for JavaCallback is required for methods it.
* GlueGen Code Unit Tests using a statically linked tool library do not need ↵Sven Gothel2023-08-054-21/+4
| | | | | | to load the tool library dynamically, hence dropped. Just ensure GlueGen itself is initializes via Platform.initSingleton() in common BaseClass