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.

Merge pull request #3 from tsirysndr/zig-install-codecs-rocks

zig: install rocks and codecs using zig

authored by

Tsiry Sandratraina and committed by
GitHub
00ee970f 40d706f0

+276 -155
+2 -2
README.md
··· 15 15 Run the following commands to build the project: 16 16 17 17 ```sh 18 - sudo apt-get install libusb-dev libsdl1.2-dev 18 + sudo apt-get install libusb-dev libsdl1.2-dev libfreetype6-dev 19 19 . ./bin/activate-hermit 20 20 mkdir -p build && cd build 21 - ../tools/configure --target=sdlapp --type=N --lcdwidth=320 --lcdheight=240 21 + ../tools/configure --target=sdlapp --type=N --lcdwidth=320 --lcdheight=240 --prefix=$HOME/.local 22 22 make zig 23 23 ```
+1
apps/keymaps/keymap-sdl.c
··· 52 52 { ACTION_STD_OK, BUTTON_RIGHT|BUTTON_REL, BUTTON_RIGHT }, 53 53 { ACTION_STD_CANCEL, BUTTON_LEFT, BUTTON_NONE }, 54 54 { ACTION_STD_CANCEL, BUTTON_LEFT|BUTTON_REL, BUTTON_LEFT }, 55 + { ACTION_STD_CANCEL, BUTTON_TOPMIDDLE|BUTTON_BOTTOMMIDDLE, BUTTON_NONE }, 55 56 56 57 { ACTION_STD_CONTEXT, BUTTON_MENU, BUTTON_NONE }, 57 58
+10 -10
apps/plugins/brickmania.c
··· 366 366 #define QUIT BUTTON_POWER 367 367 368 368 #elif CONFIG_KEYPAD == SDL_PAD 369 - #define QUIT BUTTON_BACK 370 - #define LEFT BUTTON_LEFT 371 - #define RIGHT BUTTON_RIGHT 372 - #define SELECT BUTTON_SELECT 373 - #define UP BUTTON_UP 374 - #define DOWN BUTTON_DOWN 369 + #define QUIT BUTTON_TOPLEFT 370 + #define LEFT BUTTON_MIDLEFT 371 + #define RIGHT BUTTON_MIDRIGHT 372 + #define SELECT BUTTON_CENTER 373 + #define UP BUTTON_TOPMIDDLE 374 + #define DOWN BUTTON_BOTTOMMIDDLE 375 375 376 376 #else 377 377 #error No keymap defined! ··· 388 388 #else 389 389 #define RIGHT BUTTON_BOTTOMRIGHT 390 390 #endif 391 - #ifdef SELECT 392 - #define ALTSELECT BUTTON_CENTER 393 - #else 391 + // #ifdef SELECT 392 + // #define ALTSELECT BUTTON_CENTER 393 + // #else 394 394 #define SELECT BUTTON_CENTER 395 - #endif 395 + //#endif 396 396 #ifndef UP 397 397 #define UP BUTTON_TOPMIDDLE 398 398 #endif
+1 -8
apps/plugins/calculator.c
··· 537 537 #define CALCULATOR_QUIT BUTTON_POWER 538 538 539 539 #elif CONFIG_KEYPAD == SDL_PAD 540 - #define CALCULATOR_LEFT BUTTON_LEFT 541 - #define CALCULATOR_RIGHT BUTTON_RIGHT 542 - #define CALCULATOR_UP BUTTON_UP 543 - #define CALCULATOR_DOWN BUTTON_DOWN 544 - #define CALCULATOR_QUIT (BUTTON_UP | BUTTON_DOWN) 545 - #define CALCULATOR_INPUT BUTTON_SELECT 546 - #define CALCULATOR_CALC BUTTON_MENU 547 - #define CALCULATOR_CLEAR BUTTON_BACK 540 + /* use touchscreen */ 548 541 549 542 #else 550 543 #error No keymap defined!
+4 -8
apps/plugins/chessclock.c
··· 399 399 #define CHC_QUIT BUTTON_POWER 400 400 401 401 #elif CONFIG_KEYPAD == SDL_PAD 402 - #define CHC_QUIT BUTTON_BACK 403 - #define CHC_STARTSTOP BUTTON_SELECT 404 - #define CHC_RESET BUTTON_LEFT 405 - #define CHC_MENU BUTTON_MENU 406 - #define CHC_SETTINGS_INC BUTTON_UP 407 - #define CHC_SETTINGS_DEC BUTTON_DOWN 408 - #define CHC_SETTINGS_OK BUTTON_SELECT 409 - #define CHC_SETTINGS_CANCEL BUTTON_BACK 402 + /* use touchscreen */ 410 403 411 404 #else 412 405 #error No keymap defined! 413 406 #endif 414 407 415 408 #ifdef HAVE_TOUCHSCREEN 409 + #ifndef CHC_QUIT 410 + #define CHC_QUIT (BUTTON_TOPLEFT | BUTTON_CENTER) 411 + #endif 416 412 #ifndef CHC_SETTINGS_OK 417 413 #define CHC_SETTINGS_OK BUTTON_CENTER 418 414 #endif
+1 -6
apps/plugins/chip8.c
··· 1292 1292 #define CHIP8_KEY8 BUTTON_BACK 1293 1293 1294 1294 #elif CONFIG_KEYPAD == SDL_PAD 1295 - #define CHIP8_OFF BUTTON_DOWN 1296 - #define CHIP8_KEY2 BUTTON_MENU 1297 - #define CHIP8_KEY4 BUTTON_LEFT 1298 - #define CHIP8_KEY5 BUTTON_SELECT 1299 - #define CHIP8_KEY6 BUTTON_RIGHT 1300 - #define CHIP8_KEY8 BUTTON_BACK 1295 + /* use touchscreen */ 1301 1296 1302 1297 1303 1298 #elif CONFIG_KEYPAD == SHANLING_Q1_PAD
+3 -2
apps/plugins/chopper.c
··· 203 203 #define ACTIONTEXT "PLAY" 204 204 205 205 #elif CONFIG_KEYPAD == SDL_PAD 206 - #define QUIT BUTTON_BACK 207 - #define ACTION BUTTON_SELECT 206 + #define QUIT BUTTON_TOPLEFT 207 + #define ACTION BUTTON_TOPMIDDLE 208 + #define ACTION2 BUTTON_BOTTOMMIDDLE 208 209 #define ACTIONTEXT "SELECT" 209 210 210 211 #elif !defined(HAVE_TOUCHSCREEN)
+1 -8
apps/plugins/cube.c
··· 407 407 408 408 409 409 #elif CONFIG_KEYPAD == SDL_PAD 410 - #define CUBE_QUIT BUTTON_BACK | BUTTON_LEFT 411 - #define CUBE_NEXT BUTTON_RIGHT 412 - #define CUBE_PREV BUTTON_LEFT 413 - #define CUBE_INC BUTTON_UP 414 - #define CUBE_DEC BUTTON_DOWN 415 - #define CUBE_MODE BUTTON_MENU 416 - #define CUBE_PAUSE BUTTON_SELECT 417 - #define CUBE_HIGHSPEED BUTTON_BACK 410 + /* use touchscreen */ 418 411 419 412 #else 420 413 #error No keymap defined!
+1 -8
apps/plugins/jewels.c
··· 381 381 /* use touchscreen */ 382 382 383 383 #elif CONFIG_KEYPAD == SDL_PAD 384 - #define JEWELS_UP BUTTON_UP 385 - #define JEWELS_DOWN BUTTON_DOWN 386 - #define JEWELS_LEFT BUTTON_LEFT 387 - #define JEWELS_RIGHT BUTTON_RIGHT 388 - #define JEWELS_SELECT BUTTON_SELECT 389 - #define JEWELS_CANCEL BUTTON_BACK 390 - #define HK_SELECT "SELECT" 391 - #define HK_CANCEL "BACK" 384 + /* use touchscreen */ 392 385 393 386 #else 394 387 #error No keymap defined!
+1 -11
apps/plugins/minesweeper.c
··· 447 447 /* use touchscreen */ 448 448 449 449 #elif CONFIG_KEYPAD == SDL_PAD 450 - # define MINESWP_LEFT BUTTON_LEFT 451 - # define MINESWP_RIGHT BUTTON_RIGHT 452 - # define MINESWP_UP BUTTON_UP 453 - # define MINESWP_DOWN BUTTON_DOWN 454 - # define MINESWP_NEXT BUTTON_SCROLL_FWD 455 - # define MINESWP_PREV BUTTON_SCROLL_BACK 456 - # define MINESWP_QUIT (BUTTON_SELECT | BUTTON_MENU) 457 - # define MINESWP_TOGGLE_PRE BUTTON_SELECT 458 - # define MINESWP_TOGGLE (BUTTON_SELECT | BUTTON_LEFT) 459 - # define MINESWP_DISCOVER (BUTTON_SELECT | BUTTON_RIGHT) 460 - # define MINESWP_INFO (BUTTON_SELECT | BUTTON_UP) 450 + /* use touchscreen */ 461 451 462 452 #else 463 453 #error No keymap defined!
+4 -4
apps/plugins/mp3_encoder.c
··· 2584 2584 /* use touchscreen */ 2585 2585 2586 2586 #elif CONFIG_KEYPAD == SDL_PAD 2587 - #define MP3ENC_PREV BUTTON_LEFT 2588 - #define MP3ENC_NEXT BUTTON_RIGHT 2589 - #define MP3ENC_DONE BUTTON_BACK 2590 - #define MP3ENC_SELECT BUTTON_SELECT 2587 + #define MP3ENC_PREV BUTTON_MIDLEFT 2588 + #define MP3ENC_NEXT BUTTON_MIDRIGHT 2589 + #define MP3ENC_DONE BUTTON_TOPLEFT 2590 + #define MP3ENC_SELECT BUTTON_CENTER 2591 2591 2592 2592 #else 2593 2593 #error No keymap defined!
+1 -7
apps/plugins/oscilloscope.c
··· 554 554 /* use touchscreen */ 555 555 556 556 #elif CONFIG_KEYPAD == SDL_PAD 557 - #define OSCILLOSCOPE_QUIT BUTTON_BACK 558 - #define OSCILLOSCOPE_ADVMODE BUTTON_MENU 559 - #define OSCILLOSCOPE_PAUSE BUTTON_SELECT 560 - #define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT 561 - #define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT 562 - #define OSCILLOSCOPE_VOL_UP BUTTON_UP 563 - #define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN 557 + /* use touchscreen */ 564 558 565 559 #else 566 560 #error No keymap defined!
+1 -9
apps/plugins/pegbox.c
··· 715 715 /* use touchscreen */ 716 716 717 717 #elif CONFIG_KEYPAD == SDL_PAD 718 - #define PEGBOX_SELECT BUTTON_SELECT 719 - #define PEGBOX_QUIT BUTTON_BACK 720 - #define PEGBOX_RESTART (BUTTON_SELECT | BUTTON_MENU) 721 - #define PEGBOX_LVL_UP (BUTTON_UP | BUTTON_SELECT) 722 - #define PEGBOX_LVL_DOWN (BUTTON_DOWN | BUTTON_SELECT) 723 - #define PEGBOX_UP BUTTON_UP 724 - #define PEGBOX_DOWN BUTTON_DOWN 725 - #define PEGBOX_RIGHT BUTTON_RIGHT 726 - #define PEGBOX_LEFT BUTTON_LEFT 718 + /* use touchscreen */ 727 719 728 720 #else 729 721 #error "Unsupported keymap!"
+6 -6
apps/plugins/pong.c
··· 329 329 /* use touchscreen */ 330 330 331 331 #elif CONFIG_KEYPAD == SDL_PAD 332 - #define PONG_QUIT BUTTON_BACK 333 - #define PONG_PAUSE BUTTON_SELECT 334 - #define PONG_LEFT_UP BUTTON_UP 335 - #define PONG_LEFT_DOWN BUTTON_DOWN 336 - #define PONG_RIGHT_UP BUTTON_RIGHT 337 - #define PONG_RIGHT_DOWN BUTTON_LEFT 332 + #define PONG_QUIT BUTTON_TOPLEFT 333 + #define PONG_PAUSE BUTTON_CENTER 334 + #define PONG_LEFT_UP BUTTON_TOPMIDDLE 335 + #define PONG_LEFT_DOWN BUTTON_BOTTOMMIDDLE 336 + #define PONG_RIGHT_UP BUTTON_MIDRIGHT 337 + #define PONG_RIGHT_DOWN BUTTON_MIDLEFT 338 338 339 339 #else 340 340 #error No keymap defined!
+1 -8
apps/plugins/rockblox.c
··· 470 470 /* use touchscreen */ 471 471 472 472 #elif CONFIG_KEYPAD == SDL_PAD 473 - #define ROCKBLOX_OFF BUTTON_MENU 474 - #define ROCKBLOX_ROTATE_CCW BUTTON_UP 475 - #define ROCKBLOX_ROTATE_CW BUTTON_DOWN 476 - #define ROCKBLOX_DOWN BUTTON_SELECT 477 - #define ROCKBLOX_LEFT BUTTON_LEFT 478 - #define ROCKBLOX_RIGHT BUTTON_RIGHT 479 - #define ROCKBLOX_DROP (BUTTON_MENU | BUTTON_DOWN) 480 - #define ROCKBLOX_RESTART BUTTON_BACK 473 + /* use SDL keys */ 481 474 482 475 #else 483 476 #error No keymap defined!
+1 -7
apps/plugins/sliding_puzzle.c
··· 361 361 /* use touchscreen */ 362 362 363 363 #elif CONFIG_KEYPAD == SDL_PAD 364 - #define PUZZLE_QUIT BUTTON_BACK 365 - #define PUZZLE_LEFT BUTTON_LEFT 366 - #define PUZZLE_RIGHT BUTTON_RIGHT 367 - #define PUZZLE_UP BUTTON_UP 368 - #define PUZZLE_DOWN BUTTON_DOWN 369 - #define PUZZLE_SHUFFLE BUTTON_SELECT 370 - #define PUZZLE_PICTURE BUTTON_MENU 364 + /* use touchscreen */ 371 365 372 366 #else 373 367 #error No keymap defined!
+1 -7
apps/plugins/snake2.c
··· 459 459 #define SNAKE2_PLAYPAUSE_TEXT "PLAY" 460 460 461 461 #elif CONFIG_KEYPAD == SDL_PAD 462 - #define SNAKE2_LEFT BUTTON_LEFT 463 - #define SNAKE2_RIGHT BUTTON_RIGHT 464 - #define SNAKE2_UP BUTTON_UP 465 - #define SNAKE2_DOWN BUTTON_DOWN 466 - #define SNAKE2_QUIT BUTTON_BACK 467 - #define SNAKE2_PLAYPAUSE BUTTON_SELECT 468 - #define SNAKE2_PLAYPAUSE_TEXT "PLAY" 462 + /* use touchscreen */ 469 463 470 464 #elif CONFIG_KEYPAD == SHANLING_Q1_PAD 471 465 /* use touchscreen */
+1 -6
apps/plugins/sokoban.c
··· 700 700 /* use touchscreen */ 701 701 702 702 #elif CONFIG_KEYPAD == SDL_PAD 703 - #define SOKOBAN_LEFT BUTTON_LEFT 704 - #define SOKOBAN_RIGHT BUTTON_RIGHT 705 - #define SOKOBAN_UP BUTTON_UP 706 - #define SOKOBAN_DOWN BUTTON_DOWN 707 - #define BUTTON_SAVE BUTTON_SELECT 708 - #define BUTTON_SAVE_NAME "SELECT" 703 + /* use touchscreen */ 709 704 710 705 #else 711 706 #error No keymap defined!
+1 -8
apps/plugins/spacerocks.c
··· 376 376 /* use touchscreen */ 377 377 378 378 #elif CONFIG_KEYPAD == SDL_PAD 379 - #define AST_PAUSE BUTTON_MENU 380 - #define AST_QUIT (BUTTON_BACK | BUTTON_LEFT) 381 - #define AST_THRUST BUTTON_UP 382 - #define AST_HYPERSPACE BUTTON_BACK 383 - #define AST_LEFT BUTTON_LEFT 384 - #define AST_RIGHT BUTTON_RIGHT 385 - #define AST_FIRE BUTTON_SELECT 386 - 379 + /* use touchscreen */ 387 380 388 381 #else 389 382 #error No keymap defined!
+5 -6
apps/plugins/star.c
··· 674 674 675 675 676 676 #elif CONFIG_KEYPAD == SDL_PAD 677 - #define STAR_QUIT BUTTON_BACK 678 - #define STAR_QUIT_NAME "POWER" 677 + /* use touch screen */ 679 678 680 679 #else 681 680 #error No keymap defined! 682 681 #endif 683 682 684 683 #ifdef HAVE_TOUCHSCREEN 685 - //#ifndef STAR_QUIT 686 - //#define STAR_QUIT BUTTON_TOPLEFT 687 - //#define STAR_QUIT_NAME "TOPLEFT" 688 - //#endif 684 + #ifndef STAR_QUIT 685 + #define STAR_QUIT BUTTON_TOPLEFT | BUTTON_CENTER 686 + #define STAR_QUIT_NAME "TOPLEFT" 687 + #endif 689 688 #ifndef STAR_LEFT 690 689 #define STAR_LEFT BUTTON_MIDLEFT 691 690 #endif
+1 -2
apps/plugins/vu_meter.c
··· 458 458 /* use touchscreen */ 459 459 460 460 #elif CONFIG_KEYPAD == SDL_PAD 461 - #define VUMETER_QUIT BUTTON_BACK 462 - #define LABEL_QUIT "BACK" 461 + /* use touchscreen */ 463 462 464 463 #else 465 464 #error No keymap defined!
+6 -6
apps/plugins/xobox.c
··· 352 352 #define PAUSE BUTTON_PLAY 353 353 354 354 #elif CONFIG_KEYPAD == SDL_PAD 355 - #define QUIT BUTTON_BACK 356 - #define LEFT BUTTON_LEFT 357 - #define RIGHT BUTTON_RIGHT 358 - #define UP BUTTON_UP 359 - #define DOWN BUTTON_DOWN 360 - #define PAUSE BUTTON_SELECT 355 + #define QUIT BUTTON_TOPLEFT 356 + #define LEFT BUTTON_MIDLEFT 357 + #define RIGHT BUTTON_MIDRIGHT 358 + #define UP BUTTON_TOPMIDDLE 359 + #define DOWN BUTTON_BOTTOMMIDDLE 360 + #define PAUSE BUTTON_CENTER 361 361 362 362 #elif CONFIG_KEYPAD == SHANLING_Q1_PAD 363 363 /* use touchscreen */
+209 -16
build.zig
··· 13 13 is_mikmod_plugin: bool = false, 14 14 }; 15 15 16 + pub const APPS: []const u8 = "/apps"; 17 + pub const DEMOS: []const u8 = "/demos"; 18 + pub const GAMES: []const u8 = "/games"; 19 + pub const VIEWERS: []const u8 = "/viewers"; 20 + pub const CODECS: []const u8 = "/codecs"; 21 + 16 22 // Although this function looks imperative, note that its job is to 17 23 // declaratively construct a build graph that will be executed by an external 18 24 // runner. ··· 91 97 const all = b.step("all", "Build codecs and plugins"); 92 98 all.dependOn(codecs); 93 99 all.dependOn(rocks); 100 + 101 + const install = b.step("install-rockbox", "Install codecs and plugins"); 102 + install.dependOn(all); 103 + try install_codecs(b, install); 104 + try install_rocks(b, install); 94 105 95 106 // Creates a step for unit testing. This only builds the test executable 96 107 // but does not run it. ··· 2588 2599 }); 2589 2600 rocks.dependOn(bubbles); 2590 2601 2591 - const calculator = try build_plugin(b, .{ 2592 - .name = "calculator", 2593 - .target = target, 2594 - .optimize = optimize, 2595 - .sources = &[_][]const u8{ 2596 - "apps/plugins/calculator.c", 2597 - "apps/plugins/plugin_crt0.c", 2598 - }, 2599 - .link_libraries = &[_]*std.Build.Step.Compile{ 2600 - libplugin, 2601 - libpluginbitmaps, 2602 - libfixedpoint, 2603 - }, 2604 - }); 2605 - rocks.dependOn(calculator); 2606 - 2607 2602 const chip8 = try build_plugin(b, .{ 2608 2603 .name = "chip8", 2609 2604 .target = target, ··· 3310 3305 }); 3311 3306 3312 3307 mk500boot.linkLibC(); 3308 + } 3309 + 3310 + fn install_codec(b: *std.Build, name: []const u8) !*std.Build.Step { 3311 + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); 3312 + defer arena.deinit(); 3313 + 3314 + var from = String.init(arena.allocator()); 3315 + defer from.deinit(); 3316 + try from.concat("zig-out/lib/"); 3317 + try from.concat(name); 3318 + try from.concat(".codec"); 3319 + 3320 + var to = String.init(arena.allocator()); 3321 + defer to.deinit(); 3322 + 3323 + const env_map = try arena.allocator().create(std.process.EnvMap); 3324 + env_map.* = try std.process.getEnvMap(arena.allocator()); 3325 + defer env_map.deinit(); 3326 + 3327 + const prefix = env_map.get("PREFIX") orelse "/usr/local"; 3328 + try to.concat(prefix); 3329 + try to.concat("/lib/rockbox/codecs/"); 3330 + 3331 + const info = b.addSystemCommand(&[_][]const u8{ 3332 + "echo", "Installing", name, "codec", 3333 + }); 3334 + const mkdir = b.addSystemCommand(&[_][]const u8{ 3335 + "mkdir", "-p", to.str(), 3336 + }); 3337 + const codec_file = b.addSystemCommand(&[_][]const u8{ 3338 + "cp", from.str(), to.str(), 3339 + }); 3340 + mkdir.step.dependOn(b.getInstallStep()); 3341 + codec_file.step.dependOn(&mkdir.step); 3342 + codec_file.step.dependOn(&info.step); 3343 + 3344 + return &codec_file.step; 3345 + } 3346 + 3347 + fn install_codecs(b: *std.Build, install: *std.Build.Step) !void { 3348 + install.dependOn(try install_codec(b, "a52")); 3349 + install.dependOn(try install_codec(b, "a52_rm")); 3350 + install.dependOn(try install_codec(b, "aac")); 3351 + install.dependOn(try install_codec(b, "aac_bsf")); 3352 + install.dependOn(try install_codec(b, "adx")); 3353 + install.dependOn(try install_codec(b, "alac")); 3354 + install.dependOn(try install_codec(b, "ape")); 3355 + install.dependOn(try install_codec(b, "asap")); 3356 + install.dependOn(try install_codec(b, "atrac3_oma")); 3357 + install.dependOn(try install_codec(b, "atrac3_rm")); 3358 + install.dependOn(try install_codec(b, "au")); 3359 + install.dependOn(try install_codec(b, "ay")); 3360 + install.dependOn(try install_codec(b, "cook")); 3361 + install.dependOn(try install_codec(b, "faad")); 3362 + install.dependOn(try install_codec(b, "gbs")); 3363 + install.dependOn(try install_codec(b, "hes")); 3364 + install.dependOn(try install_codec(b, "kss")); 3365 + install.dependOn(try install_codec(b, "m4a")); 3366 + install.dependOn(try install_codec(b, "mod")); 3367 + install.dependOn(try install_codec(b, "mpa")); 3368 + install.dependOn(try install_codec(b, "mpc")); 3369 + install.dependOn(try install_codec(b, "nsf")); 3370 + install.dependOn(try install_codec(b, "opus")); 3371 + install.dependOn(try install_codec(b, "raac")); 3372 + install.dependOn(try install_codec(b, "sgc")); 3373 + install.dependOn(try install_codec(b, "shorten")); 3374 + install.dependOn(try install_codec(b, "smaf")); 3375 + install.dependOn(try install_codec(b, "spc")); 3376 + install.dependOn(try install_codec(b, "speex")); 3377 + install.dependOn(try install_codec(b, "tta")); 3378 + install.dependOn(try install_codec(b, "vgm")); 3379 + install.dependOn(try install_codec(b, "vorbis")); 3380 + install.dependOn(try install_codec(b, "vox")); 3381 + install.dependOn(try install_codec(b, "vtx")); 3382 + install.dependOn(try install_codec(b, "wav")); 3383 + install.dependOn(try install_codec(b, "wav64")); 3384 + install.dependOn(try install_codec(b, "wavpack")); 3385 + install.dependOn(try install_codec(b, "wma")); 3386 + install.dependOn(try install_codec(b, "wmapro")); 3387 + } 3388 + 3389 + fn install_rock(b: *std.Build, name: []const u8, category: []const u8) !*std.Build.Step { 3390 + var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); 3391 + defer arena.deinit(); 3392 + 3393 + var from = String.init(arena.allocator()); 3394 + defer from.deinit(); 3395 + try from.concat("zig-out/lib/"); 3396 + try from.concat(name); 3397 + try from.concat(".rock"); 3398 + 3399 + var to = String.init(arena.allocator()); 3400 + defer to.deinit(); 3401 + 3402 + const env_map = try arena.allocator().create(std.process.EnvMap); 3403 + env_map.* = try std.process.getEnvMap(arena.allocator()); 3404 + defer env_map.deinit(); 3405 + 3406 + const prefix = env_map.get("PREFIX") orelse "/usr/local"; 3407 + try to.concat(prefix); 3408 + try to.concat("/lib/rockbox/"); 3409 + try to.concat(category); 3410 + 3411 + const info = b.addSystemCommand(&[_][]const u8{ 3412 + "echo", "Installing", name, "plugin", 3413 + }); 3414 + const mkdir = b.addSystemCommand(&[_][]const u8{ 3415 + "mkdir", "-p", to.str(), 3416 + }); 3417 + const install = b.addSystemCommand(&[_][]const u8{ 3418 + "cp", from.str(), to.str(), 3419 + }); 3420 + mkdir.step.dependOn(b.getInstallStep()); 3421 + install.step.dependOn(&mkdir.step); 3422 + install.step.dependOn(&info.step); 3423 + 3424 + return &install.step; 3425 + } 3426 + 3427 + fn install_rocks(b: *std.Build, install: *std.Build.Step) !void { 3428 + install.dependOn(try install_rock(b, "2048", "games")); 3429 + install.dependOn(try install_rock(b, "amaze", "games")); 3430 + install.dependOn(try install_rock(b, "bounce", "demos")); 3431 + install.dependOn(try install_rock(b, "brickmania", "games")); 3432 + install.dependOn(try install_rock(b, "bubbles", "games")); 3433 + install.dependOn(try install_rock(b, "calendar", "apps")); 3434 + install.dependOn(try install_rock(b, "chessbox", "games")); 3435 + install.dependOn(try install_rock(b, "chessclock", "apps")); 3436 + install.dependOn(try install_rock(b, "chip8", "viewers")); 3437 + install.dependOn(try install_rock(b, "chopper", "games")); 3438 + install.dependOn(try install_rock(b, "clix", "games")); 3439 + install.dependOn(try install_rock(b, "credits", "viewers")); 3440 + install.dependOn(try install_rock(b, "cube", "demos")); 3441 + install.dependOn(try install_rock(b, "cue_playlist", "viewers")); 3442 + install.dependOn(try install_rock(b, "dart_scorer", "apps")); 3443 + install.dependOn(try install_rock(b, "db_commit", "apps")); 3444 + install.dependOn(try install_rock(b, "demystify", "demos")); 3445 + install.dependOn(try install_rock(b, "dice", "games")); 3446 + install.dependOn(try install_rock(b, "dict", "apps")); 3447 + install.dependOn(try install_rock(b, "disktidy", "apps")); 3448 + install.dependOn(try install_rock(b, "fft", "demos")); 3449 + install.dependOn(try install_rock(b, "file_picker", "viewers")); 3450 + install.dependOn(try install_rock(b, "flipit", "games")); 3451 + install.dependOn(try install_rock(b, "goban", "games")); 3452 + install.dependOn(try install_rock(b, "jackpot", "games")); 3453 + install.dependOn(try install_rock(b, "jewels", "games")); 3454 + install.dependOn(try install_rock(b, "keybox", "apps")); 3455 + install.dependOn(try install_rock(b, "keyremap", "apps")); 3456 + install.dependOn(try install_rock(b, "lastfm_scrobbler", "apps")); 3457 + install.dependOn(try install_rock(b, "lastfm_scrobbler_viewer", "viewers")); 3458 + install.dependOn(try install_rock(b, "logo", "demos")); 3459 + install.dependOn(try install_rock(b, "lrcplayer", "apps")); 3460 + install.dependOn(try install_rock(b, "lua", "viewers")); 3461 + install.dependOn(try install_rock(b, "main_menu_config", "apps")); 3462 + install.dependOn(try install_rock(b, "mazezam", "games")); 3463 + install.dependOn(try install_rock(b, "md5sum", "apps")); 3464 + install.dependOn(try install_rock(b, "metronome", "apps")); 3465 + install.dependOn(try install_rock(b, "mikmod", "viewers")); 3466 + install.dependOn(try install_rock(b, "minesweeper", "games")); 3467 + install.dependOn(try install_rock(b, "mosaique", "demos")); 3468 + install.dependOn(try install_rock(b, "mp3_encoder", "apps")); 3469 + install.dependOn(try install_rock(b, "open_plugins", "viewers")); 3470 + install.dependOn(try install_rock(b, "oscilloscope", "demos")); 3471 + install.dependOn(try install_rock(b, "otp", "apps")); 3472 + install.dependOn(try install_rock(b, "pegbox", "games")); 3473 + install.dependOn(try install_rock(b, "periodic_table", "apps")); 3474 + install.dependOn(try install_rock(b, "pictureflow", "demos")); 3475 + install.dependOn(try install_rock(b, "playing_time", "apps")); 3476 + install.dependOn(try install_rock(b, "pong", "games")); 3477 + install.dependOn(try install_rock(b, "properties", "viewers")); 3478 + install.dependOn(try install_rock(b, "random_folder_advance_config", "apps")); 3479 + install.dependOn(try install_rock(b, "rb_info", "demos")); 3480 + install.dependOn(try install_rock(b, "resistor", "apps")); 3481 + install.dependOn(try install_rock(b, "reversi", "games")); 3482 + install.dependOn(try install_rock(b, "robotfindskitten", "games")); 3483 + install.dependOn(try install_rock(b, "rockblox", "games")); 3484 + install.dependOn(try install_rock(b, "rockblox1d", "games")); 3485 + install.dependOn(try install_rock(b, "search", "viewers")); 3486 + install.dependOn(try install_rock(b, "settings_dumper", "apps")); 3487 + install.dependOn(try install_rock(b, "shopper", "games")); 3488 + install.dependOn(try install_rock(b, "sliding_puzzle", "games")); 3489 + install.dependOn(try install_rock(b, "snake", "games")); 3490 + install.dependOn(try install_rock(b, "snake2", "games")); 3491 + install.dependOn(try install_rock(b, "snow", "demos")); 3492 + install.dependOn(try install_rock(b, "sokoban", "games")); 3493 + install.dependOn(try install_rock(b, "solitaire", "games")); 3494 + install.dependOn(try install_rock(b, "sort", "viewers")); 3495 + install.dependOn(try install_rock(b, "spacerocks", "games")); 3496 + install.dependOn(try install_rock(b, "star", "games")); 3497 + install.dependOn(try install_rock(b, "stats", "apps")); 3498 + install.dependOn(try install_rock(b, "stopwatch", "apps")); 3499 + install.dependOn(try install_rock(b, "theme_remove", "viewers")); 3500 + install.dependOn(try install_rock(b, "vbrfix", "viewers")); 3501 + install.dependOn(try install_rock(b, "vu_meter", "demos")); 3502 + install.dependOn(try install_rock(b, "wav2wv", "viewers")); 3503 + install.dependOn(try install_rock(b, "wormlet", "games")); 3504 + install.dependOn(try install_rock(b, "xobox", "games")); 3505 + install.dependOn(try install_rock(b, "zxbox", "games")); 3313 3506 } 3314 3507 3315 3508 fn build_codec(b: *std.Build, options: BuildOptions) !*std.Build.Step {
+9
firmware/target/hosted/sdl/key_to_touch-sdl.c
··· 51 51 } 52 52 } 53 53 break; 54 + case SDLK_BACKSPACE: 55 + case SDLK_ESCAPE: 56 + new_btn = BUTTON_TOPLEFT; 57 + break; 58 + case SDLK_KP_ENTER: 59 + case SDLK_RETURN: 60 + case SDLK_SPACE: 61 + new_btn = BUTTON_CENTER; 62 + break; 54 63 #ifndef APPLICATION 55 64 case SDLK_KP7: 56 65 case SDLK_7:
+4
tools/root.make
··· 410 410 @echo "Installing a full setup in your '$(RBPREFIX)' dir" 411 411 $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m "$(MODELNAME)" -i "$(TARGET_ID)" $(INSTALL) -z "zip -r0" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" -f 2 $(TARGET) $(BINARY) 412 412 413 + ziginstall: zig 414 + @echo "Installing your build in your '$(RBPREFIX)' dir" 415 + cd .. && zig build install-rockbox 416 + 413 417 symlinkinstall: simext1 414 418 @echo "Installing a full setup with links in your '$(RBPREFIX)' dir" 415 419 $(SILENT)$(TOOLSDIR)/buildzip.pl $(VERBOSEOPT) --app=$(APPLICATION) -m "$(MODELNAME)" -i "$(TARGET_ID)" $(INSTALL) -z "zip -r0" -r "$(ROOTDIR)" --rbdir="$(RBDIR)" -f 2 $(TARGET) $(BINARY) -l