Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: Render recording #205

Open
wants to merge 53 commits into
base: main
Choose a base branch
from
Open

Feat: Render recording #205

wants to merge 53 commits into from

Conversation

Totto16
Copy link
Collaborator

@Totto16 Totto16 commented Nov 10, 2024

No description provided.

@Totto16 Totto16 added the enhancement New feature or request label Nov 10, 2024
@Totto16 Totto16 added this to the 0.5.7 milestone Nov 10, 2024
@Totto16 Totto16 self-assigned this Nov 10, 2024
Copy link

github-actions bot commented Nov 10, 2024

Cpp-Linter Report ⚠️

Some files did not pass the configured checks!

clang-tidy (v19.1.5) reports: 9 concern(s)
  • src/graphics/video_renderer.cpp:80:5: warning: [google-readability-todo]

    missing username/bug in TODO

       80 |     //TODO: this is just a dummy thing atm, change that
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |     // TODO(runner): this is just a dummy thing atm, change that
  • src/graphics/video_renderer.hpp:14:8: warning: [cppcoreguidelines-special-member-functions]

    class 'VideoRenderer' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       14 | struct VideoRenderer : ServiceProvider {
          |        ^
  • src/graphics/video_renderer.hpp:94:8: warning: [cppcoreguidelines-special-member-functions]

    class 'VideoRendererBackend' defines a destructor but does not define a copy constructor, a copy assignment operator, a move constructor or a move assignment operator

       94 | struct VideoRendererBackend {
          |        ^
  • src/graphics/video_renderer_unix.cpp:35:5: warning: [google-readability-todo]

    missing username/bug in TODO

       35 |     //TODO: detect if we have the ffmpeg executable on the path
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |     // TODO(runner): detect if we have the ffmpeg executable on the path
  • src/helper/c_helpers.hpp:8:8: warning: [cppcoreguidelines-special-member-functions]

    class 'ScopeDefer' defines a non-default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator

        8 | struct ScopeDefer {
          |        ^
  • src/helper/c_helpers.hpp:29:8: warning: [cppcoreguidelines-special-member-functions]

    class 'ScopeDeferMultiple' defines a non-default destructor, a copy constructor and a copy assignment operator but does not define a move constructor or a move assignment operator

       29 | struct ScopeDeferMultiple {
          |        ^
  • src/helper/graphic_utils.cpp:220:16: warning: [cppcoreguidelines-pro-bounds-array-to-pointer-decay]

    do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead

      220 |         memcpy(namebuf, name, 15);
          |                ^
  • src/helper/graphic_utils.cpp:222:44: warning: [cppcoreguidelines-pro-bounds-array-to-pointer-decay]

    do not implicitly decay an array into a pointer; consider using gsl::array_view or an explicit cast instead

      222 |         pthread_setname_np(pthread_self(), namebuf);
          |                                            ^
  • src/scenes/recording_selector/recording_selector.cpp:130:37: warning: [google-readability-todo]

    missing username/bug in TODO

      130 |                                     //TODO: do this in a seperate thread
          |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          |                                     // TODO(runner): do this in a seperate thread

Have any feedback or feature suggestions? Share it here.

Copy link

github-actions bot commented Nov 13, 2024

badge

Code Coverage Summary

Filename                                                    Stmts    Miss  Cover    Missing
--------------------------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
src/discord/core.cpp                                          104     104  0.00%    11-181
src/discord/core.hpp                                            6       6  0.00%    84-93
src/game/bag.cpp                                               22       0  100.00%
src/game/bag.hpp                                                2       0  100.00%
src/game/command_line_arguments.cpp                             5       5  0.00%    7-16
src/game/game.cpp                                              64      64  0.00%    8-120
src/game/game.hpp                                               0       0  100.00%
src/game/graphic_helpers.cpp                                   42      42  0.00%    12-94
src/game/grid.cpp                                              74      74  0.00%    6-113
src/game/grid.hpp                                               0       0  100.00%
src/game/layout.cpp                                            14      14  0.00%    4-23
src/game/rotation.cpp                                          23      23  0.00%    5-37
src/game/simulated_tetrion.cpp                                352     287  18.47%   32-125, 139-175, 181-349, 353, 375-376, 408-410, 424, 429-455, 463-541
src/game/simulated_tetrion.hpp                                  7       7  0.00%    137-143
src/game/simulation.cpp                                        52      27  48.08%   30-40, 61-62, 81-103
src/game/simulation.hpp                                         0       0  100.00%
src/game/tetrion.cpp                                           78      78  0.00%    15-148
src/game/tetromino.cpp                                         44      24  45.45%   5-36, 42-48
src/game/tetromino.hpp                                          5       0  100.00%
src/graphics/rect.hpp                                          23      23  0.00%    16-55
src/graphics/renderer.cpp                                      82      82  0.00%    9-140
src/graphics/renderer.hpp                                      30      30  0.00%    47-91
src/graphics/sdl_context.cpp                                   18      18  0.00%    20-67
src/graphics/text.cpp                                          11      11  0.00%    34-53
src/graphics/text.hpp                                           0       0  100.00%
src/graphics/texture.cpp                                       71      71  0.00%    7-118
src/graphics/texture.hpp                                        9       9  0.00%    53-63
src/graphics/video_renderer.cpp                               120     120  0.00%    8-226
src/graphics/video_renderer_unix.cpp                           70      70  0.00%    20-133
src/graphics/window.cpp                                        41      41  0.00%    6-62
src/helper/clock_source.cpp                                    44      44  0.00%    10-77
src/helper/clock_source.hpp                                     7       7  0.00%    12-27
src/helper/git_helper.hpp                                       2       2  0.00%    7-11
src/helper/graphic_utils.cpp                                   49      49  0.00%    9-235
src/helper/graphic_utils.hpp                                    0       0  100.00%
src/helper/message_box.cpp                                      7       7  0.00%    7-22
src/helper/music_utils.hpp                                      4       4  0.00%    9-30
src/helper/nfd.cpp                                            108     108  0.00%    22-197
src/helper/nfd_include.hpp                                      1       1  0.00%    23
src/helper/platform.cpp                                        12      12  0.00%    20-114
src/helper/platform.hpp                                         4       4  0.00%    16-40
src/input/controller_input.cpp                                161     161  0.00%    12-323
src/input/controller_input.hpp                                 52      52  0.00%    58-167
src/input/game_input.cpp                                       67      67  0.00%    8-99
src/input/game_input.hpp                                       16      10  37.50%   59-72, 78-91, 98-100
src/input/guid.cpp                                             18      18  0.00%    11-42
src/input/guid.hpp                                             46      46  0.00%    34-143
src/input/input.cpp                                           200     200  0.00%    20-427
src/input/input_creator.cpp                                    73      73  0.00%    22-157
src/input/input_creator.hpp                                     6       0  100.00%
src/input/input.hpp                                             9       9  0.00%    132-146
src/input/joystick_input.cpp                                  205     205  0.00%    18-970
src/input/joystick_input.hpp                                   73      73  0.00%    35-450
src/input/keyboard_input.cpp                                  128     128  0.00%    9-221
src/input/keyboard_input.hpp                                   51      51  0.00%    47-161
src/input/mouse_input.cpp                                      36      36  0.00%    9-79
src/input/mouse_input.hpp                                       0       0  100.00%
src/input/replay_input.cpp                                     53      49  7.55%    14-97
src/input/replay_input.hpp                                      0       0  100.00%
src/input/touch_input.cpp                                     175     175  0.00%    14-345
src/input/touch_input.hpp                                      57      57  0.00%    58-223
src/libs/core/game/mino.cpp                                    10       6  40.00%   3-4, 15-20
src/libs/core/game/mino.hpp                                     3       0  100.00%
src/libs/core/game/mino_stack.cpp                              55      46  16.36%   7-17, 21, 29-30, 36-86
src/libs/core/game/mino_stack.hpp                               0       0  100.00%
src/libs/core/game/tetromino_type.cpp                          22      22  0.00%    5-45
src/libs/core/hash-library/sha256.cpp                         417      28  93.29%   471-474, 504, 515, 521, 530, 546, 551-566, 593-604
src/libs/core/helper/bool_wrapper.hpp                          17      17  0.00%    15-50
src/libs/core/helper/color.cpp                                 86      36  58.14%   11-31, 38-53, 61, 75, 145-157, 161-164
src/libs/core/helper/color.hpp                                 95      86  9.47%    30-60, 86-114, 157-264
src/libs/core/helper/color_literals.hpp                       320      30  90.62%   412, 582, 647-694, 708-711
src/libs/core/helper/const_utils.hpp                           17       1  94.12%   72
src/libs/core/helper/date.cpp                                  46      46  0.00%    9-114
src/libs/core/helper/errors.cpp                                29      29  0.00%    3-49
src/libs/core/helper/errors.hpp                                 0       0  100.00%
src/libs/core/helper/parse_json.cpp                            27      27  0.00%    6-62
src/libs/core/helper/parse_json.hpp                            84      84  0.00%    28-186
src/libs/core/helper/point.hpp                                 32      17  46.88%   17, 22-23, 34-35, 50-66, 77-78, 97, 131-132
src/libs/core/helper/random.cpp                                13       7  46.15%   5, 11-16, 24-25
src/libs/core/helper/random.hpp                                 4       0  100.00%
src/libs/core/helper/sleep.cpp                                 15      15  0.00%    23-76
src/libs/core/helper/static_string.hpp                         30      30  0.00%    17-140
src/libs/core/helper/string_manipulation.cpp                   41       7  82.93%   16-23
src/libs/core/helper/timer.cpp                                 18      18  0.00%    6-32
src/libs/core/helper/timer.hpp                                  0       0  100.00%
src/libs/core/helper/utils.hpp                                 18      12  33.33%   59-110
src/libs/recordings/utility/additional_information.cpp        329     200  39.21%   9-39, 49, 54, 74-85, 88-99, 102-107, 110-115, 118-123, 134-139, 149-183, 205, 214, 223, 242, 250, 257-269, 273-285, 290-295, 300-305, 310-315, 322, 330-335, 342, 347-389, 395, 404, 407, 413, 422-423, 430-431, 442, 450, 453-455, 462-520, 541, 551-564
src/libs/recordings/utility/additional_information.hpp         23      14  39.13%   58, 62-179
src/libs/recordings/utility/checksum_helper.cpp                10       5  50.00%   7-13
src/libs/recordings/utility/checksum_helper.hpp                13       0  100.00%
src/libs/recordings/utility/helper.hpp                         81      28  65.43%   35-36, 58-59, 67, 73-74, 84, 93, 102, 109, 115, 127-154
src/libs/recordings/utility/recording.cpp                      21       3  85.71%   16-17, 42
src/libs/recordings/utility/recording.hpp                       4       0  100.00%
src/libs/recordings/utility/recording_reader.cpp              151      62  58.94%   42, 45, 52, 55-57, 63, 72, 80, 92, 95-97, 131, 137, 143, 147-148, 153, 161-208, 214-215, 222-223, 229-230, 241-242, 248-249, 256-257, 263-264, 268-269, 275-277
src/libs/recordings/utility/recording_reader.hpp                0       0  100.00%
src/libs/recordings/utility/recording_writer.cpp               90      90  0.00%    5-184
src/libs/recordings/utility/recording_writer.hpp                6       6  0.00%    55-62
src/libs/recordings/utility/tetrion_core_information.hpp        6       0  100.00%
src/libs/recordings/utility/tetrion_snapshot.cpp              110      70  36.36%   32, 37, 42, 47, 52, 57, 65, 70, 75, 80-81, 105-225
src/libs/recordings/utility/tetrion_snapshot.hpp                0       0  100.00%
src/lobby/api.cpp                                             145     145  0.00%    30-296
src/lobby/client.cpp                                           42      42  0.00%    10-109
src/lobby/client.hpp                                           12      12  0.00%    81-100
src/lobby/httplib_client.cpp                                   52      52  0.00%    8-122
src/lobby/types.hpp                                            13      13  0.00%    15-82
src/lobby/credentials/buffer.cpp                               28      28  0.00%    7-51
src/lobby/credentials/secret.cpp                               68      68  0.00%    18-150
src/manager/event_dispatcher.hpp                               37      37  0.00%    39-123
src/manager/event_listener.hpp                                  6       6  0.00%    6-19
src/manager/font.cpp                                           12      12  0.00%    5-18
src/manager/font.hpp                                            3       3  0.00%    15-18
src/manager/music_manager.cpp                                 228     228  0.00%    17-411
src/manager/music_manager.hpp                                  12      12  0.00%    69-86
src/manager/resource_manager.hpp                                2       2  0.00%    30-31
src/manager/sdl_controller_key.cpp                             18      18  0.00%    5-34
src/manager/sdl_controller_key.hpp                              3       3  0.00%    34-36
src/manager/sdl_key.cpp                                       222      29  86.94%   27, 75-76, 154-156, 205-211, 222-223, 230, 288, 313, 367-368, 418-436, 446-447
src/manager/sdl_key.hpp                                         3       3  0.00%    118-120
src/manager/service_provider.hpp                                2       2  0.00%    41-46
src/manager/settings.cpp                                       18      18  0.00%    10-34
src/manager/settings.hpp                                       34      34  0.00%    20-73
src/manager/settings_manager.cpp                               42      42  0.00%    21-138
src/scenes/scene.cpp                                           18      18  0.00%    15-56
src/scenes/scene.hpp                                           13      13  0.00%    25-75
src/scenes/about_page/about_page.cpp                           57      57  0.00%    19-121
src/scenes/about_page/about_page.hpp                            0       0  100.00%
src/scenes/loading_screen/loading_screen.cpp                   19      19  0.00%    17-48
src/scenes/logo/logo.cpp                                       25      25  0.00%    11-147
src/scenes/main_menu/main_menu.cpp                             97      97  0.00%    13-166
src/scenes/main_menu/main_menu.hpp                              0       0  100.00%
src/scenes/multiplayer_menu/multiplayer_menu.cpp               76      76  0.00%    12-129
src/scenes/multiplayer_menu/multiplayer_menu.hpp                0       0  100.00%
src/scenes/online_lobby/online_lobby.cpp                       86      86  0.00%    19-154
src/scenes/online_lobby/online_lobby.hpp                        0       0  100.00%
src/scenes/play_select_menu/play_select_menu.cpp               76      76  0.00%    11-129
src/scenes/play_select_menu/play_select_menu.hpp                0       0  100.00%
src/scenes/recording_selector/recording_chooser.cpp            75      75  0.00%    12-136
src/scenes/recording_selector/recording_chooser.hpp             0       0  100.00%
src/scenes/recording_selector/recording_component.cpp         140     140  0.00%    17-257
src/scenes/recording_selector/recording_component.hpp           1       1  0.00%    22
src/scenes/recording_selector/recording_selector.cpp          143     143  0.00%    34-275
src/scenes/recording_selector/recording_selector.hpp            2       2  0.00%    24-26
src/scenes/replay_game/replay_game.cpp                         70      70  0.00%    15-150
src/scenes/replay_game/replay_game.hpp                          0       0  100.00%
src/scenes/settings_menu/color_setting_row.cpp                124     124  0.00%    16-241
src/scenes/settings_menu/color_setting_row.hpp                  0       0  100.00%
src/scenes/settings_menu/settings_details.hpp                   1       1  0.00%    11
src/scenes/settings_menu/settings_menu.cpp                    162     162  0.00%    22-281
src/scenes/settings_menu/settings_menu.hpp                      2       2  0.00%    30-32
src/scenes/single_player_game/game_over.cpp                    26      26  0.00%    14-65
src/scenes/single_player_game/game_over.hpp                     0       0  100.00%
src/scenes/single_player_game/pause.cpp                        36      36  0.00%    11-63
src/scenes/single_player_game/pause.hpp                         0       0  100.00%
src/scenes/single_player_game/single_player_game.cpp           75      75  0.00%    20-142
src/scenes/single_player_game/single_player_game.hpp            0       0  100.00%
src/ui/focusable.hpp                                           26      26  0.00%    15-66
src/ui/hoverable.cpp                                           28      28  0.00%    6-57
src/ui/layout.cpp                                              32      32  0.00%    6-63
src/ui/layout.hpp                                              40      40  0.00%    21-149
src/ui/widget.cpp                                               4       4  0.00%    7-12
src/ui/widget.hpp                                              12      12  0.00%    34-61
src/ui/components/abstract_slider.hpp                         128     128  0.00%    28-243
src/ui/components/button.hpp                                   57      57  0.00%    30-135
src/ui/components/color_picker.cpp                            322     322  0.00%    17-565
src/ui/components/color_picker.hpp                              0       0  100.00%
src/ui/components/image_button.cpp                             12      12  0.00%    5-27
src/ui/components/image_button.hpp                              0       0  100.00%
src/ui/components/image_view.cpp                               16      16  0.00%    5-34
src/ui/components/image_view.hpp                                0       0  100.00%
src/ui/components/label.cpp                                    15      15  0.00%    6-36
src/ui/components/label.hpp                                     0       0  100.00%
src/ui/components/link_label.cpp                               43      43  0.00%    6-81
src/ui/components/link_label.hpp                                0       0  100.00%
src/ui/components/slider.cpp                                   39      39  0.00%    7-75
src/ui/components/slider.hpp                                    0       0  100.00%
src/ui/components/spinner.cpp                                  65      65  0.00%    13-120
src/ui/components/spinner.hpp                                   0       0  100.00%
src/ui/components/text_button.cpp                              33      33  0.00%    5-65
src/ui/components/text_button.hpp                               0       0  100.00%
src/ui/components/textinput.cpp                               294     294  0.00%    17-549
src/ui/layouts/focus_layout.cpp                               177     177  0.00%    10-303
src/ui/layouts/focus_layout.hpp                                28      28  0.00%    48-105
src/ui/layouts/grid_layout.cpp                                 44      44  0.00%    5-72
src/ui/layouts/grid_layout.hpp                                  0       0  100.00%
src/ui/layouts/scroll_layout.cpp                              226     226  0.00%    6-392
src/ui/layouts/scroll_layout.hpp                               13      13  0.00%    73-91
src/ui/layouts/tile_layout.cpp                                 40      40  0.00%    5-57
src/ui/layouts/tile_layout.hpp                                  9       9  0.00%    31-49
TOTAL                                                        9305    7756  16.65%

Results for commit: 1b7cde6

Minimum allowed coverage is 0%

♻️ This comment has been updated with latest results

@Totto16 Totto16 force-pushed the render_recording branch 2 times, most recently from f9a8e38 to 80ec375 Compare November 13, 2024 22:14
@Totto16 Totto16 mentioned this pull request Nov 13, 2024
16 tasks
@Totto16 Totto16 force-pushed the render_recording branch 4 times, most recently from 50daebe to 7b9781c Compare November 19, 2024 17:05
if the socket variant really works is questionable, but it compiles at least
this required some refactoring, each RequestAction EventHandleType returns a void*, that cAn contain any data, in the render case it's a reference to the selector, which has a recordings path
…rror

it is also better, than using std::get<> everywhere
also correctly install ffmpeg libraries pkgconfig files, so that no mapping via cpp.find_library() is needed
this makes recordings and similar things persistent across reloads
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant