Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Format JNI bridge and expo lib null checks

Expand single-line let-else checks into block form and reflow long
macro invocations and imports for readability in crates/expo
(jni_bridge.rs
and lib.rs)

+86 -41
+64 -24
crates/expo/src/jni_bridge.rs
··· 79 79 _cls: JClass, 80 80 arg: JString, 81 81 ) -> jint { 82 - let Some(c) = to_cstring(&mut env, &arg) else { return -1 }; 82 + let Some(c) = to_cstring(&mut env, &arg) else { 83 + return -1; 84 + }; 83 85 crate::$rust_fn(c.as_ptr()) as jint 84 86 } 85 87 }; ··· 108 110 macro_rules! bridge_unit_int { 109 111 ($jni_name:ident, $rust_fn:ident) => { 110 112 #[no_mangle] 111 - pub unsafe extern "system" fn $jni_name( 112 - _env: JNIEnv, 113 - _cls: JClass, 114 - arg: jint, 115 - ) -> jint { 113 + pub unsafe extern "system" fn $jni_name(_env: JNIEnv, _cls: JClass, arg: jint) -> jint { 116 114 crate::$rust_fn(arg as c_int) as jint 117 115 } 118 116 }; ··· 143 141 Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1set_1http_1url, 144 142 rb_set_http_url 145 143 ); 146 - bridge_unit!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1ping, rb_ping); 144 + bridge_unit!( 145 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1ping, 146 + rb_ping 147 + ); 147 148 148 149 bridge_json!( 149 150 Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1get_1devices_1json, ··· 160 161 161 162 // ── Playback (no args) ────────────────────────────────────────────────────── 162 163 163 - bridge_unit!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1play, rb_play); 164 - bridge_unit!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1pause, rb_pause); 164 + bridge_unit!( 165 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1play, 166 + rb_play 167 + ); 168 + bridge_unit!( 169 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1pause, 170 + rb_pause 171 + ); 165 172 bridge_unit!( 166 173 Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1play_1pause, 167 174 rb_play_pause 168 175 ); 169 - bridge_unit!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1next, rb_next); 170 - bridge_unit!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1prev, rb_prev); 176 + bridge_unit!( 177 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1next, 178 + rb_next 179 + ); 180 + bridge_unit!( 181 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1prev, 182 + rb_prev 183 + ); 171 184 bridge_unit!( 172 185 Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1resume_1track, 173 186 rb_resume_track ··· 190 203 191 204 // ── Seek ──────────────────────────────────────────────────────────────────── 192 205 193 - bridge_unit_int!(Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1seek, rb_seek); 206 + bridge_unit_int!( 207 + Java_expo_modules_rockboxrpc_RockboxRpcModule_rb_1seek, 208 + rb_seek 209 + ); 194 210 195 211 // ── Playback (string + int / int / int) ───────────────────────────────────── 196 212 ··· 201 217 id: JString, 202 218 shuffle: jint, 203 219 ) -> jint { 204 - let Some(c) = to_cstring(&mut env, &id) else { return -1 }; 220 + let Some(c) = to_cstring(&mut env, &id) else { 221 + return -1; 222 + }; 205 223 crate::rb_play_album(c.as_ptr(), shuffle as c_int) as jint 206 224 } 207 225 ··· 212 230 id: JString, 213 231 shuffle: jint, 214 232 ) -> jint { 215 - let Some(c) = to_cstring(&mut env, &id) else { return -1 }; 233 + let Some(c) = to_cstring(&mut env, &id) else { 234 + return -1; 235 + }; 216 236 crate::rb_play_artist_tracks(c.as_ptr(), shuffle as c_int) as jint 217 237 } 218 238 ··· 224 244 shuffle: jint, 225 245 position: jint, 226 246 ) -> jint { 227 - let Some(c) = to_cstring(&mut env, &path) else { return -1 }; 247 + let Some(c) = to_cstring(&mut env, &path) else { 248 + return -1; 249 + }; 228 250 crate::rb_play_directory(c.as_ptr(), shuffle as c_int, position as c_int) as jint 229 251 } 230 252 ··· 259 281 position: jint, 260 282 shuffle: jint, 261 283 ) -> jint { 262 - let Some(c) = to_cstring(&mut env, &paths_json) else { return -1 }; 284 + let Some(c) = to_cstring(&mut env, &paths_json) else { 285 + return -1; 286 + }; 263 287 crate::rb_insert_tracks(c.as_ptr(), position as c_int, shuffle as c_int) as jint 264 288 } 265 289 ··· 270 294 path: JString, 271 295 position: jint, 272 296 ) -> jint { 273 - let Some(c) = to_cstring(&mut env, &path) else { return -1 }; 297 + let Some(c) = to_cstring(&mut env, &path) else { 298 + return -1; 299 + }; 274 300 crate::rb_insert_directory(c.as_ptr(), position as c_int) as jint 275 301 } 276 302 ··· 389 415 description: JString, 390 416 ids_json: JString, 391 417 ) -> jint { 392 - let Some(name_c) = to_cstring(&mut env, &name) else { return -1 }; 418 + let Some(name_c) = to_cstring(&mut env, &name) else { 419 + return -1; 420 + }; 393 421 let desc_c = to_cstring(&mut env, &description); 394 422 let ids_c = to_cstring(&mut env, &ids_json); 395 423 let desc_ptr = desc_c.as_ref().map(|c| c.as_ptr()).unwrap_or(ptr::null()); ··· 405 433 name: JString, 406 434 description: JString, 407 435 ) -> jint { 408 - let Some(id_c) = to_cstring(&mut env, &id) else { return -1 }; 409 - let Some(name_c) = to_cstring(&mut env, &name) else { return -1 }; 436 + let Some(id_c) = to_cstring(&mut env, &id) else { 437 + return -1; 438 + }; 439 + let Some(name_c) = to_cstring(&mut env, &name) else { 440 + return -1; 441 + }; 410 442 let desc_c = to_cstring(&mut env, &description); 411 443 let desc_ptr = desc_c.as_ref().map(|c| c.as_ptr()).unwrap_or(ptr::null()); 412 444 crate::rb_update_saved_playlist(id_c.as_ptr(), name_c.as_ptr(), desc_ptr) as jint ··· 424 456 pid: JString, 425 457 tid: JString, 426 458 ) -> jint { 427 - let Some(p) = to_cstring(&mut env, &pid) else { return -1 }; 428 - let Some(t) = to_cstring(&mut env, &tid) else { return -1 }; 459 + let Some(p) = to_cstring(&mut env, &pid) else { 460 + return -1; 461 + }; 462 + let Some(t) = to_cstring(&mut env, &tid) else { 463 + return -1; 464 + }; 429 465 crate::rb_add_track_to_playlist(p.as_ptr(), t.as_ptr()) as jint 430 466 } 431 467 ··· 436 472 pid: JString, 437 473 tid: JString, 438 474 ) -> jint { 439 - let Some(p) = to_cstring(&mut env, &pid) else { return -1 }; 440 - let Some(t) = to_cstring(&mut env, &tid) else { return -1 }; 475 + let Some(p) = to_cstring(&mut env, &pid) else { 476 + return -1; 477 + }; 478 + let Some(t) = to_cstring(&mut env, &tid) else { 479 + return -1; 480 + }; 441 481 crate::rb_remove_track_from_playlist(p.as_ptr(), t.as_ptr()) as jint 442 482 } 443 483
+22 -17
crates/expo/src/lib.rs
··· 47 47 sound_service_client::SoundServiceClient, system_service_client::SystemServiceClient, 48 48 AddTracksToSavedPlaylistRequest, AdjustVolumeRequest, ConnectBluetoothDeviceRequest, 49 49 CreateSavedPlaylistRequest, CurrentTrackRequest, DeleteSavedPlaylistRequest, 50 - DisconnectBluetoothDeviceRequest, FastForwardRewindRequest, GetAlbumRequest, 51 - GetAlbumsRequest, GetArtistRequest, GetArtistsRequest, GetBluetoothDevicesRequest, 52 - GetCurrentRequest, GetGlobalSettingsRequest, GetGlobalStatusRequest, 53 - GetLikedAlbumsRequest, GetLikedTracksRequest, GetSavedPlaylistTracksRequest, 54 - GetSavedPlaylistsRequest, GetSmartPlaylistTracksRequest, GetSmartPlaylistsRequest, 55 - GetTracksRequest, InsertDirectoryRequest, InsertTracksRequest, LikeTrackRequest, NextRequest, 56 - PauseRequest, PlayAlbumRequest, PlayAllTracksRequest, PlayArtistTracksRequest, 57 - PlayDirectoryRequest, PlayOrPauseRequest, PlaySavedPlaylistRequest, PlaySmartPlaylistRequest, 58 - PlayTrackRequest, PlaylistResumeRequest, PreviousRequest, RemoveTrackFromSavedPlaylistRequest, 59 - RemoveTracksRequest, ResumeRequest, ResumeTrackRequest, SaveSettingsRequest, 60 - ScanBluetoothRequest, SearchRequest, 61 - ShufflePlaylistRequest, SoundCurrentRequest, StartRequest, StatusRequest, 62 - StreamCurrentTrackRequest, StreamLibraryRequest, StreamPlaylistRequest, StreamStatusRequest, 63 - TreeGetEntriesRequest, UnlikeTrackRequest, UpdateSavedPlaylistRequest, 50 + DisconnectBluetoothDeviceRequest, FastForwardRewindRequest, GetAlbumRequest, GetAlbumsRequest, 51 + GetArtistRequest, GetArtistsRequest, GetBluetoothDevicesRequest, GetCurrentRequest, 52 + GetGlobalSettingsRequest, GetGlobalStatusRequest, GetLikedAlbumsRequest, GetLikedTracksRequest, 53 + GetSavedPlaylistTracksRequest, GetSavedPlaylistsRequest, GetSmartPlaylistTracksRequest, 54 + GetSmartPlaylistsRequest, GetTracksRequest, InsertDirectoryRequest, InsertTracksRequest, 55 + LikeTrackRequest, NextRequest, PauseRequest, PlayAlbumRequest, PlayAllTracksRequest, 56 + PlayArtistTracksRequest, PlayDirectoryRequest, PlayOrPauseRequest, PlaySavedPlaylistRequest, 57 + PlaySmartPlaylistRequest, PlayTrackRequest, PlaylistResumeRequest, PreviousRequest, 58 + RemoveTrackFromSavedPlaylistRequest, RemoveTracksRequest, ResumeRequest, ResumeTrackRequest, 59 + SaveSettingsRequest, ScanBluetoothRequest, SearchRequest, ShufflePlaylistRequest, 60 + SoundCurrentRequest, StartRequest, StatusRequest, StreamCurrentTrackRequest, 61 + StreamLibraryRequest, StreamPlaylistRequest, StreamStatusRequest, TreeGetEntriesRequest, 62 + UnlikeTrackRequest, UpdateSavedPlaylistRequest, 64 63 }; 65 64 66 65 // ── Globals ────────────────────────────────────────────────────────────────── ··· 736 735 /// `id_ptr` must be a valid NUL-terminated UTF-8 string. 737 736 #[no_mangle] 738 737 pub unsafe extern "C" fn rb_get_artist_json(id_ptr: *const c_char) -> *mut c_char { 739 - let Some(id) = cstr_to_str(id_ptr) else { return err_string("missing id"); }; 738 + let Some(id) = cstr_to_str(id_ptr) else { 739 + return err_string("missing id"); 740 + }; 740 741 let id = id.to_string(); 741 742 let res = RT.block_on(async { 742 743 let mut c = LibraryServiceClient::connect(url()) ··· 1181 1182 /// `id_ptr` must be a valid NUL-terminated UTF-8 string. 1182 1183 #[no_mangle] 1183 1184 pub unsafe extern "C" fn rb_connect_device(id_ptr: *const c_char) -> c_int { 1184 - let Some(id) = cstr_to_str(id_ptr) else { return -1; }; 1185 + let Some(id) = cstr_to_str(id_ptr) else { 1186 + return -1; 1187 + }; 1185 1188 let id = id.to_string(); 1186 1189 let res: Result<(), String> = RT.block_on(async { 1187 1190 let url = format!("{}/devices/{id}/connect", http_url()); ··· 1203 1206 /// `id_ptr` must be a valid NUL-terminated UTF-8 string. 1204 1207 #[no_mangle] 1205 1208 pub unsafe extern "C" fn rb_disconnect_device(id_ptr: *const c_char) -> c_int { 1206 - let Some(id) = cstr_to_str(id_ptr) else { return -1; }; 1209 + let Some(id) = cstr_to_str(id_ptr) else { 1210 + return -1; 1211 + }; 1207 1212 let id = id.to_string(); 1208 1213 let res: Result<(), String> = RT.block_on(async { 1209 1214 let url = format!("{}/devices/{id}/disconnect", http_url());