Skip to content
This repository has been archived by the owner on Mar 1, 2024. It is now read-only.

Decouple UI from the frontend library #110

Merged
merged 88 commits into from
Feb 22, 2023
Merged
Show file tree
Hide file tree
Changes from 71 commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
d38ef0e
add jss dependencies to UI project
hmuurine Feb 8, 2023
f32a669
move PixelStreamingApplicationStyles to the UI project
hmuurine Feb 8, 2023
5cb3bf0
remove jss dependencies from library project
hmuurine Feb 8, 2023
9a56322
split library into library/PixelStreaming and library/UserInterface
hmuurine Feb 8, 2023
3de8d7e
add pixel streaming lib as ui dependency
hmuurine Feb 9, 2023
0187e5e
renamed lib Application -> PixelStreaming
hmuurine Feb 9, 2023
cadb7ea
expose AFK callbacks from API
hmuurine Feb 9, 2023
1589f03
expose callbacks for overlays
hmuurine Feb 9, 2023
e45e3e5
onDismissAfk
hmuurine Feb 9, 2023
9621d91
fix possible NPE in statistics panel (Firefox only)
hmuurine Feb 9, 2023
d2f6424
build both library projects in setup.sh
hmuurine Feb 9, 2023
59e2c8f
extracted overlays from PixelStreaming library to UI
hmuurine Feb 9, 2023
cd7f971
bind callbacks to have access to this
hmuurine Feb 9, 2023
0464c35
fix AFK handler bindings
hmuurine Feb 9, 2023
c753991
refactor statistics object to contain all stats
hmuurine Feb 9, 2023
c79b07b
emit onStatsReceived callback
hmuurine Feb 9, 2023
1765152
replaced on\* callbacks with a typed event emitter
hmuurine Feb 10, 2023
a4507cd
reuse types in on() and emit()
hmuurine Feb 10, 2023
03be232
fix web-xr on Firefox (no navigator.xr available)
hmuurine Feb 10, 2023
3d8f239
latency test API and callback events
hmuurine Feb 10, 2023
2f8cb0b
move stats panel to UI project
hmuurine Feb 10, 2023
76f1155
move settings panel to UI project
hmuurine Feb 10, 2023
7294e5f
extract video quality indicator to UI project
hmuurine Feb 13, 2023
3b1f9ce
move buttons to UI project
hmuurine Feb 13, 2023
5b112d8
events for freezeFrame functionality
hmuurine Feb 13, 2023
5628eb9
import UI project in stresstest.ts
hmuurine Feb 13, 2023
2646c8c
move UI wrapper elements to UI project
hmuurine Feb 13, 2023
e387b7d
optional override for videoParentElement
hmuurine Feb 13, 2023
3870b53
a sample UI application with no overlay UI
hmuurine Feb 13, 2023
d75e2aa
let -> const everywhere in sample applications
hmuurine Feb 13, 2023
3571b25
used named imports everywhere, not import * as libfrontend
hmuurine Feb 13, 2023
5572aae
document overrides
hmuurine Feb 13, 2023
433663d
added onOpen, onClose, onError handlers for data channels
hmuurine Feb 14, 2023
8fd63e2
events for webRtc data channel open, close, error
hmuurine Feb 14, 2023
6393452
javadocs
hmuurine Feb 14, 2023
3e9de1f
webRtcDisconnect -> webRtcDisconnected
hmuurine Feb 14, 2023
a37c2a7
added disconnect function to the API
hmuurine Feb 14, 2023
d18eea9
use EventTarget to emit events
hmuurine Feb 15, 2023
4cb7a09
dispatch Event objects
hmuurine Feb 15, 2023
1873d4d
emit streamerListMessage, move new streamer select overlay to UI side
hmuurine Feb 15, 2023
586d8d1
Emit config change events
hmuurine Feb 15, 2023
ae46a16
API for changing settings
hmuurine Feb 15, 2023
cc1224a
export OptionParameters
hmuurine Feb 15, 2023
7c6bba9
add getSettings() for symmetry
hmuurine Feb 16, 2023
c02b3b5
set partial initial settings in Config constructor
hmuurine Feb 16, 2023
eb8e2e9
configure initial params in uiless.ts to auto start muted
hmuurine Feb 16, 2023
2be4761
add missing type exports
hmuurine Feb 16, 2023
1178699
extracted config UI from the config components
hmuurine Feb 16, 2023
4f47029
configurable parameter saving to URL
hmuurine Feb 16, 2023
3796d84
save config params to URL only on demand
hmuurine Feb 16, 2023
4836719
removed console.log
hmuurine Feb 16, 2023
f89920d
removed unused import
hmuurine Feb 17, 2023
c8ea29a
Extract light/dark mode config out of Pixel Streaming library
hmuurine Feb 17, 2023
3201d8b
update labels for custom settings
hmuurine Feb 17, 2023
b2902aa
Build the new library in setup scripts
hmuurine Feb 17, 2023
a4fd44f
added a fallback click-to-play handler into uiless.ts
hmuurine Feb 17, 2023
14c6405
hide non-public attributes in Config
hmuurine Feb 17, 2023
a18552a
make the public API more compact by hiding private attributes
hmuurine Feb 17, 2023
4f6e880
added documentation for the public functions
hmuurine Feb 17, 2023
798bdca
underscored some methods in Config
hmuurine Feb 17, 2023
ba440d3
make useUrlParameters read-only
hmuurine Feb 17, 2023
a3a6cd0
make useUrlParameters read-only
hmuurine Feb 17, 2023
d65d4d7
underscore for Config event listeners: public API users use settingsC…
hmuurine Feb 17, 2023
789cddb
underscore for Config event listeners
hmuurine Feb 17, 2023
2fd3d8d
fix imports: @epicgames-ps/lib-pixelstreamingfrontend-ue5.2, not -dev
hmuurine Feb 20, 2023
b7ac12b
prettier auto-format
hmuurine Feb 20, 2023
7744747
added a comment to request function API docs: expected to be changed …
hmuurine Feb 20, 2023
abeac69
reorganized directory structure
hmuurine Feb 20, 2023
0206f0b
ui-library build now uses NPM dependency, build-all linked filesystem…
hmuurine Feb 20, 2023
f015c00
added ui-library build to GH release
hmuurine Feb 20, 2023
4bac084
added github workflow for ui-library publishing
hmuurine Feb 20, 2023
6767a38
Link base library when building ui-library
Belchy06 Feb 20, 2023
4d5bcb2
Bring dispatchEvent, addEventListener and removeEventListener to the …
Belchy06 Feb 20, 2023
8dfd7f5
Allow settings to take a default onChange listener. This listener has…
Belchy06 Feb 21, 2023
ecf8559
Fix overlay to properly notify is none or multiple streamers are conn…
Belchy06 Feb 21, 2023
1dfc615
Make dark mode the default color scheme regardless of browser prefere…
lukehb Feb 21, 2023
70a00a8
Make numeric settings spinner width take us less space.
lukehb Feb 21, 2023
ae1041d
Make SettingUIOption match styling width of numeric settings.
lukehb Feb 21, 2023
2bd7676
renamed EpicGames build-all-dev -> build-dev-all to match other projects
hmuurine Feb 21, 2023
01d33de
added Click to play overlay in uiless.html and show/hide it when needed
hmuurine Feb 21, 2023
cc0be62
revised documentation for Config/*.ts
hmuurine Feb 21, 2023
6ffd2b7
revised documentation in PixelStreaming.ts
hmuurine Feb 21, 2023
353f565
documented EventEmitter events and event parameters
hmuurine Feb 21, 2023
b2fb702
emit webRtcConnected event when connected
hmuurine Feb 21, 2023
b912071
Fix max bitrate not being set correctly.
lukehb Feb 22, 2023
7ea3857
Update package-lock.json for ui-library
lukehb Feb 22, 2023
a868a6f
Refactor sendEncoderSettings to instead be sendEncoderMinQP and sendE…
lukehb Feb 22, 2023
e4de97c
Bump version numbers of library NPM package to 0.1.0 and bump 5.2 rel…
lukehb Feb 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/create-gh-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ jobs:
working-directory: ./Frontend/library
run: npm run build

- name: Install ui-library deps
working-directory: ./Frontend/ui-library
run: npm ci

- name: Build frontend ui-library
working-directory: ./Frontend/ui-library
run: npm run build-all

- name: Install implementations/EpicGames deps
working-directory: ./Frontend/implementations/EpicGames
run: npm ci
Expand All @@ -54,7 +62,7 @@ jobs:
path: 'PixelStreamingInfrastructure-${{ github.ref_name }}-${{ steps.getversion.outputs.version }}'
type: 'tar'
filename: '${{ github.ref_name }}-${{ steps.getversion.outputs.version }}.tar.gz'
exclusions: '.git .github output Frontend/Docs Frontend/library/dist Frontend/library/types Frontend/library/node_modules Frontend/implementations/EpicGames/node_modules'
exclusions: '.git .github output Frontend/Docs Frontend/library/dist Frontend/library/types Frontend/library/node_modules Frontend/ui-library/dist Frontend/ui-library/types Frontend/ui-library/node_modules Frontend/implementations/EpicGames/node_modules'

- name: Archive Release .zip
uses: thedoctor0/zip-release@0.7.1
Expand Down
22 changes: 22 additions & 0 deletions .github/workflows/publish-ui-library-to-npm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Publish ui-library package to npmjs
on:
push:
branches: ['UE5.2']
paths: ['Frontend/ui-library/package.json']
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: Frontend/ui-library
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
- run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
5 changes: 5 additions & 0 deletions Frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,11 @@ Once you have NodeJS installed,
- `npm install`
- `npm run build`

The default user interface is provided in /ui-library directory. You can either use it or provide your own user interface. To build the default UI, run
- `cd ui-library`
- `npm install`
- `npm run build`


If you are developing your implementation based on the library, the process is similar:

Expand Down
Loading