This commit is contained in:
68
c/wiiusej/wiiusej_Speaker.c
Normal file
68
c/wiiusej/wiiusej_Speaker.c
Normal file
@@ -0,0 +1,68 @@
|
||||
#include "wiiusej_WiiUseApi.h"
|
||||
#include "speaker.h"
|
||||
#include "wiiuse.h"
|
||||
|
||||
static wiimote** wiimotes;
|
||||
static int nbMaxWiimotes;
|
||||
|
||||
/*
|
||||
void test(struct wiimote_t* wm) {
|
||||
int i;
|
||||
byte data[20] = {
|
||||
0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,
|
||||
0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3,0xC3};
|
||||
wiiuse_speaker_activate(wm);
|
||||
for (i = 0; i < 50; ++i) {
|
||||
wiiuse_speaker_data(wm, data);
|
||||
}
|
||||
wiiuse_speaker_deactivate(wm);
|
||||
}*/
|
||||
|
||||
JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_activateSpeaker
|
||||
(JNIEnv *env, jobject obj, jint id) {
|
||||
wiiuse_speaker_activate(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id));
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_deactivateSpeaker
|
||||
(JNIEnv *env, jobject obj, jint id) {
|
||||
wiiuse_speaker_deactivate(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id));
|
||||
}
|
||||
/*
|
||||
void testen(struct wiimote_t* wm, unsigned short freq) {
|
||||
if (freq > 0x0000) {
|
||||
cfg[2] = freq & 0x00ff;
|
||||
cfg[3] = (freq & 0xff00) >> 8;
|
||||
}
|
||||
printf("unaangepast %d\n", freq);
|
||||
printf("speaker 0x%02x%02x\n", cfg[2], cfg[3]);
|
||||
fflush(stdout);
|
||||
wiiuse_write_data(wm, WM_REG_SPEAKER, cfg, 9);
|
||||
}*/
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_setSpeakerFrequency
|
||||
(JNIEnv *env, jobject obj, jint id, jint freq) {
|
||||
wiiuse_speaker_frequency(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), (unsigned short) freq);
|
||||
//short a = ((short) freq) & 0xffff;
|
||||
//printf("jni %d %d\n", freq, a);
|
||||
//fflush(stdout);
|
||||
//testen(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), (unsigned short) freq);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_setSpeakerVolume
|
||||
(JNIEnv *env, jobject obj, jint id, jshort vol) {
|
||||
wiiuse_speaker_frequency(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), vol);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL Java_wiiusej_WiiUseApi_streamSpeakerData
|
||||
(JNIEnv *env, jobject obj, jint id, jshortArray sArray) {
|
||||
int i = 0;
|
||||
jshort *jShorts = (*env)->GetShortArrayElements(env, sArray, JNI_FALSE);
|
||||
byte data[sizeof(jShorts)];
|
||||
for (i = 0; i < sizeof(jShorts); ++i) {
|
||||
data[i] = (byte) jShorts[i];
|
||||
}
|
||||
wiiuse_speaker_data(wiiuse_get_by_id(wiimotes, nbMaxWiimotes, id), data);
|
||||
(*env)->ReleaseShortArrayElements(env, sArray, jShorts, JNI_FALSE);
|
||||
}
|
||||
Reference in New Issue
Block a user