JS: vgm_sensor tutorial

This commit is contained in:
Derek Jamison
2024-04-12 15:00:38 -05:00
parent 6b1cc1013e
commit c70c4fb65e
12 changed files with 1290 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
({
_acquired: false,
_acquire: ffi("int furi_hal_speaker_acquire(int)"),
_release: ffi("void furi_hal_speaker_release(void)"),
start: ffi("void furi_hal_speaker_start(float, float)"),
stop: ffi("void furi_hal_speaker_stop(void)"),
acquire: function (timeout) {
if (!this._acquired) {
this._acquired = this._acquire(timeout);
}
return this._acquired;
},
acquired: function () {
return this._acquired;
},
release: function () {
if (this._acquired) {
this._release();
this._acquired = false;
}
},
play: function (frequency, volume, duration) {
let already_acquired = this.acquired();
if (!already_acquired) {
this.acquire(1000);
};
if (this.acquired()) {
this.start(frequency, volume);
delay(duration);
this.stop();
}
if (!already_acquired) {
this.release();
}
},
}
)