mirror of
https://github.com/Lorenzooone/cc3dsfs.git
synced 2026-09-08 08:35:28 -05:00
Implement partner CTR menu
This commit is contained in:
@@ -25,6 +25,7 @@ uint64_t cypart_device_get_video_in_size(CaptureStatus* status, bool is_3d);
|
||||
uint64_t cypart_device_get_video_in_size(CaptureData* capture_data, bool is_3d);
|
||||
void cypart_device_acquisition_main_loop(CaptureData* capture_data);
|
||||
void usb_cypart_device_acquisition_cleanup(CaptureData* capture_data);
|
||||
bool is_device_partner_ctr(CaptureDevice* device);
|
||||
void usb_cypart_device_init();
|
||||
void usb_cypart_device_close();
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ enum MainMenuOutAction{
|
||||
MAIN_MENU_ISN_SETTINGS,
|
||||
MAIN_MENU_IST_SETTINGS,
|
||||
MAIN_MENU_OPTIMIZE_3DS_SETTINGS,
|
||||
MAIN_MENU_PARTNER_CTR_SETTINGS,
|
||||
MAIN_MENU_INPUT_SETTINGS,
|
||||
};
|
||||
|
||||
|
||||
41
include/Menus/PartnerCTRMenu.hpp
Normal file
41
include/Menus/PartnerCTRMenu.hpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#ifndef __PARTCTRMENU_HPP
|
||||
#define __PARTCTRMENU_HPP
|
||||
|
||||
#include "OptionSelectionMenu.hpp"
|
||||
#include <chrono>
|
||||
|
||||
#include "TextRectangle.hpp"
|
||||
#include "sfml_gfx_structs.hpp"
|
||||
#include "display_structs.hpp"
|
||||
#include "capture_structs.hpp"
|
||||
|
||||
enum PartnerCTRMenuOutAction{
|
||||
PCTR_MENU_NO_ACTION,
|
||||
PCTR_MENU_BACK,
|
||||
PCTR_MENU_RESET,
|
||||
PCTR_MENU_BATTERY_INC,
|
||||
PCTR_MENU_BATTERY_DEC,
|
||||
PCTR_MENU_AC_ADAPTER_CONNECTED_TOGGLE,
|
||||
PCTR_MENU_AC_ADAPTER_CHARGING_TOGGLE,
|
||||
};
|
||||
|
||||
class PartnerCTRMenu : public OptionSelectionMenu {
|
||||
public:
|
||||
PartnerCTRMenu(TextRectanglePool* text_pool);
|
||||
~PartnerCTRMenu();
|
||||
void prepare(float scaling_factor, int view_size_x, int view_size_y, CaptureStatus* capture_status);
|
||||
void insert_data(CaptureDevice* device);
|
||||
PartnerCTRMenuOutAction selected_index = PartnerCTRMenuOutAction::PCTR_MENU_NO_ACTION;
|
||||
void reset_output_option();
|
||||
protected:
|
||||
bool is_option_selectable(int index, int action);
|
||||
bool is_option_inc_dec(int index);
|
||||
void set_output_option(int index, int action);
|
||||
size_t get_num_options();
|
||||
std::string get_string_option(int index, int action);
|
||||
void class_setup();
|
||||
private:
|
||||
int *options_indexes;
|
||||
size_t num_enabled_options;
|
||||
};
|
||||
#endif
|
||||
@@ -371,8 +371,11 @@ struct CaptureStatus {
|
||||
bool key_updated = false;
|
||||
CaptureScreensType capture_type;
|
||||
CaptureSpeedsType capture_speed;
|
||||
int battery_percentage;
|
||||
bool ac_adapter_connected;
|
||||
int is_battery_percentage;
|
||||
bool is_ac_adapter_connected;
|
||||
int partner_ctr_battery_percentage;
|
||||
bool partner_ctr_ac_adapter_connected;
|
||||
bool partner_ctr_ac_adapter_charging;
|
||||
// Needed for possible compatibility issues
|
||||
bool devices_allowed_scan[CC_POSSIBLE_DEVICES_END];
|
||||
ConsumerMutex video_wait;
|
||||
|
||||
@@ -26,7 +26,7 @@ enum ScreenType { TOP, BOTTOM, JOINT };
|
||||
enum BottomRelativePosition { UNDER_TOP, LEFT_TOP, ABOVE_TOP, RIGHT_TOP, BOT_REL_POS_END };
|
||||
enum SecondScreen3DRelativePosition { UNDER_FIRST, LEFT_FIRST, ABOVE_FIRST, RIGHT_FIRST, SECOND_SCREEN_3D_REL_POS_END };
|
||||
enum NonIntegerScalingModes { SMALLER_PRIORITY, INVERSE_PROPORTIONAL_PRIORITY, EQUAL_PRIORITY, PROPORTIONAL_PRIORITY, BIGGER_PRIORITY, END_NONINT_SCALE_MODES };
|
||||
enum CurrMenuType { DEFAULT_MENU_TYPE, CONNECT_MENU_TYPE, MAIN_MENU_TYPE, VIDEO_MENU_TYPE, AUDIO_MENU_TYPE, CROP_MENU_TYPE, TOP_PAR_MENU_TYPE, BOTTOM_PAR_MENU_TYPE, ROTATION_MENU_TYPE, OFFSET_MENU_TYPE, BFI_MENU_TYPE, LOAD_MENU_TYPE, SAVE_MENU_TYPE, RESOLUTION_MENU_TYPE, EXTRA_MENU_TYPE, STATUS_MENU_TYPE, LICENSES_MENU_TYPE, RELATIVE_POS_MENU_TYPE, SHORTCUTS_MENU_TYPE, ACTION_SELECTION_MENU_TYPE, SCALING_RATIO_MENU_TYPE, ISN_MENU_TYPE, VIDEO_EFFECTS_MENU_TYPE, INPUT_MENU_TYPE, AUDIO_DEVICE_MENU_TYPE, SEPARATOR_MENU_TYPE, COLOR_CORRECTION_MENU_TYPE, MAIN_3D_MENU_TYPE, SECOND_SCREEN_RELATIVE_POS_MENU_TYPE, USB_CONFLICT_RESOLUTION_MENU_TYPE, OPTIMIZE_3DS_MENU_TYPE, OPTIMIZE_SERIAL_KEY_ADD_MENU_TYPE, RECONNECT_MENU_TYPE };
|
||||
enum CurrMenuType { DEFAULT_MENU_TYPE, CONNECT_MENU_TYPE, MAIN_MENU_TYPE, VIDEO_MENU_TYPE, AUDIO_MENU_TYPE, CROP_MENU_TYPE, TOP_PAR_MENU_TYPE, BOTTOM_PAR_MENU_TYPE, ROTATION_MENU_TYPE, OFFSET_MENU_TYPE, BFI_MENU_TYPE, LOAD_MENU_TYPE, SAVE_MENU_TYPE, RESOLUTION_MENU_TYPE, EXTRA_MENU_TYPE, STATUS_MENU_TYPE, LICENSES_MENU_TYPE, RELATIVE_POS_MENU_TYPE, SHORTCUTS_MENU_TYPE, ACTION_SELECTION_MENU_TYPE, SCALING_RATIO_MENU_TYPE, ISN_MENU_TYPE, VIDEO_EFFECTS_MENU_TYPE, INPUT_MENU_TYPE, AUDIO_DEVICE_MENU_TYPE, SEPARATOR_MENU_TYPE, COLOR_CORRECTION_MENU_TYPE, MAIN_3D_MENU_TYPE, SECOND_SCREEN_RELATIVE_POS_MENU_TYPE, USB_CONFLICT_RESOLUTION_MENU_TYPE, OPTIMIZE_3DS_MENU_TYPE, OPTIMIZE_SERIAL_KEY_ADD_MENU_TYPE, RECONNECT_MENU_TYPE, PARTNER_CTR_MENU_TYPE };
|
||||
enum InputColorspaceMode { FULL_COLORSPACE, DS_COLORSPACE, GBA_COLORSPACE, INPUT_COLORSPACE_END };
|
||||
enum FrameBlendingMode { NO_FRAME_BLENDING, FULL_FRAME_BLENDING, DS_3D_BOTH_SCREENS_FRAME_BLENDING, FRAME_BLENDING_END };
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "ActionSelectionMenu.hpp"
|
||||
#include "ScalingRatioMenu.hpp"
|
||||
#include "ISNitroMenu.hpp"
|
||||
#include "PartnerCTRMenu.hpp"
|
||||
#include "VideoEffectsMenu.hpp"
|
||||
#include "InputMenu.hpp"
|
||||
#include "AudioDeviceMenu.hpp"
|
||||
@@ -191,6 +192,7 @@ private:
|
||||
ShortcutMenu *shortcut_menu;
|
||||
ActionSelectionMenu *action_selection_menu;
|
||||
ISNitroMenu *is_nitro_menu;
|
||||
PartnerCTRMenu *partner_ctr_menu;
|
||||
ScalingRatioMenu *scaling_ratio_menu;
|
||||
VideoEffectsMenu *video_effects_menu;
|
||||
InputMenu *input_menu;
|
||||
@@ -299,8 +301,12 @@ private:
|
||||
void is_nitro_capture_type_change(bool positive);
|
||||
void is_nitro_capture_speed_change(bool positive);
|
||||
void is_nitro_capture_reset_hw();
|
||||
void generic_battery_change(bool positive, int &battery_percentage, const int *allowed_battery_levels, size_t num_levels);
|
||||
void is_nitro_battery_change(bool positive);
|
||||
void is_nitro_ac_adapter_change();
|
||||
void partner_ctr_battery_change(bool positive);
|
||||
void partner_ctr_ac_adapter_connected_change();
|
||||
void partner_ctr_ac_adapter_charging_change();
|
||||
void crop_value_change(int new_crop_value, bool do_print_notification = true, bool do_cycle = true);
|
||||
void par_value_change(int new_par_value, bool is_top);
|
||||
void offset_change(float &value, float change);
|
||||
@@ -408,6 +414,7 @@ private:
|
||||
void setup_relative_pos_menu(bool reset_data = true);
|
||||
void setup_scaling_ratio_menu(bool reset_data = true);
|
||||
void setup_is_nitro_menu(bool reset_data = true);
|
||||
void setup_partner_ctr_menu(bool reset_data = true);
|
||||
void setup_video_effects_menu(bool reset_data = true);
|
||||
void setup_input_menu(bool reset_data = true);
|
||||
void setup_separator_menu(bool reset_data = true);
|
||||
|
||||
Reference in New Issue
Block a user