| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
space (whitespace) and full- and halfwidth tests.
|
| |
|
|
|
|
| |
'[H[H]:]m[m]:s[s][.S*]' using custom DateTimeFormatter to milliseconds, complementing millisToTimeStr(..)
|
| |
|
|\
| |
| |
| | |
'Mathieu_Fery/1482-npe-on-java-callback-call-with-native-null-ptr'
|
| |
| |
| |
| | |
NPE can occured when argument supplied by native api are compoundTypeWrapper but pointer are NULL
|
|/
|
|
| |
used by added get{SCR, Last, }TimeStr(..) methods
|
| |
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Double quoting of the exe-file for execution is only allowed and required on Window.
|
|
|
|
|
|
|
|
|
|
|
| |
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"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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();
...
}
|
| |
|
| |
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
| |
for PTS and duration, i.e. good for 24.855 days
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
access the last buffered audio pts
|
|
|
|
| |
Last review editting I hope :)
|
|
|
|
| |
usability, as well as getScheme(String), isValidScheme(String), isFileScheme(String) and isHttpxScheme(String)
|
|
|
|
| |
changes, using bitfield state (earmarked to be used within GLMediaPlayerImpl etc)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
thread with an optional minimum execution duration
|
| |
|
| |
|
|
|
|
| |
defines, include native expression
|
|
|
|
|
|
| |
'patternCPPOperand'
i.e. all supported operands used for constant-expression of define macros.
|
|\
| |
| |
| | |
'Mathieu_Fery/1446-parent-class-directives-issue-with-if-and-impl'
|
| |
| |
| |
| | |
When both classExtended and interfaces are specified for given class space missing between classExtended and implements keyword
|
|/ |
|
| |
|
|
|
|
|
|
| |
JavaCallback cases no just non-userParam case
Additional body code for JavaCallback is required for methods it.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
927bbc7160a812bb29c0e7120d4a3009bfb13bbf
Almost done
|
|\ \
| | |
| | |
| | | |
'Mathieu_Fery/feature/prevent_callback_generation_if_setter_is_absent'
|
| | |
| | |
| | |
| | | |
related isn't present
|
|\ \ \
| | | |
| | | |
| | | | |
'Mathieu_Fery/feat/array_accessor_with_getter_of_field_in_pascal_case'
|
| |/ /
| | |
| | |
| | | |
with field with name in PascalCase or camelCase
|
| |/
|/|
| |
| |
| |
| | |
JavaConfiguration.requiresJavaCallbackCode()"
This reverts commit 927bbc7160a812bb29c0e7120d4a3009bfb13bbf.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Method was encapsulated in commit d4e8ecc3b4f68b86d95ec951971a0fea20217988
and questioned whether it is required.
The non-userParam callback case adds no additional code requirements.
Both, callback with and without userParam shares same code path
and the respective native static fields.
Only that the non-userParam code path adds additional native static fields,
but all code sections are produced in both cases.
Passed all unit tests.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
types in equals and hashCode, i.e. use memory identity
Use case is having a compound-type as userParam, which also acts as key, see MessageCallback13, Test4JavaCallback.chapter13().
The Java compound instance is re-created using the actual identical native memory (address),
which has been stored or passed in the native toolkit.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
'String')
Use case: String type as userParam, barely tested and not useful.
However, let's pass through all cases in our code.
Added LOG INFO for mapped types.
|
| |
| |
| |
| |
| |
| |
| |
| | |
STRING_CHARS_PREFIX or javaCallbackEmitter.emitCOptArgumentSuffix(..)
We only produce one variant in code.
Use case: String type as userParam (barely tested and not useful)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TBD: Is this even required?
- needsIntermediateOperation -> needsJavaCallbackCode
- Use JavaConfiguration.requiresJavaCallbackCode(..)
TBD: Is this even required?
As far as I see, the non-userParam callback case adds no additional code requirements.
Both, callback with and without userParam shares same code path
and the respective native static fields.
Only that the non-userParam code path adds additional native static fields,
but all code sections are produced in both cases.
|
| |
| |
| |
| |
| |
| |
| |
| | |
and passed 'jcbFuncCMethodEmitter' only to invoke CMethodBindingEmitter.emitBodyMapCToJNIType(..)
Passed 'jcbFuncCMethodEmitter' only used to access CMethodBindingEmitter.emitBodyMapCToJNIType(int, boolean), a non-ideal hack! (FIXME)
General processing shall use the local `info.cbFuncBinding`.
|