Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Updated README with 1.3.0 last-release notice * Adding PR CI/CD for unit tests * fixed syntax issue on pr workflow * Copied over short repo transfer notice from 5.x.x/develop branch * docs: Correcting typo * Create issue templates * fix: requested changes * 5.x.x/develop is the new develop (#136) * test: getVideoSettingsRequest * test: removeSceneCollectionRequest * test: setCurrentSceneCollectionRequest * test: setProfileParameterRequest * test: broadcastCustomEventRequest * test: getSourceActiveRequest * test: getSourceScreenshotRequest * test: saveSourceScreenshotRequest * core: code sharing * Sync with 5.x.x/develop * requested changes * cicd: modified e2e auth test to pull and run OBS Websocket, and run the authentication test instead * separated General request tests * separated Config request tests * separated Source request tests * separated Transitions request tests * test: createInputRequest * test: getInputListRequest * test: getInputKindListRequest fix: test method naming * test: getInputMonitorTypeRequest * core: Rename package to io.obswebsocket.community.client * core: RequestResponse and RequestBatchResponse isSuccessful * test: getInputMuteRequest * test: getInputSettingsRequest * test: getInputTracksRequest * test: getInputVolumeRequest * test: getSpecialInputNamesRequest * test: setInputMonitorTypeRequest * test: setInputMuteRequest * test: setInputNameRequest * test: createInputRequest * test: setInputSettingsRequest fix: createInputRequest * test: setInputMuteRequest * test: setInputVolumeRequest fix: SetInputVolumeRequest missing parameters * test: toggleInputMuteRequest * fix: Package * fix: Package * test: getTransitionListRequest * test: releaseTbarRequest * test: setCurrentTransitionDurationRequest * test: setCurrentTransitionRequest * test: setTbarPositionRequest * test: setTransitionSettingsRequest * test: triggerStudioModeTransitionRequest * test: createSceneRequest * test: deleteSceneTransitionOverrideRequest * test: getCurrentPreviewSceneRequest * test: getCurrentProgramSceneRequest * test: getSceneListRequest * test: getSceneTransitionOverrideRequest * test: removeSceneRequest * test: setCurrentPreviewSceneRequest * test: setCurrentProgramSceneRequest * test: setSceneNameRequest * test: setSceneTransitionOverrideRequest * test: createInputRequest * test: getSourceFilterRequest * test: GetSourceFilterListRequest * test: removeSourceFilterRequest * test: setSourceFilterEnabledRequest * test: setSourceFilterSettingsRequest * fix: typo * fix: typo * doc: OBSCommunicator missing param * core: rpc version is now static, and throws error on mismatch * fix: controller not disconnecting on error. test: Replaced CommunicatorE2E tests with tests against Controller. core: Added direct setter for communicator in the RemoteController builder * feat: GetSystemStats * feat: GetProjectorList * feat: CloseProjector * feat: GetRecordStatus * test: createSceneItemRequest * test: duplicateSceneItemRequest * feat: Start/Stop/Toggle Record * feat: Start/Stop/Toggle Record * test: getSceneItemColorRequest * Moved contact e2e tests into lifecycle e2e tests * test: getSceneItemEnabledRequest * feat: Resume/Pause/Toggle RecordPause * core: updated rpc check to verify server can support client * feat: Get/Set RecordDirectory * feat: Get/Set RecordFilenameFormatting * fix: Optimize Imports * test: getSceneItemListRequest * test: getSceneItemLockedRequest * test: removeSceneItemRequest * test: setSceneItemEnabledRequest * test: setSceneItemIndexRequest * test: setSceneItemLockedRequest * fix: Log * feat: RemoveInput * feat: connection timeout when obs unreachable * test: remove last disabled case; covered already in auth test * Added unit test for RemoteController builder, and increased e2e test timeout * cicd: updated pr flow to upload failing test results * cicd: updated test result upload to include all html resources in report * cicd: gave test reports unique names per job * test: Moved failed connection test into integration tests; the explicitly don't require OBS, and it may work better in cicd * cicd: fix, '/' invalid char in test results artifact name * test: updated to simply verify throwable is provided at all, since the specific kind depends on the OS. core: ensure throwable (cause if available, else the throwable) is always provided when obs cannot be reached * request: GetReplayBufferStatus * request: ToggleReplayBufferRequest * request: StopReplayBuffer * request: SaveReplayBuffer * style: updated constructor param javadocs. core: moved verification to constructor. * request: GetLastReplayBufferReplay * request: GetOutputList * request: ToggleOutput * request: StartOutput * request: StopOutput * feat: Output Request Methods in OBSRemoteController * test: Output Request tests * core: optimize imports * fix: record requests methods in OBSRemoteController * fix: wrong return Type * fix: request method parameters * fix: wrong request type * fix: requestType in getOutputListRequest Test * core: added websocket closecode enum, and updated tests checking code to use the enum * code: added fromCode lookup method for WebSocketCloseCode enum * fix: missing GetSystemStatsRequest method * fix: missing request methods * core: enforced websocketCloseCode enum on lifecycle callbacks. test: cleaned up several irrelevant and missing tests in the 'Unescured' test module. * fix: catch for Ubuntu case unknown host * test: Added positive connect test for unsecured case, and clarified the secured case is already covered. * core: hardened error handling for connect sequence. Unfortuntately cannot unit-test with Jetty WebSocketClient, it has several final methods and I cannot implement my own because there is no interface. We could address this later, but creating a facade should be done carefully...the Jetty client could be quite messy to cleanly facade out. Yucky yucky. * request: GetStreamStatus * request: ToggleStream * request: StartStream * request: StopStream * request: SendStreamCaption * request: GetStreamServiceSettings * request: SetStreamServiceSettings * feat: request methods * test: Stream request tests * request: GetMediaInputStatus * request: OffsetMediaInputTimecode * request: SetMediaInputTimecode * request: SetMediaInputPauseState * request: StopMediaInput * request: RestartMediaInput * request: NextMediaInputPlaylistItem * request: PreviousMediaInputPlaylistItem * fix: GroupId * feat: Media Input request methods * test: Media Input Request Tests * test: getVersionRequest * fix: Media Inputs package name * core: Migrate to Gradle v7.1 * core: Migrate to Gradle v7.1 * core: Migrate to Gradle v7.1 * feat: SetSceneIndex * doc: Update README.md with groupId * doc: Include and Apply IntelliJ Java Google CheckStyle * fix: SceneItems package name * fix: WebSocketCloseCode snucked semicolon * core: Moved onReady and onDisconnect into Communicator listeners, verified tests pass as before. Need to add additional specs verifying calls to expected lifecycle methods * core: implemented ready and disconnect callbacks in ObsCommunicator * core: added lifecycleBuilder facade covering both controller and communicator lifecycle callback registration. style: Added javadocs to communicator and controller. test: updated integration tests to expected onReady rather than onIdentified * doc: Add Example Gradle Module * chore: removed unnecessary CommunicatorBuilder constructor with reference to RemoteController * doc: Add Example class * doc: Add Example class * doc: Add Example class * cicd: Update Workflows * cicd: Update Workflows * cicd: Update Workflows * doc: Add example implementation * core: Removed isFailed calls; not useful or correct here * core: removed references to controller and communicator in lifecycle callback listeners; no-longer needed, nor should be exposed. * core: removed logical error, renamed builders, removed cruft, and added @OVERRIDES where missing * cicd: Fix pr workflow * doc: Add password to example and update onReady signature * core: Remove release related stuff from example build.gradle * core: Move lombok.config to client module * doc: Update README.md * docs: Reorganized docs, explaining the builder in pieces and adding a separate section comparing this library to the prior version. Moved the transfer notice to CONTRIBUTING and updated the gradle calls * docs: added section on error handling * docs: removed unnecessary header in text under logo * docs: Added gradle logging example, and various typos * docs: added link to file issue * doc: Add example implementation * feat: Get/Set GlobalPersistentData Requests * fix: Scene Events * feat: (WIP) Transition Events * fix: Transition Events package * feat: (WIP) Filter Events * fix: CustomEvent * fix: CustomEvent * core: Rename * Update GetInputKindListRequest.java * core: PersistentDataRequest * feat: GetStats request * feat: SetCurrentProfile request * feat: CreateProfile request * feat: RemoveProfile request * feat: SetVideoSettings request * feat: GetInputAudioSyncOffset request * feat: SetInputAudioSyncOffset request * fix: rename GetInputTracks >> GetInputAudioTracks * feat: GetInputPropertiesListPropertyItems request * fix: make itemValue a string * feat: PressInputPropertiesButton request * fix: persistent data requests parameters and response names * fix: request/response parameters * fix: request/response parameters * feat: StartReplayBuffer request * core: reformat request code * feat: OBSRemoteController requests * fix: unit-tests * feat: abstract ProfileRequest class * fix: GetInputAudioSyncOffsetRequest extending InputRequest * fix: SetInputAudioSyncOffsetRequest extending InputRequest * fix: inputAudioSyncOffset type * fix: propertyItems type * add todo * 5.x.x/events (#119) * fix: rename CurrentSceneChangedEvent >> CurrentProgramSceneChangedEvent * core: reformat code * fix: type * fix: Enum name Co-authored-by: Christophe Carvalho Vilas-Boas <[email protected]> * Issue forms (#129) * Copied over short repo transfer notice from 5.x.x/develop branch * docs: Correcting typo * Create issue templates * fix: requested changes * Change missing-event issue template to new Issue Form * Change missing-request issue template to new Issue Form Co-authored-by: TinaTiel <[email protected]> Co-authored-by: Pjiesco <[email protected]> Co-authored-by: Pjiesco <[email protected]> * core: Protocol Update (#122) * core: OperationCode * core: OperationCode * core: Message data * core: Message data * core: Message data * core: Comment GetVersion Request when client is identified * core: requestStatus Codes * core: Upgrade dependencies * core: Rename Event.Category to Event.Intent doc: Rename obs-websocket repo + fixes * core: Event Serialization + CurrentProfileChangedEvent * core: CurrentSceneCollectionChangedEvent * core: ProfileListChangedEvent * core: SceneCollectionListChangedEvent * fix: make fields final * core: CustomEvent * core: ExitStartedEvent * core: StudioModeStateChangedEvent * fix: Example * fix: CustomEventTriggered and SceneCollectionListChangedEventTriggered tests * core: call super on toString + Filter events * fix: ObsCommunicatorEventIT * fix: FilterEvent and add test * core: InputAudioSyncOffsetChangedEvent * core: Input events + Tests * core: InputVolumeChangedEvent * core: Media events + Tests * core: Output events + Tests * core: SceneItem events + Tests * core: Scene events + Tests * core: Update Logo fixes #124 * core: Upgrade lombok * core: Make *Event.messageData non final * core: TransitionEvent and subclasses * core: TransitionEvent and subclasses * core: TransitionEvent and subclasses * core: Events Serialization Tests * core: Events Serialization Tests * core: Events Serialization Tests * test: Reorganize test classes * Update GetStreamServiceSettingsResponse.java https://github.com/obsproject/obs-websocket/blob/master/docs/generated/protocol.md#getstreamservicesettings * 5.x.x/protocol update requests config (#128) * core: Protocol Update for Requests * core: Protocol Update Config Requests * core: Optimize imports * fix: Example * Fix change in messages (#134) + more (#135) * Update example default port * NPE 'fix', not sure if messageData is supposed to be nullable * We know we are connecting, no point in info logging that * Request data field was incorrectly named * Put response data in the correct place * Reuse websocket client and add explicit stop * Actually close the websocket when calling disconnect * Example should now stop the communicator at the end * Allow configuring the websocket client * Put requestData in the correct place * Make events work again and (de)serialization using generics * Update references to old default port * Fix testcases * Update close codes * Change docker port mapping to the non-standard websocket port * Restore example * Add link to Google style convention * Fix review feedback * Get eventIntent through messageData * Apply workaround to allow SuperBuilder inheritance projectlombok/lombok#2524 * Don't use builders when not needed * Don't use boolean object when not needed Co-authored-by: Niels van de Weem <[email protected]> * core: clean * FIX: VendorEvent * cicd: Upgrade GitHub Actions * cicd: Upgrade GitHub Actions * cicd: Upgrade GitHub Actions core: Upgrade Gradle Wrapper * core: Upgrade Dependencies & clean * fix: Events Intent * fix: Events Intent * core: RequestBatch and RequestBatchResponse * fix: Event.Intent names * fix: RequestBatch, RequestBatchResponse is still todo * core: Event.Intent and Requests + RequestResponses * fix: RequestBatchResponse * fix: Remove not-needed superbuilders * fix: Get/SetSceneSceneTransitionOverride * fix: Fix compilation errors * fix: Update test Co-authored-by: Pjiesco <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> Co-authored-by: Pjiesco <[email protected]> Co-authored-by: TinaTiel <[email protected]> Co-authored-by: Pjiesco <[email protected]> Co-authored-by: TinaTiel <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> * fix: Publication and Signing * Update requests and events (#137) * Update scenes Requests * Add @getter and @tostring * Update sceneitem requests * Update general requests * doc: Update README.md * tests: Fix and use resources * core: Rename Controller methods * core: UI Events * core: Media Inputs Events * core: RequestSerializationTest * core: GetVersion * core: GetVersion * core: GetStats * core: BroadcastCustomEvent * core: StreamStateChangedEvent * core: RecordStateChangedEvent * core: StreamStateChangedEvent * core: OutputStateChangedEvent * core: ReplayBufferStateChangedEvent * core: VirtualcamStateChangedEvent * core: ReplayBufferSavedEvent * core: general request + response tests * core: GetSceneList Request + Response tests * core: GetGroupList Request + Response tests * core: GetCurrentProgramScene Request + Response tests * core: SetCurrentProgramScene Request + Response tests * core: GetCurrentPreviewScene Request + Response tests * core: SetCurrentPreviewScene Request + Response tests * core: CreateScene Request + Response tests * core: RemoveScene Request + Response tests * core: SetSceneName Request + Response tests * core: GetSceneSceneTransitionOverride Request + Response tests * core: SetSceneSceneTransitionOverride Request + Response tests * core: fix test * core: ExitStartedEvent tests * core: VendorEvent rename + tests * core: CurrentSceneCollectionChanging + tests * core: CurrentSceneCollectionChanged tests * core: Simplify tests * core: SceneCollectionListChanged tests * core: CurrentProfileChangingEvent + tests * core: CurrentProfileChanged tests * core: ProfileListChanged tests * core: Fix compilation errors after changing events * core: And actually fix the test * core: SceneCreated test * core: SceneRemoved test * core: SceneNameChanged test * core: CurrentProgramSceneChanged test * core: CurrentPreviewSceneChanged test * core: SceneListChangedEvent test * core: InputCreatedEvent test * core: Put data type of VendorEvent back to JsonObject * core: InputRemovedEvent tests * core: InputNameChangedEvent tests * core: InputActiveStateChanged tests * core: Rename incorrectly named test classes * core: InputShowStateChangedEvent tests * core: InputMuteStateChangedEvent tests * core: InputVolumeChangedEvent tests * core: InputAudioBalanceChangedEvent + tests * core: InputAudioSyncOffsetChangedEvent tests * core: InputAudioTracksChangedEvent tests (with todo) * core: InputAudioMonitorTypeChangedEvent + tests (with todo) * core: InputVolumeMetersEvent tests * core: Fix ObsCommunicatorEventIT * core: CurrentSceneTransitionChangedEvent tests * core: CurrentSceneTransitionDurationChangedEvent + tests * core: SceneTransitionStartedEvent tests * core: SceneTransitionEndedEvent tests * core: SceneTransitionVideoEndedEvent + tests * core: SourceFilterListReindexedEvent tests * core: SourceFilterCreatedEvent tests * core: SourceFilterRemovedEvent tests * core: SourceFilterNameChangedEvent tests * core: SourceFilterEnableStateChangedEvent tests * core: SceneItemCreatedEvent tests * core: SceneItemRemovedEvent tests * core: SceneItemListReindexedEvent tests (with todo) * core: SceneItemEnableStateChangedEvent tests * core: SceneItemLockStateChangedEvent tests * core: SceneItemSelectedEvent + tests * core: SceneItemTransformChangedEvent + tests (with todo) * core: GetStudioModeEnabled tests * core: SetStudioModeEnabled tests * core: OpenInputPropertiesDialog + tests * core: OpenInputFiltersDialog + tests * core: OpenInputInteractDialog + tests * core: GetMonitorList + tests (with todo) * core: OpenVideoMixProjector + tests * core: OpenSourceProjector + tests * core: GetMediaInputStatus tests * core: SetMediaInputCursor + tests * core: OffsetMediaInputCursor + tests * core: TriggerMediaInputActionRequest + tests * core: GetRecordStatus tests * core: ToggleRecord tests * core: StartRecord tests * core: StopRecord tests * core: ToggleRecordPause tests * core: PauseRecord tests * core: ResumeRecord tests * core: GetStreamStatus tests * core: ToggleStream tests * core: StartStream tests * core: StopStream tests * core: SendStreamCaption tests * core: GetVirtualCamStatus tests * core: ToggleVirtualCam tests * core: StartVirtualCam tests * core: StopVirtualCam tests * core: GetReplayBufferStatus tests * core: ToggleReplayBuffer tests * core: StartReplayBuffer tests * core: StopReplayBuffer tests * core: SaveReplayBuffer tests * core: GetLastReplayBufferReplay tests * core: GetOutputList tests (with todo) * core: GetOutputStatus tests * core: ToggleOutput tests * core: StartOutput tests * core: StopOutput tests * core: GetOutputSettings tests (with todo) * core: SetOutputSettings tests (with todo) * core: Clean SceneItem.BlendMode * core: Clean SceneItem.BlendMode * core: Clean SceneItem.BlendMode * core: Clean SceneItem.BlendMode * core: GetPersistentData & tests * core: SetPersistentData tests * core: Input.MonitorType * core: SceneItem.Transform * core: SceneItemTransformChangedEvent tests * core: SceneItemTransformChangedEvent tests * core: GetMonitorListResponse & UI Response Tests * core: GetOutputSettingsResponse * core: SetOutputSettingsRequest * core: InputAudioTracksChangedEvent & tests * core: InputAudioTracksChangedEvent & tests * core: GetRecordStatus fixes #138 * core: GetRecordStatus test * core: Check Types in resources * core: Check Types in resources * core: Config Requests/Responses tests * core: Sources Requests/Responses tests * core: Inputs Requests/Responses tests * fix: Create/Remove Input tests * core: Filters Requests/Responses tests * core: Rename SceneItemListReindexedEvent.SpecificData.SceneItem to SceneItemIdAndIndex * Message Generator (#139) * Generate requests from protocol.json * Extract RequestType * Generate Responses, OBSRemoteControllerBase, RequestTypes * Get the source compiling again and fix some more types * Generate events * All events/requests/responses are generated * core: sceneItemTransform is always SceneItem.Transform * core: monitorType is always Input.MonitorType * fix: tests * fix: integrationTests * core: Add Version Catalog * core: Additional types adjustments * fix: Lombok actually needs to be an implementation dependency * core: Additional types adjustments * generator: Lombok is needed in implementation * generator: Don't generate java.lang imports, prevent formatting and put generation warning at the top of the class * core: re-generate messages * generator: allow overrides & fix GetOutputList/Sleep messages Co-authored-by: Niels <[email protected]> Co-authored-by: Christophe Carvalho Vilas-Boas <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> * core: Generate proper Javadoc (#140) * core: Generate proper Javadoc * core: Generate proper Javadoc * Generator tests (#142) * generator: Add testframework for generator tests * core: Force lf line endings * generator: Test the generator fully * core: Include messagegenerator tests on pr action * Fix/e2e tests (#143) * core: allow blocking calls, events/responses have no @nonnull fields, fix Scene definition * core: fix testcases * core: include getters in response/event classes * example: update to show blocking calls & convenience getters * core: re-generate messages * fix: expected scene type was incorrect * fix: don't add multiple onControllerError handlers * fix: cleanup after test * core: describe what happens when the timeout occurs * test: fix vlc todo * test: fix other todo's Co-authored-by: TinaTiel <[email protected]> Co-authored-by: TinaTiel <[email protected]> Co-authored-by: Pjiesco <[email protected]> Co-authored-by: Pjiesco <[email protected]> Co-authored-by: Niels van de Weem <[email protected]> Co-authored-by: Niels van de Weem <[email protected]>
- Loading branch information