Skip to content
Open
Show file tree
Hide file tree
Changes from 222 commits
Commits
Show all changes
230 commits
Select commit Hold shift + click to select a range
466271d
feat: add usb gadget audio config
lqs May 14, 2025
cc83e41
feat: add audio encoder
lqs May 14, 2025
9d12dd1
fix: audio rtp timestamp
lqs May 16, 2025
c529c90
Merge remote-tracking branch 'upstream/dev' into feat/usb-audio
lqs Jun 21, 2025
28a8fa0
feat: use native jetkvm-audio
lqs Jun 25, 2025
4f47d62
[#315] Updates: add advanced audio support
pennycoders Jul 30, 2025
09ac8c5
Cleanup / Fix: linting errors, code formatting, etc
pennycoders Aug 2, 2025
575abb7
[WIP] Updates: audio input support
pennycoders Aug 3, 2025
3dc196b
Fix: lint errors
pennycoders Aug 4, 2025
3444607
Improvements, Fixes: reduce mouse lag when audio is on
pennycoders Aug 4, 2025
612dca3
Fix: eslint errors
pennycoders Aug 4, 2025
3158ca5
Finetuning: further perf. tunning
pennycoders Aug 4, 2025
520c218
Efficiency Improvements: Switch to websocket-based communication for …
pennycoders Aug 4, 2025
638d08c
Fix: goimports
pennycoders Aug 4, 2025
a208715
Fix: goimports
pennycoders Aug 4, 2025
3c1f96d
Separation of Concerns: Move the audio-related code into the audio in…
pennycoders Aug 4, 2025
94ca3fa
Stability: prevent race condition when clicking on Mic Start, Stop bu…
pennycoders Aug 5, 2025
5f905e7
Fix: session duplication detection, dev_deploy.sh script
pennycoders Aug 7, 2025
4b693b4
perf(usbgadget): reduce input latency by pre-opening HID files and re…
pennycoders Aug 12, 2025
a9a92c5
feat(rpc): optimize input handling with direct path for performance
pennycoders Aug 12, 2025
4688f9e
perf(build): add ARM Cortex-A7 optimization flags for audio builds
pennycoders Aug 12, 2025
1f2c462
build(audio): update cgo LDFLAGS to use env vars for library versions
pennycoders Aug 12, 2025
c51bdc5
Fix: linter errors
pennycoders Aug 12, 2025
767311e
[WIP] Fix: performance issues
pennycoders Aug 13, 2025
629cdf5
perf(audio): optimize audio processing with batching and atomic opera…
pennycoders Aug 13, 2025
7e83015
refactor(vite.config): fix local ui development proxy
adamshiervani Aug 12, 2025
423d577
[WIP] Performance Enhancements: move audion processing into a separat…
pennycoders Aug 21, 2025
d5295d0
Updates: golangci-lint workflow
pennycoders Aug 22, 2025
a976ce1
Updates: set LDFLAGS and CFLAGS for the lint steps
pennycoders Aug 22, 2025
dee8a0b
Fix: golangci-lint
pennycoders Aug 22, 2025
071129a
Fix: use absolute path for caching
pennycoders Aug 22, 2025
4875c24
Fix: Lint env vars
pennycoders Aug 22, 2025
de0077a
Fix: always save cache
pennycoders Aug 22, 2025
73e8897
Improvement: Automatically invalidate cache
pennycoders Aug 22, 2025
b3373e5
Improvement: use cache save/restore actions
pennycoders Aug 22, 2025
bd4fbef
Tweak: steps order
pennycoders Aug 22, 2025
7129bd5
Fix: workflow indentation
pennycoders Aug 22, 2025
671d875
Fix: literal /home/vscode in cache paths
pennycoders Aug 22, 2025
aeb7a12
Fix: linting errors
pennycoders Aug 22, 2025
62d4ec2
Fix: audio subprocess handling
pennycoders Aug 22, 2025
3c1e9b8
Fix: audio subprocess handling, avg atency audio metric
pennycoders Aug 22, 2025
1e1677b
Fix: linter errors
pennycoders Aug 22, 2025
e360348
Fix: linter errors
pennycoders Aug 22, 2025
6ecb829
Fix: linter errors
pennycoders Aug 22, 2025
97bcb3c
Fix: linter errors
pennycoders Aug 22, 2025
32055f5
Cleanup: remove polling fallback for /audio/mute status
pennycoders Aug 22, 2025
0ed8425
Improvements, Fixes: enhanced audio metrics (including prometheus for…
pennycoders Aug 22, 2025
0e1c896
Fix: go lint errors
pennycoders Aug 22, 2025
5e28a6c
feat(audio): add system memory endpoint and process metrics monitoring
pennycoders Aug 23, 2025
2082b1a
refactor(audio): rename audio-server flag to audio-output-server for …
pennycoders Aug 23, 2025
879ea5e
Fix: fix audio input by reverting change
pennycoders Aug 23, 2025
38ad145
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders Aug 23, 2025
692f7dd
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders Aug 23, 2025
ddc2f90
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders Aug 23, 2025
27a999c
[WIP] Updates: audio output & input subprocesses memory & cpu usage
pennycoders Aug 23, 2025
76174f4
refactor(audio): improve performance and simplify code structure
pennycoders Aug 23, 2025
88679cd
refactor(audio): improve process monitoring with dynamic clock ticks
pennycoders Aug 23, 2025
57b7baf
feat(audio): implement comprehensive audio optimization system
pennycoders Aug 24, 2025
785a68d
chore(ui)/package upgrades (#724)
IDisposable Aug 12, 2025
f729675
Added crontab scheduler for jiggler (#316)
jackislanding Aug 12, 2025
a3b2b46
Lint fix from last merge. (#733)
IDisposable Aug 13, 2025
199cca8
Update mount list for new Debian 13 release (#739)
kt315ua Aug 18, 2025
0651fae
feat: improve custom jiggler settings and add timezone support (#742)
adamshiervani Aug 19, 2025
9d40263
fix: compiler error (#743)
IDisposable Aug 22, 2025
70e49a1
chore: ensure that rpc messages get processed sequentially and avoid …
alexballas Aug 22, 2025
5188717
fix: useJsonRpc "any" issue
IDisposable Aug 24, 2025
e0f7b1d
Merge branch 'dev' into feat/audio-support
pennycoders Aug 24, 2025
a9a1082
Docs: Updated documentation
pennycoders Aug 24, 2025
3a28105
Fix: linting errors
pennycoders Aug 24, 2025
44a35aa
feat(audio): add socket buffer configuration and monitoring
pennycoders Aug 24, 2025
bc53523
Fix: USB Gadgets update
pennycoders Aug 25, 2025
2afe2ca
Fix: USB Gadgets updates
pennycoders Aug 25, 2025
f24443e
Improvement: automatically resume audio when the audio usb gadget is …
pennycoders Aug 25, 2025
1a0377b
Improvement: automatically resume audio when the audio usb gadget is …
pennycoders Aug 25, 2025
6f02870
fix(audio): improve audio device state management
pennycoders Aug 25, 2025
c89d678
refactor(audio): remove unused context from audio input manager
pennycoders Aug 25, 2025
d1c192b
feat(audio): add real-time USB audio config updates and validation
pennycoders Aug 25, 2025
7ec583e
refactor(audio): centralize config and remove debug logs
pennycoders Aug 25, 2025
35a666e
refactor(audio): centralize configuration constants in audio module
pennycoders Aug 25, 2025
9e343b3
refactor(audio): move hardcoded values to config for better flexibility
pennycoders Aug 25, 2025
c521692
refactor(audio): centralize config constants and update usage
pennycoders Aug 25, 2025
60a6e6c
refactor(audio): centralize config values and improve documentation
pennycoders Aug 25, 2025
34f8829
refactor(audio): improve configuration handling and validation
pennycoders Aug 25, 2025
6898a6e
feat(audio): add granular metrics collection and comprehensive error …
pennycoders Aug 25, 2025
fff2d2b
feat(usbgadget): add nil checks for gadget operations and cleanup tests
pennycoders Aug 25, 2025
e4ed2b8
refactor(audio): rename audio components for clarity and add validation
pennycoders Aug 26, 2025
b1f85db
feat(audio): enhance error handling and add device health monitoring
pennycoders Aug 26, 2025
6a68e23
refactor(audio): improve error handling and memory management
pennycoders Aug 26, 2025
e8d12ba
style(audio): fix formatting and add missing newlines
pennycoders Aug 26, 2025
8fb0b9f
feat(audio): centralize audio configuration and improve debugging
pennycoders Aug 27, 2025
dc2db8e
feat(audio): add comprehensive input validation and base components
pennycoders Aug 27, 2025
50e0419
refactor(audio): standardize log levels and messages across components
pennycoders Aug 27, 2025
cb20956
refactor(AudioControlPopover): simplify audio metrics display and rem…
pennycoders Aug 27, 2025
6355dd8
feat(audio): add pool hit tracking and optimize buffer management
pennycoders Aug 27, 2025
9dda569
feat(audio): enhance validation and add logging standards
pennycoders Aug 27, 2025
e3e7b89
style(audio): fix formatting and add missing newlines
pennycoders Aug 27, 2025
25363ce
perf(audio): replace frame validation with ultra-fast version
pennycoders Aug 27, 2025
cdf0b20
perf(audio): optimize validation and buffer pool with caching
pennycoders Aug 27, 2025
ece36ce
feat(audio): optimize validation and add dynamic opus encoder configu…
pennycoders Aug 27, 2025
3efe2f2
refactor(audio/validation): improve frame data validation with specif…
pennycoders Aug 27, 2025
758bbbf
feat(audio): add latency histogram metrics collection and visualization
pennycoders Aug 28, 2025
f9adb43
feat(audio): add latency metrics collection for input and output
pennycoders Aug 28, 2025
fe45719
refactor(audio): remove granular latency metrics and histogram functi…
pennycoders Aug 28, 2025
0d4176c
refactor(audio): centralize metrics collection with new registry
pennycoders Aug 28, 2025
9c0aff4
feat(audio): implement audio input supervisor and opus config management
pennycoders Aug 28, 2025
858859e
perf(audio): optimize audio config for RV1106 SoC compatibility
pennycoders Aug 28, 2025
6adcc26
feat(audio): add goroutine cache cleanup and process reuse
pennycoders Aug 29, 2025
fd76083
feat(audio): implement dynamic Opus config updates and optimize audio…
pennycoders Sep 1, 2025
f51f6da
fix(audio): improve logging for Opus config and subprocess status
pennycoders Sep 1, 2025
dfbf924
fix(audio): improve audio initialization and process termination hand…
pennycoders Sep 1, 2025
950ca2b
fix(audio): improve process termination handling in input supervisor
pennycoders Sep 1, 2025
8110be6
feat(audio): optimize audio processing with batch processing and goro…
pennycoders Sep 3, 2025
d7b67e5
feat(audio): implement goroutine pool for task processing
pennycoders Sep 3, 2025
f9781f1
perf(audio): increase worker pool sizes and optimize worker management
pennycoders Sep 3, 2025
1b7198a
feat(audio): implement sized buffer pool and config caching
pennycoders Sep 3, 2025
2ab90e7
feat(audio): add validation cache fields to AudioConfigCache
pennycoders Sep 3, 2025
9f1dd28
feat(audio): add batch write processing and improve thread management
pennycoders Sep 3, 2025
370178e
fix(audio): remove arm architecture restriction from cgo build tags
pennycoders Sep 3, 2025
5353c1c
perf(audio): optimize opus decode-write with separate buffers
pennycoders Sep 3, 2025
a557987
perf(audio): optimize hotpath by removing redundant checks and logging
pennycoders Sep 3, 2025
a741f05
fix(audio): add proper locking for config cache updates
pennycoders Sep 3, 2025
260f62e
perf(audio): optimize audio processing paths and reduce overhead
pennycoders Sep 3, 2025
5c55da0
perf(audio): optimize metrics collection and logging overhead
pennycoders Sep 3, 2025
ca365f1
feat(audio): add subprocess pre-warming to reduce activation latency
pennycoders Sep 3, 2025
2568660
feat(metrics): add configurable metrics collection and performance op…
pennycoders Sep 3, 2025
a3702da
Cleanup: reduce PR complexity
pennycoders Sep 3, 2025
5dc0432
[WIP] Cleanup: decrease PR complexity
pennycoders Sep 3, 2025
476a245
[WIP] Cleanup: Reduce PR complexity
pennycoders Sep 3, 2025
b497444
[WIP] Cleanup: reduce PR complexity
pennycoders Sep 3, 2025
b63404c
[WIP] Cleanup: reduce PR complexity
pennycoders Sep 3, 2025
6f15fdf
perf(build): update ARM optimization flags for better compatibility
pennycoders Sep 4, 2025
cdf6731
[WIP] Performance Updates:
pennycoders Sep 4, 2025
c404596
Audio Input resiliency. Make sure the IPC client always recovers
pennycoders Sep 4, 2025
c1cc8dd
refactor(audio): remove audio input subprocess pre-warming feature
pennycoders Sep 4, 2025
4075057
[WIP] Cleanup: Reduce PR Complexity
pennycoders Sep 4, 2025
463f34e
Fix: audio output not working due to too agressive timeout
pennycoders Sep 5, 2025
1a0c7a8
refactor(audio): rename latency config fields for clarity
pennycoders Sep 5, 2025
fcd07b2
perf(audio): enhance buffer pool performance with adaptive caching
pennycoders Sep 5, 2025
9cb976a
Merge branch 'dev' into feat/audio-support
pennycoders Sep 5, 2025
d907267
Updates: merge 'dev' intu 'feat/audio-support'
pennycoders Sep 5, 2025
0a38451
feat(audio): add audio handlers and refactor session management
pennycoders Sep 5, 2025
2c2f2d4
Refactoring: Move most audio business logic into the audio package
pennycoders Sep 5, 2025
e45bec4
Fix: currently selected preset not coming from the API
pennycoders Sep 5, 2025
1584373
Fix: quality not updating in the Audio Control Popover when changed
pennycoders Sep 5, 2025
d3bbe1b
refactor(audio): standardize component logging names and cleanup
pennycoders Sep 5, 2025
8a189ba
[WIP] Updates / FIles reorg: reduce PR complexity
pennycoders Sep 5, 2025
947b4f9
[WIP] Updates: Reduce PR complexity
pennycoders Sep 5, 2025
d3e2b2d
fix(audio): correct mute state broadcast in audio control service
pennycoders Sep 5, 2025
5a0dce9
Fix: Microphone & audio on page load, PID field parsing in audio inp…
pennycoders Sep 6, 2025
b267348
feat(audio): add microphone stop endpoint and improve mute handling
pennycoders Sep 6, 2025
e27f1cf
fix(AudioControlPopover): swap mute button theme and labels for clari…
pennycoders Sep 6, 2025
7d39a27
[WIP] Improvements: improve Audio Input Activation / Deactivation pro…
pennycoders Sep 7, 2025
e3b4bb2
refactor(audio): replace mute functionality with start/stop for micro…
pennycoders Sep 7, 2025
bfdbbdc
[WIP] Simplification
pennycoders Sep 7, 2025
96a6a0f
refactor(audio): improve process management and error handling
pennycoders Sep 7, 2025
a2a87b4
refactor(audio): move channel and process management to base supervisor
pennycoders Sep 7, 2025
6890f17
refactor(audio): consolidate supervision logic into base implementation
pennycoders Sep 8, 2025
a6913bf
perf(audio): make refCount operations atomic and optimize frame pooling
pennycoders Sep 8, 2025
323d258
refactor(audio): improve memory management with atomic operations and…
pennycoders Sep 8, 2025
df58e04
feat(audio): implement zero-copy batch processing with reference coun…
pennycoders Sep 8, 2025
219c972
Merge branch 'dev' into feat/audio-support
pennycoders Sep 8, 2025
91f9dba
feat(audio): improve audio quality handling and recovery mechanisms
pennycoders Sep 8, 2025
1d1658d
refactor(audio): replace GetConfig() calls with direct Config access
pennycoders Sep 8, 2025
6f10010
refactor(audio): remove redundant config variable assignments
pennycoders Sep 8, 2025
8cf0b63
perf(audio): increase buffer sizes and timeouts for quality change bu…
pennycoders Sep 8, 2025
0893eb8
feat(audio): improve reliability with graceful degradation and async …
pennycoders Sep 8, 2025
f873b50
fix(audio): adjust congestion and CPU thresholds for single-core system
pennycoders Sep 8, 2025
89e68f5
[WIP] Change playback latency spikes on Audio Output Quality changes
pennycoders Sep 8, 2025
aa21b4b
Updates: increase congestion treshold multiplier
pennycoders Sep 8, 2025
845eade
[WIP] Fix: Audio Latency issues: move audio to a dedicated media stream
pennycoders Sep 9, 2025
0ebfc76
[WIP] Cleanup: PR SImplification
pennycoders Sep 9, 2025
00e5148
[WIP] Cleanup: reduce PR complexity
pennycoders Sep 9, 2025
f71d180
[WIP] Cleanup: reduce PR complexity
pennycoders Sep 9, 2025
2bc7e50
[WIP] Cleanup, Refactor: Reduce PR complexity, common IPC layer
pennycoders Sep 9, 2025
3c6184d
[Milestone] Improvement: In-flight audio output quality update
pennycoders Sep 9, 2025
bda92b4
[Milestone] Fix: in-flight audio input quality updates
pennycoders Sep 9, 2025
a5d1ef1
refactor(audio): optimize performance and simplify code
pennycoders Sep 9, 2025
5d4f4d8
UX Improvement: keep Mic state accross page refreshes
pennycoders Sep 9, 2025
0f2aa9a
feat(audio): improve socket handling and validation performance
pennycoders Sep 9, 2025
02acee0
Fix: Audio Output Enable / Disable
pennycoders Sep 9, 2025
eca1e6a
Cleanup: implement PR Review suggestions
pennycoders Sep 9, 2025
8cff7d6
pr-optimizations,perf(input): optimize JSON-RPC input handling with u…
pennycoders Sep 9, 2025
2a81497
Improvements: input performance
pennycoders Sep 9, 2025
d4c10ae
Updates: use uint64 since we won't have negative numbers here
pennycoders Sep 9, 2025
f48c3fe
[WIP] Updates, Cleanup: use uint64 for non-negative values
pennycoders Sep 9, 2025
e0b6e61
Updates: defer the mutex unlock
pennycoders Sep 9, 2025
eab0261
Cleanup: remove devLog with calculated param
pennycoders Sep 9, 2025
5da357b
[WIP] Cleanup: Remove hid optimization code, as it is out of scope
pennycoders Sep 9, 2025
0e76023
Improvement (Maintainability): Make all C code more manageable by mov…
pennycoders Sep 11, 2025
15baf93
Merge branch 'dev' into feat/audio-support
pennycoders Sep 11, 2025
9e43921
Fix: add accidentally removed test file back, devcontainer build proc…
pennycoders Sep 12, 2025
49d62f8
Cleanup: only set PKG_CONFIG_PATH once
pennycoders Sep 12, 2025
557aa58
Cleanup: Simplify Makefile by exporting all needed env vars at the top
pennycoders Sep 12, 2025
0eaad6b
Merge branch 'dev' into feat/audio-support
pennycoders Sep 13, 2025
b6858ab
[WIP] Cleanup / Refinement: PR Review
pennycoders Sep 14, 2025
c8630e7
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders Sep 15, 2025
e296949
Fix: indentation
pennycoders Sep 15, 2025
9d6bd99
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders Sep 15, 2025
cca1fe7
[WIP] Cleanpup: Remove audio input quality settings to reduce complexity
pennycoders Sep 15, 2025
ca38ebe
[WIP] Fix: add commented code back
pennycoders Sep 15, 2025
b040b8f
[WIP] Optimizations: Optimize audio system
pennycoders Sep 15, 2025
ebb7960
Fix: pcm_snd_wait won't work when device is busy
pennycoders Sep 15, 2025
7ab4a0e
[WIP] Simplification: PR Simplification
pennycoders Sep 15, 2025
996016b
[WIP] Cleanup: remove unnecessary complexity
pennycoders Sep 15, 2025
e894470
[WIP] Cleanup: function naming
pennycoders Sep 16, 2025
fb98c4e
[WIP] Maintainability: Add debug / trace logs to make it easy to debu…
pennycoders Sep 16, 2025
5e257b3
[WIP] Add debug logging throughout the audio system
pennycoders Sep 16, 2025
0944c88
[WIP] Maintainability Improvement: Add debug logging throughout the a…
pennycoders Sep 16, 2025
1f88dab
[WIP] Maintainability Improvement: Add debug logging throughout the a…
pennycoders Sep 16, 2025
b23cc50
[WIP] Cleanup: removed redundant code
pennycoders Sep 16, 2025
a8b58b5
[WIP] Cleanup: removed redundant code
pennycoders Sep 16, 2025
647eca4
Cleanup: removed redundant code, comments, etc.
pennycoders Sep 16, 2025
7ffb9e1
Cleanup: removed redundant code, comments, etc.
pennycoders Sep 16, 2025
8a3f1b6
Cleanup, Optimizations: Small aaudio optimizations
pennycoders Sep 16, 2025
2f7bf55
Cleanup, Optimizations: Small aaudio optimizations
pennycoders Sep 16, 2025
26e7180
Cleanup, Optimizations: Small aaudio optimizations
pennycoders Sep 16, 2025
a5fb3bf
Fix: remove misplaced const
pennycoders Sep 16, 2025
caa0a60
Cleanup: removed redundant code
pennycoders Sep 16, 2025
0027001
Cleanup: removed redundant code
pennycoders Sep 16, 2025
55bcfb5
Consistency: keep if block multi-line
pennycoders Sep 16, 2025
eca3c52
PR Review Optimization: As recommended, use ternary operators instead…
pennycoders Sep 16, 2025
140a803
perf(audio): add ARM NEON SIMD optimizations for audio processing
pennycoders Sep 16, 2025
17c3c4b
PR Cleanup: reset .golangci.yml to its original state
pennycoders Sep 19, 2025
3e24a3c
Merge branch 'dev' into feat/audio-support
pennycoders Sep 19, 2025
1dbc6c9
[WIP] Cleanup: PR cleanup
pennycoders Sep 19, 2025
432303e
[WIP] Cleanup: PR Cleanup
pennycoders Sep 19, 2025
f2edfa6
[WIP] Cleanup: PR Cleanup
pennycoders Sep 19, 2025
8b86124
[WIP] Cleanup: PR Cleanup
pennycoders Sep 19, 2025
6ee79b7
[WIP] Cleanup: PR Cleanup
pennycoders Sep 19, 2025
274854b
[WIP] Cleanup: PR Cleanup
pennycoders Sep 19, 2025
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
7 changes: 6 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
{
"name": "JetKVM",
"image": "mcr.microsoft.com/devcontainers/go:1-1.23-bookworm",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-22.04",
"runArgs": ["--platform=linux/amd64" ],
"features": {
"ghcr.io/devcontainers/features/node:1": {
// Should match what is defined in ui/package.json
"version": "22.15.0"
},
"ghcr.io/devcontainers/features/go:1": {
// Should match what is defined in go.mod
"version": "latest"
}
},
"mounts": [
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,67 @@ jobs:
uses: actions/setup-go@fa96338abe5531f6e34c5cc0bbe28c1a533d5505 # v4.2.1
with:
go-version: 1.24.4
- name: Setup build environment variables
id: build-env
run: |
# Extract versions from Makefile
ALSA_VERSION=$(grep '^ALSA_VERSION' Makefile | cut -d'=' -f2 | tr -d ' ')
OPUS_VERSION=$(grep '^OPUS_VERSION' Makefile | cut -d'=' -f2 | tr -d ' ')

# Get rv1106-system latest commit
RV1106_COMMIT=$(git ls-remote https://github.com/jetkvm/rv1106-system.git HEAD | cut -f1)

# Set environment variables
echo "ALSA_VERSION=$ALSA_VERSION" >> $GITHUB_ENV
echo "OPUS_VERSION=$OPUS_VERSION" >> $GITHUB_ENV
echo "RV1106_COMMIT=$RV1106_COMMIT" >> $GITHUB_ENV

# Set outputs for use in other steps
echo "alsa_version=$ALSA_VERSION" >> $GITHUB_OUTPUT
echo "opus_version=$OPUS_VERSION" >> $GITHUB_OUTPUT
echo "rv1106_commit=$RV1106_COMMIT" >> $GITHUB_OUTPUT

# Set resolved cache path
CACHE_PATH="$HOME/.jetkvm/audio-libs"
echo "CACHE_PATH=$CACHE_PATH" >> $GITHUB_ENV
echo "cache_path=$CACHE_PATH" >> $GITHUB_OUTPUT

echo "Extracted ALSA version: $ALSA_VERSION"
echo "Extracted Opus version: $OPUS_VERSION"
echo "Latest rv1106-system commit: $RV1106_COMMIT"
echo "Cache path: $CACHE_PATH"
- name: Restore audio dependencies cache
id: cache-audio-deps
uses: actions/cache/restore@v4
with:
path: ${{ steps.build-env.outputs.cache_path }}
key: audio-deps-${{ runner.os }}-alsa-${{ steps.build-env.outputs.alsa_version }}-opus-${{ steps.build-env.outputs.opus_version }}-rv1106-${{ steps.build-env.outputs.rv1106_commit }}
- name: Setup development environment
if: steps.cache-audio-deps.outputs.cache-hit != 'true'
run: make dev_env
env:
ALSA_VERSION: ${{ env.ALSA_VERSION }}
OPUS_VERSION: ${{ env.OPUS_VERSION }}
- name: Create empty resource directory
run: |
mkdir -p static && touch static/.gitkeep
- name: Save audio dependencies cache
if: always() && steps.cache-audio-deps.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
path: ${{ steps.build-env.outputs.cache_path }}
key: ${{ steps.cache-audio-deps.outputs.cache-primary-key }}
- name: Lint
uses: golangci/golangci-lint-action@1481404843c368bc19ca9406f87d6e0fc97bdcfd # v7.0.0
with:
args: --verbose
version: v2.0.2
env:
CGO_ENABLED: 1
GOOS: linux
GOARCH: arm
GOARM: 7
CC: ${{ steps.build-env.outputs.cache_path }}/../rv1106-system/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc
PKG_CONFIG_PATH: ${{ steps.build-env.outputs.cache_path }}/alsa-lib-${{ steps.build-env.outputs.alsa_version }}/utils:${{ steps.build-env.outputs.cache_path }}/opus-${{ steps.build-env.outputs.opus_version }}
CGO_CFLAGS: "-O3 -mfpu=neon -mtune=cortex-a7 -mfloat-abi=hard -ftree-vectorize -ffast-math -funroll-loops -mvectorize-with-neon-quad -marm -D__ARM_NEON -I${{ steps.build-env.outputs.cache_path }}/alsa-lib-${{ steps.build-env.outputs.alsa_version }}/include -I${{ steps.build-env.outputs.cache_path }}/opus-${{ steps.build-env.outputs.opus_version }}/include -I${{ steps.build-env.outputs.cache_path }}/opus-${{ steps.build-env.outputs.opus_version }}/celt"
CGO_LDFLAGS: "-L${{ steps.build-env.outputs.cache_path }}/alsa-lib-${{ steps.build-env.outputs.alsa_version }}/src/.libs -lasound -L${{ steps.build-env.outputs.cache_path }}/opus-${{ steps.build-env.outputs.opus_version }}/.libs -lopus -lm -ldl -static"
10 changes: 9 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
bin/*
static/*
.vscode/
tmp/
.devcontainer/devcontainer-lock.json
.idea
.DS_Store
*.log
*.tmp
*.code-workspace

device-tests.tar.gz
device-tests.tar.gz
CLAUDE.md
.claude/
3 changes: 3 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
version: "2"
run:
build-tags:
- nolint
linters:
enable:
- forbidigo
Expand Down
Loading