diff --git a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoder.aidl b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoder.aidl index 32ed617fc..1dabad9e3 100644 --- a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoder.aidl +++ b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoder.aidl @@ -32,6 +32,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -56,6 +63,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -71,6 +80,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). + * */ @nullable PropertyValue getProperty(in Property property); @@ -81,6 +92,8 @@ interface IAudioDecoder * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). + * * @see IAudioDecoderListener.onStateChanged(). */ State getState(); @@ -113,6 +126,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * * @returns IAudioDecoderController or null if the codec or secure is not supported if requested. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -139,6 +154,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_ILLEGAL_STATE If instance is not in OPENED State. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). + * * @see open() */ boolean close(in IAudioDecoderController audioDecoderController); @@ -158,6 +175,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IAudioDecoderEventListener audioDecoderEventListener); @@ -174,6 +193,8 @@ interface IAudioDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoder}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IAudioDecoderEventListener audioDecoderEventListener); diff --git a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderController.aidl b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderController.aidl index 63cbcfe2b..8d4ed305a 100644 --- a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderController.aidl +++ b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderController.aidl @@ -27,6 +27,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -46,6 +53,8 @@ interface IAudioDecoderController { * * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property and propertyValue. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoderController}} for exception handling behavior). */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -102,6 +111,8 @@ interface IAudioDecoderController { * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoderController}} for exception handling behavior). * * @pre The resource must be in State::STARTED. */ @@ -179,6 +190,8 @@ interface IAudioDecoderController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoderController}} for exception handling behavior). * Thrown if the resource is not in State::STARTED. * * @pre The decoder resource must be in State::STARTED. diff --git a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderManager.aidl b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderManager.aidl index 528ca0215..10505cae2 100644 --- a/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderManager.aidl +++ b/audiodecoder/current/com/rdk/hal/audiodecoder/IAudioDecoderManager.aidl @@ -24,6 +24,13 @@ import com.rdk.hal.audiodecoder.IAudioDecoder; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -43,6 +50,8 @@ interface IAudioDecoderManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IAudioDecoder.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoderManager}} for exception handling behavior). */ IAudioDecoder.Id[] getAudioDecoderIds(); @@ -54,6 +63,8 @@ interface IAudioDecoderManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IAudioDecoder which can be null if the resource index is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioDecoderManager}} for exception handling behavior). */ @nullable IAudioDecoder getAudioDecoder(in IAudioDecoder.Id decoderResourceId); } diff --git a/audiosink/current/com/rdk/hal/audiosink/IAudioSink.aidl b/audiosink/current/com/rdk/hal/audiosink/IAudioSink.aidl index 6c7486fb5..290f75493 100644 --- a/audiosink/current/com/rdk/hal/audiosink/IAudioSink.aidl +++ b/audiosink/current/com/rdk/hal/audiosink/IAudioSink.aidl @@ -31,6 +31,13 @@ import com.rdk.hal.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -56,6 +63,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -69,6 +78,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). + * * @see setProperty() */ @nullable PropertyValue getProperty(in Property property); @@ -83,6 +94,8 @@ interface IAudioSink * * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). * * @see getProperty() */ @@ -94,6 +107,8 @@ interface IAudioSink * @returns State enum value. * * @exception binder::Status::Exception::EX_NONE for success. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). * * @see IAudioSinkEventListener.onStateChanged(). */ @@ -120,6 +135,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_ILLEGAL_STATE If the resource is not in the CLOSED state. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). * * @pre The resource must be in the CLOSED state. * @@ -146,6 +163,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_ILLEGAL_STATE If instance is not in OPENED State. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). + * * @see open() */ boolean close(in IAudioSinkController audioSinkController); @@ -165,6 +184,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IAudioSinkEventListener audioSinkEventListener); @@ -181,6 +202,8 @@ interface IAudioSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSink}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IAudioSinkEventListener audioSinkEventListener); diff --git a/audiosink/current/com/rdk/hal/audiosink/IAudioSinkController.aidl b/audiosink/current/com/rdk/hal/audiosink/IAudioSinkController.aidl index bb0576cae..049a8631c 100644 --- a/audiosink/current/com/rdk/hal/audiosink/IAudioSinkController.aidl +++ b/audiosink/current/com/rdk/hal/audiosink/IAudioSinkController.aidl @@ -27,6 +27,13 @@ import com.rdk.hal.audiodecoder.FrameMetadata; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -44,6 +51,8 @@ interface IAudioSinkController { * @exception binder::Status::Exception::EX_ILLEGAL_STATE * * @returns boolean - true on success or false if the ID is invalid or not IAudioDecoder.Id.UNDEFINED. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in State::READY. * @@ -58,6 +67,8 @@ interface IAudioSinkController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in State::READY or State::STARTED. * @@ -118,6 +129,8 @@ interface IAudioSinkController { * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE If the resource is not in the `STARTED` state or an audio frame is passed after EOS. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT If an invalid argument is provided. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in the `STARTED` state. */ @@ -146,6 +159,8 @@ interface IAudioSinkController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in State::READY or State::STARTED. */ @@ -160,6 +175,8 @@ interface IAudioSinkController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in State::READY or State::STARTED. */ @@ -186,6 +203,8 @@ interface IAudioSinkController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkController}} for exception handling behavior). * * @pre The resource must be in State::STARTED. */ diff --git a/audiosink/current/com/rdk/hal/audiosink/IAudioSinkManager.aidl b/audiosink/current/com/rdk/hal/audiosink/IAudioSinkManager.aidl index 121eef4fe..7bac4e8aa 100644 --- a/audiosink/current/com/rdk/hal/audiosink/IAudioSinkManager.aidl +++ b/audiosink/current/com/rdk/hal/audiosink/IAudioSinkManager.aidl @@ -25,6 +25,13 @@ import com.rdk.hal.audiosink.PlatformCapabilities; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -39,6 +46,8 @@ interface IAudioSinkManager * @returns IAudioSink.Id[] array. * * @exception binder::Status::Exception::EX_NONE for success. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkManager}} for exception handling behavior). */ IAudioSink.Id[] getAudioSinkIds(); @@ -52,6 +61,8 @@ interface IAudioSinkManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns PlatformCapabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkManager}} for exception handling behavior). */ PlatformCapabilities getPlatformCapabilities(); @@ -63,6 +74,8 @@ interface IAudioSinkManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IAudioSink or null on invalid audio sink ID. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAudioSinkManager}} for exception handling behavior). */ @nullable IAudioSink getAudioSink(in IAudioSink.Id audioSinkId); diff --git a/avbuffer/current/com/rdk/hal/avbuffer/IAVBuffer.aidl b/avbuffer/current/com/rdk/hal/avbuffer/IAVBuffer.aidl index 071b3ae25..c6e6251f3 100644 --- a/avbuffer/current/com/rdk/hal/avbuffer/IAVBuffer.aidl +++ b/avbuffer/current/com/rdk/hal/avbuffer/IAVBuffer.aidl @@ -29,6 +29,13 @@ import com.rdk.hal.audiodecoder.IAudioDecoder; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -37,9 +44,6 @@ interface IAVBuffer /** The service name to publish. To be returned by getServiceName() in the derived class. */ const @utf8InCpp String serviceName = "AVBuffer"; - /** Invalid handle for buffers. */ - const long INVALID_HANDLE = -1; - /** * Gets the number of used/total bytes in a memory heap. * @@ -65,12 +69,13 @@ interface IAVBuffer * @param[in] videoDecoderIndex The index of the video decoder resource. * @param[in] listener Listener for space available callbacks. * - * @returns A new `Pool` object. On success, the handle will be valid. - * On failure, the handle will be set to `Pool::handle = Pool::INVALID_POOL`. + * @returns A new `Pool` object with a valid handle. * * @exception binder::Status::Exception::EX_NONE for success - * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT - * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY + * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT if videoDecoderIndex is invalid + * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY if heap is exhausted + * + * @note On exception, the returned pool handle is an unknown value and must not be used. (See {@link IAVBuffer} for exception handling behavior). * * @pre The IVideoDecoder.Id must have been obtained from IVideoDecoderManager.getVideoDecoderIds() * @@ -93,12 +98,13 @@ interface IAVBuffer * @param[in] audioDecoderId The ID of the audio decoder resource. * @param[in] listener Listener for space available callbacks. * - * @returns A new `Pool` object. On success, the handle will be valid. - * On failure, the handle will be set to `Pool::handle = Pool::INVALID_POOL`. + * @returns A new `Pool` object with a valid handle. * * @exception binder::Status::Exception::EX_NONE for success - * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT - * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY + * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT if audioDecoderId is invalid + * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY if heap is exhausted + * + * @note On exception, the returned pool handle is an unknown value and must not be used. (See {@link IAVBuffer} for exception handling behavior). * * @pre The IAudioDecoder.Id must have been obtained from IAudioDecoderManager.getAudioDecoderIds() * or IAudioDecoder.Id.UNDEFINED must be used. @@ -165,8 +171,7 @@ interface IAVBuffer * Allocates a memory buffer from a given buffer pool. * * The allocation will be satisfied immediately or fail if a memory buffer of the given size is not available. - * The output handle is valid when the returned result is >= 0. - * The handle must eventually be used in a call to `free()` to release the memory block. + * On success, a valid handle is returned that must eventually be used in a call to `free()` to release the memory block. * * If the allocation fails due to an out of memory condition then `binder::Status EX_SERVICE_SPECIFIC` with `HALError::OUT_OF_MEMORY` * is returned and the client can call `notifyWhenSpaceAvailable()` to be notified when space becomes available. @@ -175,10 +180,12 @@ interface IAVBuffer * @param[in] size Size of the memory block allocation in bytes. Must be > 0. * * @returns long The handle of the new buffer allocation. - * @retval INVALID_HANDLE The pool handle is invalid or the size is > the pool size. * * @exception binder::Status::Exception::EX_NONE for success - * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY + * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT if pool handle is invalid or size is invalid + * @exception binder::Status::Exception::EX_SERVICE_SPECIFIC, HALError::OUT_OF_MEMORY if allocation fails + * + * @note On exception, the returned buffer handle is an unknown value and must not be used. (See {@link IAVBuffer} for exception handling behavior). * * @pre A pool handle must have been obtained from `createVideoPool()` or `createAudioPool()`. * @@ -213,13 +220,14 @@ interface IAVBuffer * @param[in] bufferHandle Memory buffer handle. * @param[in] newSize New size of the memory block in bytes. Must be > 0 and <= original size. * - * @exception binder::Status::Exception::EX_NONE for success - * @exception binder::Status::Exception::EX_ILLEGAL_STATE - * * @returns boolean * @retval true The trim was successful. * @retval false The bufferHandle or newSize was invalid. * + * @exception binder::Status::Exception::EX_NONE for success + * @exception binder::Status::Exception::EX_ILLEGAL_STATE if buffer is not the last allocated from the pool + * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT if bufferHandle or newSize is invalid + * * @pre The `bufferHandle` must be the last one returned from a call to `alloc()`. * * @see alloc() diff --git a/avbuffer/current/com/rdk/hal/avbuffer/Pool.aidl b/avbuffer/current/com/rdk/hal/avbuffer/Pool.aidl index 347b042d7..c8d3e0164 100644 --- a/avbuffer/current/com/rdk/hal/avbuffer/Pool.aidl +++ b/avbuffer/current/com/rdk/hal/avbuffer/Pool.aidl @@ -28,9 +28,6 @@ package com.rdk.hal.avbuffer; @VintfStability parcelable Pool { - /** Invalid Pool handle */ - const byte INVALID_POOL = -1; - /** Handle for the pool. */ byte handle; } diff --git a/avclock/current/com/rdk/hal/avclock/IAVClock.aidl b/avclock/current/com/rdk/hal/avclock/IAVClock.aidl index 0c0d7d517..ef60f10d5 100644 --- a/avclock/current/com/rdk/hal/avclock/IAVClock.aidl +++ b/avclock/current/com/rdk/hal/avclock/IAVClock.aidl @@ -30,6 +30,13 @@ import com.rdk.hal.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -55,6 +62,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -65,6 +74,8 @@ interface IAVClock * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @see IAVClockEventListener.onStateChanged(), IAVClockControllerListener.onStateChanged(). */ State getState(); @@ -79,6 +90,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @see setProperty() */ @nullable PropertyValue getProperty(in Property property); @@ -96,6 +109,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @see getProperty() */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -125,6 +140,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_ILLEGAL_STATE If the resource is not in the CLOSED state. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). * * @pre AV Clock is in State::CLOSED state. * @@ -149,6 +166,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_ILLEGAL_STATE If instance is not in OPENED State. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @pre AV Clock has been successfully opened and is in the State::READY state. * * @see open(), IAVClockController @@ -171,6 +190,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IAVClockEventListener avClockEventListener); @@ -187,6 +208,8 @@ interface IAVClock * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClock}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IAVClockEventListener avClockEventListener); diff --git a/avclock/current/com/rdk/hal/avclock/IAVClockController.aidl b/avclock/current/com/rdk/hal/avclock/IAVClockController.aidl index c5db0130e..aa6a6859d 100644 --- a/avclock/current/com/rdk/hal/avclock/IAVClockController.aidl +++ b/avclock/current/com/rdk/hal/avclock/IAVClockController.aidl @@ -27,6 +27,13 @@ import com.rdk.hal.avclock.ClockTime; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -75,6 +82,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -89,6 +98,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -114,6 +125,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -128,6 +141,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -149,6 +164,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -163,6 +180,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -183,6 +202,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY state. * @@ -197,6 +218,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state. * @@ -225,6 +248,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::STARTED state and in PCR clock mode. * @@ -243,6 +268,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::STARTED state. */ @@ -265,6 +292,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state and clock mode is not ClockMode::PCR. * @@ -281,6 +310,8 @@ interface IAVClockController { * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockController}} for exception handling behavior). * * @pre AV Clock is in State::READY or State::STARTED state and mode is not ClockMode::PCR. */ diff --git a/avclock/current/com/rdk/hal/avclock/IAVClockManager.aidl b/avclock/current/com/rdk/hal/avclock/IAVClockManager.aidl index bab2c37d0..cffeb4176 100644 --- a/avclock/current/com/rdk/hal/avclock/IAVClockManager.aidl +++ b/avclock/current/com/rdk/hal/avclock/IAVClockManager.aidl @@ -24,6 +24,13 @@ import com.rdk.hal.avclock.IAVClock; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -39,6 +46,8 @@ interface IAVClockManager * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockManager}} for exception handling behavior). + * */ IAVClock.Id[] getAVClockIds(); @@ -50,6 +59,8 @@ interface IAVClockManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IAVClock or null if the `avClockId` is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IAVClockManager}} for exception handling behavior). */ @nullable IAVClock getAVClock(in IAVClock.Id avClockId); } diff --git a/boot/current/com/rdk/hal/boot/IBoot.aidl b/boot/current/com/rdk/hal/boot/IBoot.aidl index ae082f6c4..7b3a152c4 100644 --- a/boot/current/com/rdk/hal/boot/IBoot.aidl +++ b/boot/current/com/rdk/hal/boot/IBoot.aidl @@ -27,6 +27,13 @@ import com.rdk.hal.boot.PowerSource; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -39,6 +46,8 @@ interface IBoot * Gets the capabilities of the boot service. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IBoot}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -46,6 +55,8 @@ interface IBoot * Gets the reason the device was booted. * * @returns BootReason + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IBoot}} for exception handling behavior). */ BootReason getBootReason(); diff --git a/broadcast/current/com/rdk/hal/broadcast/IBroadcastManager.aidl b/broadcast/current/com/rdk/hal/broadcast/IBroadcastManager.aidl index b99c5d75e..7d9be4f33 100644 --- a/broadcast/current/com/rdk/hal/broadcast/IBroadcastManager.aidl +++ b/broadcast/current/com/rdk/hal/broadcast/IBroadcastManager.aidl @@ -25,7 +25,14 @@ import com.rdk.hal.broadcast.frontend.IFrontend; * @brief BroadcastManager HAL interface. * @author Jan Pedersen * @author Christian George - * @author Philipp Trommler + * @author Philipp Trommler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -37,6 +44,8 @@ interface IBroadcastManager { * Gets the platform list of frontend IDs. * * @returns IFrontEnd.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IBroadcastManager}} for exception handling behavior). */ IFrontend.Id[] getFrontendIds(); @@ -46,6 +55,8 @@ interface IBroadcastManager { * @param[in] frontendId The ID of the frontend. * * @returns IFrontend ID or null if the ID is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IBroadcastManager}} for exception handling behavior). */ @nullable IFrontend getFrontend(in IFrontend.Id frontendId); diff --git a/broadcast/current/com/rdk/hal/broadcast/demux/IDemux.aidl b/broadcast/current/com/rdk/hal/broadcast/demux/IDemux.aidl index 8a0d960df..1162b30a5 100644 --- a/broadcast/current/com/rdk/hal/broadcast/demux/IDemux.aidl +++ b/broadcast/current/com/rdk/hal/broadcast/demux/IDemux.aidl @@ -26,7 +26,14 @@ import com.rdk.hal.broadcast.frontend.IFrontend; * @brief Interface for a demux. * @author Jan Pedersen * @author Christian George - * @author Philipp Trommler + * @author Philipp Trommler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ diff --git a/broadcast/current/com/rdk/hal/broadcast/demux/IFilter.aidl b/broadcast/current/com/rdk/hal/broadcast/demux/IFilter.aidl index 3ef5e1edd..5d05b643b 100644 --- a/broadcast/current/com/rdk/hal/broadcast/demux/IFilter.aidl +++ b/broadcast/current/com/rdk/hal/broadcast/demux/IFilter.aidl @@ -28,7 +28,14 @@ import com.rdk.hal.broadcast.demux.SoftwareSink; * @ref IFilter::setFilter() must be called. * @author Jan Pedersen * @author Christian George - * @author Philipp Trommler + * @author Philipp Trommler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ diff --git a/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontend.aidl b/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontend.aidl index c4645f041..2c60e25ed 100644 --- a/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontend.aidl +++ b/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontend.aidl @@ -28,7 +28,14 @@ import com.rdk.hal.State; * @brief FrontEnd HAL interface. * @author Jan Pedersen * @author Christian George - * @author Philipp Trommler + * @author Philipp Trommler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -50,6 +57,8 @@ interface IFrontend { * Can be called any time and is not depended o * * @returns FrontendType array + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). */ FrontendType[] getFrontendTypes(); @@ -59,6 +68,8 @@ interface IFrontend { * @param[in] frontendType The type of capabilites to request * * @returns Capabilities or null if the type is not supported + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). */ @nullable Capabilities getCapabilities(in FrontendType frontendType); @@ -66,6 +77,8 @@ interface IFrontend { * Gets the current frontend state. * * @returns State enum value. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). * * @see IFrontendListener.onStateChanged(). */ @@ -91,6 +104,8 @@ interface IFrontend { * @returns IFrontendController or null on error. * * @exception binder::Status EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -110,6 +125,8 @@ interface IFrontend { * @retval true The listener was registered. * @retval false The listener is already registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). + * * @see unregisterListener() */ boolean registerListener(in IFrontendListener frontendListener); @@ -123,6 +140,8 @@ interface IFrontend { * @retval true The listener was unregistered. * @retval false The listener was not found registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontend}} for exception handling behavior). + * * @see registerListener() */ boolean unregisterListener(in IFrontendListener frontendListener); diff --git a/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontendController.aidl b/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontendController.aidl index 0202255fa..094c40a57 100644 --- a/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontendController.aidl +++ b/broadcast/current/com/rdk/hal/broadcast/frontend/IFrontendController.aidl @@ -29,7 +29,14 @@ import com.rdk.hal.State; * @brief FrontendController HAL interface. * @author Jan Pedersen * @author Christian George - * @author Philipp Trommler + * @author Philipp Trommler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -82,6 +89,8 @@ interface IFrontendController { * Gets the current frontend tuneStatus. * * @returns TuneStatus enum value. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontendController}} for exception handling behavior). * * @see IFrontendControllerListener.onTuneStatusChanged(). */ @@ -128,6 +137,8 @@ interface IFrontendController { * be a subset of the information types returned in the Capabilities set for * this frontend. * @returns The list of the requested information values that are in the set of the supported + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFrontendController}} for exception handling behavior). * types. */ SignalInfoReturn[] getSignalInfo(in SignalInfoProperty[] properties); diff --git a/deepsleep/current/com/rdk/hal/deepsleep/IDeepSleep.aidl b/deepsleep/current/com/rdk/hal/deepsleep/IDeepSleep.aidl index da3300327..9562067d3 100644 --- a/deepsleep/current/com/rdk/hal/deepsleep/IDeepSleep.aidl +++ b/deepsleep/current/com/rdk/hal/deepsleep/IDeepSleep.aidl @@ -26,6 +26,13 @@ import com.rdk.hal.deepsleep.KeyCode; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -38,6 +45,8 @@ interface IDeepSleep * Gets the capabilities of the deep sleep service. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeepSleep}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -58,6 +67,8 @@ interface IDeepSleep * @returns boolean - true on success or false if any of the triggers are not supported on the device. * @retval true - the deep sleep was successful and woke up on one of the explicit or implicit triggers. * @retval false - deep sleep could not be entered. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeepSleep}} for exception handling behavior). * * @see setWakeUpTimer() */ @@ -78,6 +89,8 @@ interface IDeepSleep * @retval true - if the wake up timer period was valid. * @retval false - the period was invalid. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeepSleep}} for exception handling behavior). + * * @pre The WakeUpTrigger.TIMER must be listed in the Capabilities.supportedTriggers array. * * @see getWakeUpTimer(), enterDeepSleep() @@ -91,6 +104,8 @@ interface IDeepSleep * * @returns int The period of the wake up timer in seconds. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeepSleep}} for exception handling behavior). + * * @pre The WakeUpTrigger.TIMER must be listed in the Capabilities.supportedTriggers array. * * @see setWakeUpTimer() diff --git a/deviceinfo/current/com/rdk/hal/deviceinfo/IDeviceInfo.aidl b/deviceinfo/current/com/rdk/hal/deviceinfo/IDeviceInfo.aidl index 20e03fc5f..98c159597 100644 --- a/deviceinfo/current/com/rdk/hal/deviceinfo/IDeviceInfo.aidl +++ b/deviceinfo/current/com/rdk/hal/deviceinfo/IDeviceInfo.aidl @@ -29,6 +29,13 @@ import com.rdk.hal.deviceinfo.Property; * @author Milorad Neskovic * @author Tijo Thomas * @author Gerald Weatherup + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -41,6 +48,8 @@ interface IDeviceInfo * Gets the capabilities of the Device Info service. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeviceInfo}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -54,6 +63,8 @@ interface IDeviceInfo * * @param[in] propertyKey The key of a property to retrieve. * @returns Property parcelable with metadata, or null if unsupported. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IDeviceInfo}} for exception handling behavior). * * @see getCapabilities(), Property.aidl, PropertyType.aidl */ diff --git a/docs/halif/audio_decoder/current/audio_decoder.md b/docs/halif/audio_decoder/current/audio_decoder.md index b7a1e3cad..f8e5a3ba2 100644 --- a/docs/halif/audio_decoder/current/audio_decoder.md +++ b/docs/halif/audio_decoder/current/audio_decoder.md @@ -277,7 +277,7 @@ The Audio Decoder makes its own run-time choice about whether audio is tunnelled Tunnelled audio is required when any audio output ports are in passthrough mode. Tunnelled audio may also be required for some audio codecs that need a vendor integrated decoder/mixer such as Dolby MS12. -When only tunnelled audio is in operation, no audio frame pool buffer handles containing decoded PCM audio are handed back to the controller client and the invalid `frameBufferHandle` value -1 is passed in `onFrameOutput()` callbacks. +When only tunnelled audio is in operation, no audio frame pool buffer handles containing decoded PCM audio are handed back to the controller client and the `frameBufferHandle` value -1 is passed in `onFrameOutput()` callbacks to indicate tunnelled mode. ## Frame Metadata @@ -325,7 +325,7 @@ Decoded audio frame buffers are only passed from the audio decoder to the client If the input [AV Buffer](../../av_buffer/current/av_buffer.md) that contained the coded audio frame was passed in a secure buffer, then the corresponding decoded audio frame must be output in a secure audio frame buffer. -Audio frame buffers are passed back as handles in the `IAudioDecoderControllerListener.onFrameOutput()` function `frameBufferHandle` parameter. If no frame buffer handle is available to pass but the call needs to be made to provide updated `FrameMetadata` then -1 shall be passed as the handle value. +Audio frame buffers are passed back as handles in the `IAudioDecoderControllerListener.onFrameOutput()` function `frameBufferHandle` parameter. In tunnelled mode, -1 is passed as the handle value to indicate that no frame buffer handle is being provided since the audio is consumed internally by the vendor layer. The format of the data in the decoded audio frame buffer is always PCM and described by the `FrameMetadata`. diff --git a/docs/halif/video_decoder/current/video_decoder.md b/docs/halif/video_decoder/current/video_decoder.md index 5dd82117e..789852bbd 100644 --- a/docs/halif/video_decoder/current/video_decoder.md +++ b/docs/halif/video_decoder/current/video_decoder.md @@ -292,7 +292,7 @@ Decoded video frame buffers are only passed from the video decoder to the client If the input [AV Buffer](../../av_buffer/current/av_buffer.md) that contained the coded video frame was passed in a secure buffer, then the corresponding decoded video frame must be output in a secure video frame buffer. -Video frame buffers are passed back as handles in the `IVideoDecoderControllerListener.onFrameOutput()` function `frameBufferHandle` parameter.  If no frame buffer handle is available to pass but the call needs to be made to provide updated FrameMetadata then `-1` shall be passed as the handle value. +Video frame buffers are passed back as handles in the `IVideoDecoderControllerListener.onFrameOutput()` function `frameBufferHandle` parameter.  In tunnelled mode, `-1` is passed as the handle value to indicate that no frame buffer handle is being provided since the video is consumed internally by the vendor layer. The format of the data in the decoded video frame buffer is determined by the vendor driver implementation and does not need to be understood by the RDK middleware. diff --git a/flash/current/com/rdk/hal/flash/IFlash.aidl b/flash/current/com/rdk/hal/flash/IFlash.aidl index 2da83f424..7b7e4bf7d 100644 --- a/flash/current/com/rdk/hal/flash/IFlash.aidl +++ b/flash/current/com/rdk/hal/flash/IFlash.aidl @@ -24,6 +24,13 @@ import com.rdk.hal.flash.IFlashListener; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -65,6 +72,8 @@ interface IFlash * @returns boolean * @retval true The image file flash request was started. * @retval false The image file flash request was not started because a flash + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFlash}} for exception handling behavior). * operation is already in progress. * * @see IFlashListener diff --git a/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCec.aidl b/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCec.aidl index 8777ed9ac..bf8bca349 100644 --- a/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCec.aidl +++ b/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCec.aidl @@ -28,6 +28,13 @@ import com.rdk.hal.hdmicec.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -44,6 +51,8 @@ interface IHdmiCec * * @returns State enum value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). + * * @see IHdmiCecEventListener.onStateChanged(). */ State getState(); @@ -54,6 +63,8 @@ interface IHdmiCec * @param[in] property The key of a property from the Property enum. * * @returns PropertyValue or null if the property key is unknown. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). * * @see setProperty() */ @@ -66,6 +77,8 @@ interface IHdmiCec * not returned in this array. * * @returns int[] - an array of addresses. The size of the array will be zero if no additional addresses have been set. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). * * @see addLogicalAddress(), removeLogicalAddress() */ @@ -95,6 +108,8 @@ interface IHdmiCec * @exception binder::Status EX_ILLEGAL_STATE * * @returns IHdmiCecController or null on error. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -118,6 +133,8 @@ interface IHdmiCec * @retval true Successfully closed. * @retval false Invalid state or unrecognised parameter. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). + * * @pre The resource must be in State::STARTED. * * @see open() @@ -135,6 +152,8 @@ interface IHdmiCec * @retval true The event listener was registered. * @retval false The event listener is already registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IHdmiCecEventListener cecEventListener); @@ -148,6 +167,8 @@ interface IHdmiCec * @retval true The event listener was unregistered. * @retval false The event listener was not found registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCec}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IHdmiCecEventListener cecEventListener); diff --git a/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCecController.aidl b/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCecController.aidl index 8473eb5c9..e756bf92a 100644 --- a/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCecController.aidl +++ b/hdmicec/current/com/rdk/hal/hdmicec/IHdmiCecController.aidl @@ -24,6 +24,13 @@ import com.rdk.hal.hdmicec.SendMessageStatus; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -46,6 +53,8 @@ interface IHdmiCecController * @param[in] logicalAddresses An array of logical address to be added. * * @returns true if successfully added or false if the logical addresses have not been added. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCecController}} for exception handling behavior). * * @pre The resource must be in State::STARTED. * @@ -66,6 +75,8 @@ interface IHdmiCecController * @pre The resource must be in State::STARTED. * * @returns true on successfully removing and false if one or more logical addresses have not been previously added. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCecController}} for exception handling behavior). * * @see IHdmiCec.getLogicalAddresses(), addLogicalAddresses() */ @@ -110,6 +121,8 @@ interface IHdmiCecController * * @returns SendMessageStatus * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHdmiCecController}} for exception handling behavior). + * * @see IHdmiCec.open() */ SendMessageStatus sendMessage(in byte[] message); diff --git a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInput.aidl b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInput.aidl index 76ea8700e..419822173 100644 --- a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInput.aidl +++ b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInput.aidl @@ -34,6 +34,13 @@ import com.rdk.hal.PropertyValue; * @author Peter Stieglitz * @author Douglas Adler * @author Gerald Weatherup + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -57,6 +64,8 @@ interface IHDMIInput * The returned value is not allowed to change between calls. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -66,6 +75,8 @@ interface IHDMIInput * @param[in] property The key of a property from the Property enum. * * @returns PropertyValue or null if the property key is unknown or unavailable for this port. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). * * @see IHDMIInputController.setProperty(), getPropertyMulti() */ @@ -84,6 +95,8 @@ interface IHDMIInput * @returns boolean * @retval true The property values were retrieved successfully. * @retval false One or more property keys are invalid or the input array is empty. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). * * @see getProperty() */ @@ -94,6 +107,8 @@ interface IHDMIInput * * @returns State enum value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see IHDMIInputEventListener.onStateChanged(). */ State getState(); @@ -111,6 +126,8 @@ interface IHDMIInput * @retval true The EDID was retrieved successfully. * @retval false Indicates an error condition (e.g., resource not available, invalid state, or parameter validation failure). * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see setEDID() */ boolean getEDID(out byte[] edid); @@ -131,6 +148,8 @@ interface IHDMIInput * @retval true The EDID was retrieved successfully. * @retval false The EDID was not available. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see setEDID(), getCapabilities() */ boolean getDefaultEDID(in HDMIVersion version, out byte[] edid); @@ -142,6 +161,8 @@ interface IHDMIInput * * @returns HDCPProtocolVersion * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see getHDCPStatus(), IHDMIInputControllerListener.onHDCPStatusChanged() */ HDCPProtocolVersion getHDCPCurrentVersion(); @@ -155,6 +176,8 @@ interface IHDMIInput * * @returns HDCPStatus * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see getHDCPCurrentVersion(), IHDMIInputControllerListener.onHDCPStatusChanged() */ HDCPStatus getHDCPStatus(); @@ -166,6 +189,8 @@ interface IHDMIInput * * @returns InfoFrame data byte array, or empty array if no InfoFrame has been received since last device connection or start. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see IHDMIInputControllerListener.onSPDInfoFrame() */ byte[] getSPDInfoFrame(); @@ -196,6 +221,8 @@ interface IHDMIInput * @returns IHDMIInputController, or null if the port cannot be opened (e.g. invalid state). * * @exception binder::Status EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -219,6 +246,8 @@ interface IHDMIInput * @retval true Successfully closed. * @retval false Invalid state or unrecognised parameter. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @pre The resource must be in State::READY. * * @see open() @@ -236,6 +265,8 @@ interface IHDMIInput * @retval true The event listener was registered. * @retval false The event listener is already registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IHDMIInputEventListener hdmiInputEventListener); @@ -249,6 +280,8 @@ interface IHDMIInput * @retval true The event listener was unregistered. * @retval false The event listener was not found registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInput}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IHDMIInputEventListener hdmiInputEventListener); diff --git a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputController.aidl b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputController.aidl index 44019fb6f..3f5fea62b 100644 --- a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputController.aidl +++ b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputController.aidl @@ -28,6 +28,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @@ -41,6 +48,8 @@ interface IHDMIInputController * @retval true A device is connected. * @retval false No device is connected. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputController}} for exception handling behavior). + * * @see IHDMIInputControllerListener.onConnectionStateChanged() */ boolean getConnectionState(); @@ -102,6 +111,8 @@ interface IHDMIInputController * * @exception binder::Status EX_ILLEGAL_STATE If the resource is not in the `STARTED` or `READY` state. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputController}} for exception handling behavior). + * * @see setPropertyMulti(), getProperty() */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -120,6 +131,8 @@ interface IHDMIInputController * * @exception binder::Status EX_ILLEGAL_STATE If the resource is not in the `STARTED` or `READY` state. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputController}} for exception handling behavior). + * * @see setProperty(), getProperty() */ boolean setPropertyMulti(in PropertyKVPair[] propertyKVList); @@ -142,6 +155,8 @@ interface IHDMIInputController * @retval true The EDID was set successfully. * @retval false Indicates an error condition (e.g., resource not available, invalid state, or parameter validation failure). * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputController}} for exception handling behavior). + * * @see getEDID(), getCapabilities() */ boolean setEDID(in byte[] edid); diff --git a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputManager.aidl b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputManager.aidl index 57ea4ee42..657e8a63c 100644 --- a/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputManager.aidl +++ b/hdmiinput/current/com/rdk/hal/hdmiinput/IHDMIInputManager.aidl @@ -26,6 +26,13 @@ import com.rdk.hal.hdmiinput.PlatformCapabilities; * @author Peter Stieglitz * @author Douglas Adler * @author Amit Patel + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -41,6 +48,8 @@ interface IHDMIInputManager * The returned value is not allowed to change between calls. * * @returns PlatformCapabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputManager}} for exception handling behavior). */ PlatformCapabilities getCapabilities(); @@ -48,6 +57,8 @@ interface IHDMIInputManager * Gets the platform list of HDMI input IDs. * * @returns IHDMIInput.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputManager}} for exception handling behavior). */ IHDMIInput.Id[] getHDMIInputIds(); @@ -57,6 +68,8 @@ interface IHDMIInputManager * @param[in] hdmiInputId The HDMI input port ID, must be one of the values returned by getHDMIInputIds(). * * @returns IHDMIInput or null if the ID is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIInputManager}} for exception handling behavior). */ @nullable IHDMIInput getHDMIInput(in IHDMIInput.Id hdmiInputId); diff --git a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutput.aidl b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutput.aidl index 5dc5241f4..d059ac8e3 100644 --- a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutput.aidl +++ b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutput.aidl @@ -31,6 +31,13 @@ import com.rdk.hal.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -54,6 +61,8 @@ interface IHDMIOutput * The returned value is not allowed to change between calls. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -63,6 +72,8 @@ interface IHDMIOutput * @param[in] property The key of a property from the Property enum. * * @returns PropertyValue or null if the property key is unknown. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). * * @see setProperty(), getPropertyMulti() */ @@ -81,6 +92,8 @@ interface IHDMIOutput * @returns boolean - true on success or false if any property keys are invalid. * @retval true The property values were retrieved successfully. * @retval false One or more property keys are invalid or the input array is empty. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). * * @see getProperty() */ @@ -90,6 +103,8 @@ interface IHDMIOutput * Gets the current HDMI output state. * * @returns State enum value. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). * * @see IHDMIOutputEventListener.onStateChanged(). */ @@ -115,6 +130,8 @@ interface IHDMIOutput * @returns IHDMIOutputController or null if the parameter is invalid. * * @exception binder::Status EX_ILLEGAL_STATE + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -138,6 +155,8 @@ interface IHDMIOutput * @retval true Successfully closed. * @retval false Invalid state or unrecognised parameter. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). + * * @pre The resource must be in State::READY. * * @see open() @@ -156,6 +175,8 @@ interface IHDMIOutput * @retval true The event listener was registered. * @retval false The event listener is already registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IHDMIOutputEventListener hdmiOutputEventListener); @@ -169,6 +190,8 @@ interface IHDMIOutput * @retval true The event listener was unregistered. * @retval false The event listener was not found registered. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutput}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IHDMIOutputEventListener hdmiOutputEventListener); diff --git a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputController.aidl b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputController.aidl index 3272f38db..846e14815 100644 --- a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputController.aidl +++ b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputController.aidl @@ -29,6 +29,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @@ -110,6 +117,8 @@ interface IHDMIOutputController * @return boolean * @retval true The HPD line is asserted. * @retval boolean The HPD line is deasserted. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). * * @see start() */ @@ -128,6 +137,8 @@ interface IHDMIOutputController * @retval true The property was successfully set. * @retval false Invalid property key or value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). + * * @see setPropertyMulti(), getProperty() */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -144,6 +155,8 @@ interface IHDMIOutputController * @retval true The property was successfully set. * @retval false Invalid property key or value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). + * * @see setProperty(), getProperty() */ boolean setPropertyMulti(in PropertyKVPair[] propertyKVList); @@ -155,6 +168,8 @@ interface IHDMIOutputController * * @returns HDCPProtocolVersion * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). + * * @see getHDCPStatus(), getSinkHDCPVersion() */ HDCPProtocolVersion getHDCPCurrentVersion(); @@ -166,6 +181,8 @@ interface IHDMIOutputController * * @returns HDCPProtocolVersion * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). + * * @see getHDCPStatus(), getHDCPCurrentVersion() */ HDCPProtocolVersion getHDCPReceiverVersion(); @@ -177,6 +194,8 @@ interface IHDMIOutputController * * @returns HDCPStatus * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputController}} for exception handling behavior). + * * @see getHDCPCurrentVersion(), getHDCPReceiverVersion() */ HDCPStatus getHDCPStatus(); diff --git a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputManager.aidl b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputManager.aidl index 505ec7dac..c9124a85c 100644 --- a/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputManager.aidl +++ b/hdmioutput/current/com/rdk/hal/hdmioutput/IHDMIOutputManager.aidl @@ -25,6 +25,13 @@ import com.rdk.hal.hdmioutput.IHDMIOutput; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -40,6 +47,8 @@ interface IHDMIOutputManager * The returned value is not allowed to change between calls. * * @returns PlatformCapabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputManager}} for exception handling behavior). */ PlatformCapabilities getCapabilities(); @@ -47,6 +56,8 @@ interface IHDMIOutputManager * Gets the platform list of HDMI output IDs. * * @returns IHDMIOutput.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputManager}} for exception handling behavior). */ IHDMIOutput.Id[] getHDMIOutputIds(); @@ -56,6 +67,8 @@ interface IHDMIOutputManager * @param[in] hdmiOutputId The ID of the HDMI output port instance. * * @returns IHDMIOutput or null if the ID is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IHDMIOutputManager}} for exception handling behavior). */ @nullable IHDMIOutput getHDMIOutput(in IHDMIOutput.Id hdmiOutputId); diff --git a/indicator/current/com/rdk/hal/indicator/IIndicator.aidl b/indicator/current/com/rdk/hal/indicator/IIndicator.aidl index a29328df7..743929564 100644 --- a/indicator/current/com/rdk/hal/indicator/IIndicator.aidl +++ b/indicator/current/com/rdk/hal/indicator/IIndicator.aidl @@ -21,15 +21,21 @@ import com.rdk.hal.indicator.State; import com.rdk.hal.indicator.Capabilities; /** - * /** - * * @brief Indicator HAL interface. - * * - * * Defines the Hardware Abstraction Layer (HAL) interface for indicator services. - * * @author Luc Kennedy-Lamb - * * @author Peter Stieglitz - * * @author Douglas Adler - * * @author Gerald Weatherup - * */ + * @brief Indicator HAL interface. + * + * Defines the Hardware Abstraction Layer (HAL) interface for indicator services. + * @author Luc Kennedy-Lamb + * @author Peter Stieglitz + * @author Douglas Adler + * @author Gerald Weatherup + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. + */ @VintfStability interface IIndicator @@ -41,6 +47,8 @@ interface IIndicator * Gets the capabilities of the indicator service. * * @returns Capabilities The capabilities parcelable of the indicator service. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IIndicator}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -49,6 +57,8 @@ interface IIndicator * * @param[in] state An indicator state to be set. * @returns boolean Returns `true` if the state was set successfully, `false` otherwise. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IIndicator}} for exception handling behavior). */ boolean set(in State state); @@ -56,6 +66,8 @@ interface IIndicator * Gets the current indicator state. * * @returns State The current indicator state. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IIndicator}} for exception handling behavior). */ State get(); } \ No newline at end of file diff --git a/panel/current/com/rdk/hal/panel/IFactoryPanel.aidl b/panel/current/com/rdk/hal/panel/IFactoryPanel.aidl index 0dc886fab..27e80ac78 100644 --- a/panel/current/com/rdk/hal/panel/IFactoryPanel.aidl +++ b/panel/current/com/rdk/hal/panel/IFactoryPanel.aidl @@ -25,6 +25,13 @@ import com.rdk.hal.panel.WhiteBalance2PointSettings; * The functionality covers writing configuration settings to factory persistent storage * and to execute test modes needed by the Factory Test Application. * @authors Luc Kennedy-Lamb, Peter Stieglitz, Douglas Adler, Ramkumar Pattabiraman + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -53,6 +60,8 @@ interface IFactoryPanel * @return boolean * @retval true The configuration data was successfully written. * @retval false Write error or invalid parameter. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). */ boolean setFactoryPanelConfiguration(in int panelId); @@ -73,6 +82,8 @@ interface IFactoryPanel * @return boolean * @retval true The calibration data was successfully written. * @retval false Write error or invalid parameter. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). * * @see getFactoryWhiteBalanceCalibration() */ @@ -104,6 +115,8 @@ interface IFactoryPanel * @retval true The calibration data was successfully written. * @retval false Write error or invalid parameter. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). + * * @see getFactoryGammaTable() */ boolean setFactoryGammaTable(in int colorTemperature, in int[] red, in int[] green, in int[] blue, in SaveTo saveTo); @@ -134,6 +147,8 @@ interface IFactoryPanel * @retval true The peak brightness data was successfully written. * @retval false Write error or invalid parameter. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). + * * @see getFactoryPeakBrightness() */ boolean setFactoryPeakBrightness(in int dimmingLevel, in int nits); @@ -187,6 +202,8 @@ interface IFactoryPanel * @return boolean * @retval true The illumination pattern was presented and the duration timer started. * @retval false Invalid parameter(s) or hardware fault. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). */ boolean setFactoryLocalDimming(in LocalDimmingZone[] zones, in int durationMs); @@ -203,6 +220,8 @@ interface IFactoryPanel * @return boolean * @retval true The test mode was run and the duration timer started. * @retval false Invalid parameter(s) or hardware fault. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). */ boolean setFactoryLocalDimmingTestMode(in int mode, in int durationMs); @@ -214,6 +233,8 @@ interface IFactoryPanel * @return boolean * @retval true The setting was successfully changed. * @retval false Driver or hardware error. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). * * @see getFactoryLocalDimmingPixelCompensation() */ @@ -225,6 +246,8 @@ interface IFactoryPanel * @return boolean * @retval true Local dimming pixel compensation is enabled. * @retval false Local dimming pixel compensation is disabled. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IFactoryPanel}} for exception handling behavior). * * @see setFactoryLocalDimmingPixelCompensation() */ diff --git a/panel/current/com/rdk/hal/panel/IPanelOutput.aidl b/panel/current/com/rdk/hal/panel/IPanelOutput.aidl index 86d53045c..3c6a2f10d 100644 --- a/panel/current/com/rdk/hal/panel/IPanelOutput.aidl +++ b/panel/current/com/rdk/hal/panel/IPanelOutput.aidl @@ -31,6 +31,13 @@ import com.rdk.hal.AVSource; /** * @brief Display Panel Output Control HAL interface. * @authors Luc Kennedy-Lamb, Peter Stieglitz, Douglas Adler, Ramkumar Pattabiraman + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -78,6 +85,8 @@ interface IPanelOutput * @return boolean * @retval true The panel is enabled. * @retval false The panel is disabled. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). * * @see setEnabled() */ @@ -95,6 +104,8 @@ interface IPanelOutput * @retval true The picture modes were successfully set. * @retval false One or more picture mode configurations were invalid and could not be set. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). + * * @see getPictureModes() */ boolean setPictureModes(in PictureModeConfiguration[] configurations); @@ -108,6 +119,8 @@ interface IPanelOutput * @retval true The picture modes were successfully return. * @retval false One or more picture mode configurations were invalid and could not be returned. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). + * * @see setPictureModes() */ boolean getPictureModes(inout PictureModeConfiguration[] configurations); @@ -121,6 +134,8 @@ interface IPanelOutput * @retval true The picture modes were successfully return. * @retval false One or more picture mode configurations were invalid and could not be returned. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). + * * @see setPictureModes() */ boolean getDefaultPictureModes(inout PictureModeConfiguration[] configurations); @@ -133,6 +148,8 @@ interface IPanelOutput * @return boolean * @retval true The PQ parameters were set. * @retval false One or more invalid parameter configurations. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). * * @see getPQParameters(), getDefaultPQParameters(), getPQParameterCapabilities(), PQParameterConfiguration */ @@ -147,6 +164,8 @@ interface IPanelOutput * @retval true The PQ parameters were returned. * @retval false One or more invalid parameter configuration requested. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). + * * @see setPQParameters(), getDefaultPQParameters(), getPQParameterCapabilities(), PQParameterConfiguration */ boolean getPQParameters(inout PQParameterConfiguration[] configurations); @@ -160,6 +179,8 @@ interface IPanelOutput * @retval true The default PQ parameter values were returned. * @retval false One or more invalid parameter configuration requested. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). + * * @see setPQParameters(), getPQParameters(), getPQParameterCapabilities(), PQParameterConfiguration */ boolean getDefaultPQParameters(inout PQParameterConfiguration[] configurations); @@ -188,6 +209,8 @@ interface IPanelOutput * @return boolean * @retval true The refresh rate was set. * @retval false Unsupported refresh rate. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). * * @see getRefreshRate() */ @@ -218,6 +241,8 @@ interface IPanelOutput * @return boolean * @retval true The new frame rate matching state was set. * @retval false The new frame rate matching state was not set. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). * * @see getFrameRateMatching() */ @@ -229,6 +254,8 @@ interface IPanelOutput * @return boolean * @retval true Frame rate matching is enabled. * @retval false Frame rate matching is disabled. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). * * @see setFrameRateMatching() */ @@ -309,6 +336,8 @@ interface IPanelOutput * @return boolean * @retval true The 2-point white balance was set for the color temperature. * @retval false One or more parameters are invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). */ boolean set2PointWhiteBalance(in int colorTemperature, in WhiteBalance2PointSettings whiteBalance); @@ -330,6 +359,8 @@ interface IPanelOutput * @return boolean * @retval true The multi-point white balance was set for the color temperature. * @retval false One or more parameters are invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). */ boolean setMultiPointWhiteBalance(in int colorTemperature, in WhiteBalanceMultiPointSettings whiteBalance); @@ -372,6 +403,8 @@ interface IPanelOutput * @return boolean * @retval true The fade operation was started. * @retval false The fade operation was not started because one or more parameters are invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPanelOutput}} for exception handling behavior). */ boolean fadeDisplay(in int start, in int end, in int durationMs); diff --git a/planecontrol/current/com/rdk/hal/planecontrol/IPlaneControl.aidl b/planecontrol/current/com/rdk/hal/planecontrol/IPlaneControl.aidl index ca71aa4ef..70403cbbb 100644 --- a/planecontrol/current/com/rdk/hal/planecontrol/IPlaneControl.aidl +++ b/planecontrol/current/com/rdk/hal/planecontrol/IPlaneControl.aidl @@ -29,6 +29,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -46,6 +53,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities[] array of plane resource instance capabilities. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). */ Capabilities[] getCapabilities(); @@ -61,6 +70,8 @@ interface IPlaneControl * * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid value. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). * * @see releaseNativeGraphicsWindowHandle() */ @@ -93,6 +104,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see getNativeGraphicsWindowHandle() */ boolean flipGraphicsBuffer(in int planeResourceIndex); @@ -118,6 +131,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see getVideoSourceDestinationPlaneMapping() */ boolean setVideoSourceDestinationPlaneMapping(in SourcePlaneMapping[] listSourcePlaneMapping); @@ -132,6 +147,8 @@ interface IPlaneControl * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see setVideoSourceDestinationPlaneMapping() */ SourcePlaneMapping[] getVideoSourceDestinationPlaneMapping(); @@ -147,6 +164,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameter value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see setProperty(), getPropertyMulti() */ @nullable PropertyValue getProperty(in int planeResourceIndex, in Property property); @@ -165,6 +184,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see getProperty(), setPropertyMultiAtomic() */ boolean setProperty(in int planeResourceIndex, in Property property, in PropertyValue propertyValue); @@ -187,6 +208,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see getProperty(), setPropertyMultiAtomic() */ boolean getPropertyMulti(in int planeResourceIndex, inout PropertyKVPair[] propertyKVList); @@ -206,7 +229,9 @@ interface IPlaneControl * * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. - * @exception binder::Statu::Exception::EX_NULL_POINTER for Null object. + * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). * * @see setProperty(), getPropertyMulti() */ @@ -227,6 +252,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see unregisterListener() */ boolean registerListener(in IPlaneControlListener listener); @@ -243,6 +270,8 @@ interface IPlaneControl * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IPlaneControl}} for exception handling behavior). + * * @see registerListener() */ boolean unregisterListener(in IPlaneControlListener listener); diff --git a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoder.aidl b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoder.aidl index 7a7745c02..d3fbcb323 100644 --- a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoder.aidl +++ b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoder.aidl @@ -32,6 +32,13 @@ import com.rdk.hal.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -57,6 +64,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -70,6 +79,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @see setProperty(), getPropertyMulti() */ @nullable PropertyValue getProperty(in Property property); @@ -92,6 +103,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @see getProperty() */ boolean getPropertyMulti(inout PropertyKVPair[] propertyKVList); @@ -103,6 +116,8 @@ interface IVideoDecoder * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @see IVideoDecoderEventListener.onStateChanged(). */ State getState(); @@ -132,6 +147,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_ILLEGAL_STATE If the resource is not in the CLOSED state. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid parameters. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -156,6 +173,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_ILLEGAL_STATE If instance is not in OPENED State. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @pre The resource must be in State::READY. * * @see open() @@ -177,6 +196,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IVideoDecoderEventListener videoDecoderEventListener); @@ -193,6 +214,8 @@ interface IVideoDecoder * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoder}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IVideoDecoderEventListener videoDecoderEventListener); diff --git a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderController.aidl b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderController.aidl index 45166ed83..2da77de3c 100644 --- a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderController.aidl +++ b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderController.aidl @@ -26,6 +26,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -74,6 +81,8 @@ interface IVideoDecoderController * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderController}} for exception handling behavior). + * * @see getProperty() */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -97,6 +106,8 @@ interface IVideoDecoderController * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderController}} for exception handling behavior). * * @pre The resource must be in State::STARTED. */ @@ -191,6 +202,8 @@ interface IVideoDecoderController * * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE if the resource is not in the `STARTED` state. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderController}} for exception handling behavior). * * @pre The resource must be in the `STARTED` state. */ diff --git a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderManager.aidl b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderManager.aidl index 0cda16cca..75350857d 100644 --- a/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderManager.aidl +++ b/videodecoder/current/com/rdk/hal/videodecoder/IVideoDecoderManager.aidl @@ -25,6 +25,13 @@ import com.rdk.hal.videodecoder.IVideoDecoder; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -39,6 +46,8 @@ interface IVideoDecoderManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IVideoDecoder.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderManager}} for exception handling behavior). */ IVideoDecoder.Id[] getVideoDecoderIds(); @@ -55,6 +64,8 @@ interface IVideoDecoderManager * @returns OperationalMode[] one or more OperationalMode enum values. * * @exception binder::Status::Exception::EX_NONE for success. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderManager}} for exception handling behavior). * * @see enum OperationalMode */ @@ -68,6 +79,8 @@ interface IVideoDecoderManager * @exception binder::Status::Exception::EX_NONE for success. * * @returns IVideoDecoder or null if the ID is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoDecoderManager}} for exception handling behavior). */ @nullable IVideoDecoder getVideoDecoder(in IVideoDecoder.Id videoDecoderId); diff --git a/videosink/current/com/rdk/hal/videosink/IVideoSink.aidl b/videosink/current/com/rdk/hal/videosink/IVideoSink.aidl index 5b4d61792..e85f7480f 100644 --- a/videosink/current/com/rdk/hal/videosink/IVideoSink.aidl +++ b/videosink/current/com/rdk/hal/videosink/IVideoSink.aidl @@ -30,6 +30,13 @@ import com.rdk.hal.State; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -54,6 +61,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_NONE for success. * * @returns Capabilities parcelable. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). */ Capabilities getCapabilities(); @@ -67,6 +76,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT for invalid property value. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). + * * @see setProperty() */ @nullable PropertyValue getProperty(in Property property); @@ -78,6 +89,8 @@ interface IVideoSink * * @exception binder::Status::Exception::EX_NONE for success. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). + * * @see IVideoSinkListener.onStateChanged(). */ State getState(); @@ -97,6 +110,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_ILLEGAL_STATE If the resource is not in the CLOSED state. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). * * @pre The resource must be in State::CLOSED. * @@ -120,6 +135,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_ILLEGAL_STATE If instance is not in OPENED State. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). + * * @see open() */ boolean close(in IVideoSinkController videoSinkController); @@ -139,6 +156,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). + * * @see unregisterEventListener() */ boolean registerEventListener(in IVideoSinkEventListener videoSinkEventListener); @@ -155,6 +174,8 @@ interface IVideoSink * @exception binder::Status::Exception::EX_NONE for success. * @exception binder::Status::Exception::EX_NULL_POINTER for Null object. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSink}} for exception handling behavior). + * * @see registerEventListener() */ boolean unregisterEventListener(in IVideoSinkEventListener videoSinkEventListener); diff --git a/videosink/current/com/rdk/hal/videosink/IVideoSinkController.aidl b/videosink/current/com/rdk/hal/videosink/IVideoSinkController.aidl index babee5051..c18fb2429 100644 --- a/videosink/current/com/rdk/hal/videosink/IVideoSinkController.aidl +++ b/videosink/current/com/rdk/hal/videosink/IVideoSinkController.aidl @@ -27,6 +27,13 @@ import com.rdk.hal.PropertyValue; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -44,6 +51,8 @@ interface IVideoSinkController * * @exception binder::Status::Exception::EX_NONE for success * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkController}} for exception handling behavior). + * * @see getProperty() */ boolean setProperty(in Property property, in PropertyValue propertyValue); @@ -63,6 +72,8 @@ interface IVideoSinkController * @retval true The Video Decoder ID was set successfully. * @retval false Invalid Video Decoder ID. * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkController}} for exception handling behavior). + * * @pre The resource must be in State::READY. * * @see getVideoDecoder(), IVideoDecoderManager.getVideoDecoderIds() @@ -77,6 +88,8 @@ interface IVideoSinkController * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkController}} for exception handling behavior). + * * @pre The resource must be in State::READY or State::STARTED. * * @see setVideoDecoder() @@ -135,6 +148,8 @@ interface IVideoSinkController * @exception binder::Status::Exception::EX_NONE for success * @exception binder::Status::Exception::EX_ILLEGAL_STATE * @exception binder::Status::Exception::EX_ILLEGAL_ARGUMENT + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkController}} for exception handling behavior). * * @pre The resource must be in State::STARTED. */ diff --git a/videosink/current/com/rdk/hal/videosink/IVideoSinkManager.aidl b/videosink/current/com/rdk/hal/videosink/IVideoSinkManager.aidl index 1fec0ad95..ae8a8639f 100644 --- a/videosink/current/com/rdk/hal/videosink/IVideoSinkManager.aidl +++ b/videosink/current/com/rdk/hal/videosink/IVideoSinkManager.aidl @@ -24,6 +24,13 @@ import com.rdk.hal.videosink.IVideoSink; * @author Luc Kennedy-Lamb * @author Peter Stieglitz * @author Douglas Adler + * + *

Exception Handling

+ * Unless otherwise specified, this interface follows standard Android Binder semantics: + * - Success: The method returns `binder::Status::Exception::EX_NONE` and all output parameters/return values are valid. + * - Failure (Exception): The method returns a service-specific exception (e.g., `EX_SERVICE_SPECIFIC`, `EX_ILLEGAL_ARGUMENT`). + * In this case, output parameters and return values contain undefined (garbage) memory and must not be used. + * The caller must ignore any output variables. */ @VintfStability @@ -38,6 +45,8 @@ interface IVideoSinkManager * @exception binder::Status::Exception::EX_NONE for success * * @returns IVideoSink.Id[] + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkManager}} for exception handling behavior). */ IVideoSink.Id[] getVideoSinkIds(); @@ -49,6 +58,8 @@ interface IVideoSinkManager * @exception binder::Status::Exception::EX_NONE for success * * @returns IVideoSink or null if the ID is invalid. + * + * @note On exception, output parameters/return values are undefined and must not be used. (See {{@link IVideoSinkManager}} for exception handling behavior). */ @nullable IVideoSink getVideoSink(in IVideoSink.Id videoSinkId); }