mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Manually tweak source formatting and then re-run clang-format
This commit is contained in:
		
							parent
							
								
									784b96d87f
								
							
						
					
					
						commit
						396a8d91a4
					
				
					 169 changed files with 805 additions and 809 deletions
				
			
		|  | @ -23,7 +23,7 @@ StereoBuffer16 DecodeADPCM(const u8* const data, const size_t sample_count, | |||
| 
 | ||||
|     constexpr size_t FRAME_LEN = 8; | ||||
|     constexpr size_t SAMPLES_PER_FRAME = 14; | ||||
|     constexpr std::array<int, 16> SIGNED_NIBBLES{ | ||||
|     constexpr std::array<int, 16> SIGNED_NIBBLES = { | ||||
|         {0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1}}; | ||||
| 
 | ||||
|     const size_t ret_size = | ||||
|  |  | |||
|  | @ -49,7 +49,8 @@ static SharedMemory& WriteRegion() { | |||
| static std::array<Source, num_sources> sources = { | ||||
|     Source(0),  Source(1),  Source(2),  Source(3),  Source(4),  Source(5),  Source(6),  Source(7), | ||||
|     Source(8),  Source(9),  Source(10), Source(11), Source(12), Source(13), Source(14), Source(15), | ||||
|     Source(16), Source(17), Source(18), Source(19), Source(20), Source(21), Source(22), Source(23)}; | ||||
|     Source(16), Source(17), Source(18), Source(19), Source(20), Source(21), Source(22), Source(23), | ||||
| }; | ||||
| static Mixers mixers; | ||||
| 
 | ||||
| static StereoFrame16 GenerateCurrentFrame() { | ||||
|  |  | |||
|  | @ -23,16 +23,15 @@ class Sink; | |||
| namespace DSP { | ||||
| namespace HLE { | ||||
| 
 | ||||
| // The application-accessible region of DSP memory consists of two parts.
 | ||||
| // Both are marked as IO and have Read/Write permissions.
 | ||||
| // The application-accessible region of DSP memory consists of two parts. Both are marked as IO and
 | ||||
| // have Read/Write permissions.
 | ||||
| //
 | ||||
| // First Region:  0x1FF50000 (Size: 0x8000)
 | ||||
| // Second Region: 0x1FF70000 (Size: 0x8000)
 | ||||
| //
 | ||||
| // The DSP reads from each region alternately based on the frame counter for each region much like a
 | ||||
| // double-buffer. The frame counter is located as the very last u16 of each region and is
 | ||||
| // incremented
 | ||||
| // each audio tick.
 | ||||
| // incremented each audio tick.
 | ||||
| 
 | ||||
| constexpr VAddr region0_base = 0x1FF50000; | ||||
| constexpr VAddr region1_base = 0x1FF70000; | ||||
|  | @ -92,14 +91,12 @@ static_assert(std::is_trivially_copyable<u32_dsp>::value, "u32_dsp isn't trivial | |||
| //    See also: DSP::HLE::PipeRead.
 | ||||
| //
 | ||||
| // Note that the above addresses do vary slightly between audio firmwares observed; the addresses
 | ||||
| // are
 | ||||
| // not fixed in stone. The addresses above are only an examplar; they're what this implementation
 | ||||
| // does and provides to applications.
 | ||||
| // are not fixed in stone. The addresses above are only an examplar; they're what this
 | ||||
| // implementation does and provides to applications.
 | ||||
| //
 | ||||
| // Application requests the DSP service to convert DSP addresses into ARM11 virtual addresses using
 | ||||
| // the
 | ||||
| // ConvertProcessAddressFromDspDram service call. Applications seem to derive the addresses for the
 | ||||
| // second region via:
 | ||||
| // the ConvertProcessAddressFromDspDram service call. Applications seem to derive the addresses for
 | ||||
| // the second region via:
 | ||||
| //     second_region_dsp_addr = first_region_dsp_addr | 0x10000
 | ||||
| //
 | ||||
| // Applications maintain most of its own audio state, the memory region is used mainly for
 | ||||
|  | @ -107,7 +104,7 @@ static_assert(std::is_trivially_copyable<u32_dsp>::value, "u32_dsp isn't trivial | |||
| //
 | ||||
| // In the documentation below, filter and effect transfer functions are specified in the z domain.
 | ||||
| // (If you are more familiar with the Laplace transform, z = exp(sT). The z domain is the digital
 | ||||
| //  frequency domain, just like how the s domain is the analog frequency domain.)
 | ||||
| // frequency domain, just like how the s domain is the analog frequency domain.)
 | ||||
| 
 | ||||
| #define INSERT_PADDING_DSPWORDS(num_words) INSERT_PADDING_BYTES(2 * (num_words)) | ||||
| 
 | ||||
|  | @ -137,8 +134,8 @@ struct SourceConfiguration { | |||
|             BitField<0, 1, u32_le> format_dirty; | ||||
|             BitField<1, 1, u32_le> mono_or_stereo_dirty; | ||||
|             BitField<2, 1, u32_le> adpcm_coefficients_dirty; | ||||
|             BitField<3, 1, u32_le> | ||||
|                 partial_embedded_buffer_dirty; ///< Tends to be set when a looped buffer is queued.
 | ||||
|             /// Tends to be set when a looped buffer is queued.
 | ||||
|             BitField<3, 1, u32_le> partial_embedded_buffer_dirty; | ||||
|             BitField<4, 1, u32_le> partial_reset_flag; | ||||
| 
 | ||||
|             BitField<16, 1, u32_le> enable_dirty; | ||||
|  | @ -146,8 +143,8 @@ struct SourceConfiguration { | |||
|             BitField<18, 1, u32_le> rate_multiplier_dirty; | ||||
|             BitField<19, 1, u32_le> buffer_queue_dirty; | ||||
|             BitField<20, 1, u32_le> loop_related_dirty; | ||||
|             BitField<21, 1, u32_le> | ||||
|                 play_position_dirty; ///< Tends to also be set when embedded buffer is updated.
 | ||||
|             /// Tends to also be set when embedded buffer is updated.
 | ||||
|             BitField<21, 1, u32_le> play_position_dirty; | ||||
|             BitField<22, 1, u32_le> filters_enabled_dirty; | ||||
|             BitField<23, 1, u32_le> simple_filter_dirty; | ||||
|             BitField<24, 1, u32_le> biquad_filter_dirty; | ||||
|  | @ -162,9 +159,9 @@ struct SourceConfiguration { | |||
|         // Gain control
 | ||||
| 
 | ||||
|         /**
 | ||||
|          * Gain is between 0.0-1.0. This determines how much will this source appear on | ||||
|          * each of the 12 channels that feed into the intermediate mixers. | ||||
|          * Each of the three intermediate mixers is fed two left and two right channels. | ||||
|          * Gain is between 0.0-1.0. This determines how much will this source appear on each of the | ||||
|          * 12 channels that feed into the intermediate mixers. Each of the three intermediate mixers | ||||
|          * is fed two left and two right channels. | ||||
|          */ | ||||
|         float_le gain[3][4]; | ||||
| 
 | ||||
|  | @ -173,7 +170,11 @@ struct SourceConfiguration { | |||
|         /// Multiplier for sample rate. Resampling occurs with the selected interpolation method.
 | ||||
|         float_le rate_multiplier; | ||||
| 
 | ||||
|         enum class InterpolationMode : u8 { Polyphase = 0, Linear = 1, None = 2 }; | ||||
|         enum class InterpolationMode : u8 { | ||||
|             Polyphase = 0, | ||||
|             Linear = 1, | ||||
|             None = 2, | ||||
|         }; | ||||
| 
 | ||||
|         InterpolationMode interpolation_mode; | ||||
|         INSERT_PADDING_BYTES(1); ///< Interpolation related
 | ||||
|  | @ -197,8 +198,7 @@ struct SourceConfiguration { | |||
|          * The transfer function of this filter is: | ||||
|          *     H(z) = (b0 + b1 z^-1 + b2 z^-2) / (1 - a1 z^-1 - a2 z^-2) | ||||
|          * Nintendo chose to negate the feedbackward coefficients. This differs from standard | ||||
|          * notation | ||||
|          * as in: https://ccrma.stanford.edu/~jos/filters/Direct_Form_I.html
 | ||||
|          * notation as in: https://ccrma.stanford.edu/~jos/filters/Direct_Form_I.html
 | ||||
|          * Values are signed fixed point with 14 fractional bits. | ||||
|          */ | ||||
|         struct BiquadFilter { | ||||
|  | @ -246,8 +246,8 @@ struct SourceConfiguration { | |||
|             u8 is_looping; | ||||
| 
 | ||||
|             /// This value is shown in SourceStatus::previous_buffer_id when this buffer has
 | ||||
|             /// finished.
 | ||||
|             /// This allows the emulated application to tell what buffer is currently playing
 | ||||
|             /// finished. This allows the emulated application to tell what buffer is currently
 | ||||
|             /// playing.
 | ||||
|             u16_le buffer_id; | ||||
| 
 | ||||
|             INSERT_PADDING_DSPWORDS(1); | ||||
|  | @ -275,9 +275,16 @@ struct SourceConfiguration { | |||
|         /// Note a sample takes up different number of bytes in different buffer formats.
 | ||||
|         u32_dsp length; | ||||
| 
 | ||||
|         enum class MonoOrStereo : u16_le { Mono = 1, Stereo = 2 }; | ||||
|         enum class MonoOrStereo : u16_le { | ||||
|             Mono = 1, | ||||
|             Stereo = 2, | ||||
|         }; | ||||
| 
 | ||||
|         enum class Format : u16_le { PCM8 = 0, PCM16 = 1, ADPCM = 2 }; | ||||
|         enum class Format : u16_le { | ||||
|             PCM8 = 0, | ||||
|             PCM16 = 1, | ||||
|             ADPCM = 2, | ||||
|         }; | ||||
| 
 | ||||
|         union { | ||||
|             u16_le flags1_raw; | ||||
|  | @ -349,12 +356,16 @@ struct DspConfiguration { | |||
|     }; | ||||
| 
 | ||||
|     /// The DSP has three intermediate audio mixers. This controls the volume level (0.0-1.0) for
 | ||||
|     /// each at the final mixer
 | ||||
|     /// each at the final mixer.
 | ||||
|     float_le volume[3]; | ||||
| 
 | ||||
|     INSERT_PADDING_DSPWORDS(3); | ||||
| 
 | ||||
|     enum class OutputFormat : u16_le { Mono = 0, Stereo = 1, Surround = 2 }; | ||||
|     enum class OutputFormat : u16_le { | ||||
|         Mono = 0, | ||||
|         Stereo = 1, | ||||
|         Surround = 2, | ||||
|     }; | ||||
| 
 | ||||
|     OutputFormat output_format; | ||||
| 
 | ||||
|  | @ -386,9 +397,10 @@ struct DspConfiguration { | |||
|         u16_le enable; | ||||
|         INSERT_PADDING_DSPWORDS(1); | ||||
|         u16_le outputs; | ||||
|         u32_dsp work_buffer_address; ///< The application allocates a block of memory for the DSP to
 | ||||
|                                      /// use as a work buffer.
 | ||||
|         u16_le frame_count;          ///< Frames to delay by
 | ||||
|         /// The application allocates a block of memory for the DSP to use as a work buffer.
 | ||||
|         u32_dsp work_buffer_address; | ||||
|         /// Frames to delay by
 | ||||
|         u16_le frame_count; | ||||
| 
 | ||||
|         // Coefficients
 | ||||
|         s16_le g; ///< Fixed point with 7 fractional bits
 | ||||
|  |  | |||
|  | @ -61,6 +61,7 @@ void SourceFilters::SimpleFilter::Reset() { | |||
| 
 | ||||
| void SourceFilters::SimpleFilter::Configure( | ||||
|     SourceConfiguration::Configuration::SimpleFilter config) { | ||||
| 
 | ||||
|     a1 = config.a1; | ||||
|     b0 = config.b0; | ||||
| } | ||||
|  | @ -91,6 +92,7 @@ void SourceFilters::BiquadFilter::Reset() { | |||
| 
 | ||||
| void SourceFilters::BiquadFilter::Configure( | ||||
|     SourceConfiguration::Configuration::BiquadFilter config) { | ||||
| 
 | ||||
|     a1 = config.a1; | ||||
|     a2 = config.a2; | ||||
|     b0 = config.b0; | ||||
|  |  | |||
|  | @ -77,9 +77,8 @@ void Mixers::ParseConfig(DspConfiguration& config) { | |||
| 
 | ||||
|     if (config.headphones_connected_dirty) { | ||||
|         config.headphones_connected_dirty.Assign(0); | ||||
|         // Do nothing.
 | ||||
|         // (Note: Whether headphones are connected does affect coefficients used for surround
 | ||||
|         // sound.)
 | ||||
|         // Do nothing. (Note: Whether headphones are connected does affect coefficients used for
 | ||||
|         // surround sound.)
 | ||||
|         LOG_TRACE(Audio_DSP, "mixers headphones_connected=%hu", config.headphones_connected); | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -97,7 +97,8 @@ static void AudioPipeWriteStructAddresses() { | |||
|         0x8000 + offsetof(SharedMemory, unknown11) / 2, | ||||
|         0x8000 + offsetof(SharedMemory, unknown12) / 2, | ||||
|         0x8000 + offsetof(SharedMemory, unknown13) / 2, | ||||
|         0x8000 + offsetof(SharedMemory, unknown14) / 2}; | ||||
|         0x8000 + offsetof(SharedMemory, unknown14) / 2, | ||||
|     }; | ||||
| 
 | ||||
|     // Begin with a u16 denoting the number of structs.
 | ||||
|     WriteU16(DspPipe::Audio, static_cast<u16>(struct_addresses.size())); | ||||
|  | @ -118,7 +119,12 @@ void PipeWrite(DspPipe pipe_number, const std::vector<u8>& buffer) { | |||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         enum class StateChange { Initalize = 0, Shutdown = 1, Wakeup = 2, Sleep = 3 }; | ||||
|         enum class StateChange { | ||||
|             Initalize = 0, | ||||
|             Shutdown = 1, | ||||
|             Wakeup = 2, | ||||
|             Sleep = 3, | ||||
|         }; | ||||
| 
 | ||||
|         // The difference between Initialize and Wakeup is that Input state is maintained
 | ||||
|         // when sleeping but isn't when turning it off and on again. (TODO: Implement this.)
 | ||||
|  |  | |||
|  | @ -15,7 +15,12 @@ namespace HLE { | |||
| /// Reset the pipes by setting pipe positions back to the beginning.
 | ||||
| void ResetPipes(); | ||||
| 
 | ||||
| enum class DspPipe { Debug = 0, Dma = 1, Audio = 2, Binary = 3 }; | ||||
| enum class DspPipe { | ||||
|     Debug = 0, | ||||
|     Dma = 1, | ||||
|     Audio = 2, | ||||
|     Binary = 3, | ||||
| }; | ||||
| constexpr size_t NUM_DSP_PIPE = 8; | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -46,7 +51,12 @@ size_t GetPipeReadableSize(DspPipe pipe_number); | |||
|  */ | ||||
| void PipeWrite(DspPipe pipe_number, const std::vector<u8>& buffer); | ||||
| 
 | ||||
| enum class DspState { Off, On, Sleeping }; | ||||
| enum class DspState { | ||||
|     Off, | ||||
|     On, | ||||
|     Sleeping, | ||||
| }; | ||||
| 
 | ||||
| /// Get the state of the DSP
 | ||||
| DspState GetDspState(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -163,16 +163,18 @@ void Source::ParseConfig(SourceConfiguration::Configuration& config, | |||
| 
 | ||||
|     if (config.embedded_buffer_dirty) { | ||||
|         config.embedded_buffer_dirty.Assign(0); | ||||
|         state.input_queue.emplace(Buffer{config.physical_address, | ||||
|                                          config.length, | ||||
|                                          static_cast<u8>(config.adpcm_ps), | ||||
|                                          {config.adpcm_yn[0], config.adpcm_yn[1]}, | ||||
|                                          config.adpcm_dirty.ToBool(), | ||||
|                                          config.is_looping.ToBool(), | ||||
|                                          config.buffer_id, | ||||
|                                          state.mono_or_stereo, | ||||
|                                          state.format, | ||||
|                                          false}); | ||||
|         state.input_queue.emplace(Buffer{ | ||||
|             config.physical_address, | ||||
|             config.length, | ||||
|             static_cast<u8>(config.adpcm_ps), | ||||
|             {config.adpcm_yn[0], config.adpcm_yn[1]}, | ||||
|             config.adpcm_dirty.ToBool(), | ||||
|             config.is_looping.ToBool(), | ||||
|             config.buffer_id, | ||||
|             state.mono_or_stereo, | ||||
|             state.format, | ||||
|             false, | ||||
|         }); | ||||
|         LOG_TRACE(Audio_DSP, "enqueuing embedded addr=0x%08x len=%u id=%hu", | ||||
|                   config.physical_address, config.length, config.buffer_id); | ||||
|     } | ||||
|  | @ -182,16 +184,18 @@ void Source::ParseConfig(SourceConfiguration::Configuration& config, | |||
|         for (size_t i = 0; i < 4; i++) { | ||||
|             if (config.buffers_dirty & (1 << i)) { | ||||
|                 const auto& b = config.buffers[i]; | ||||
|                 state.input_queue.emplace(Buffer{b.physical_address, | ||||
|                                                  b.length, | ||||
|                                                  static_cast<u8>(b.adpcm_ps), | ||||
|                                                  {b.adpcm_yn[0], b.adpcm_yn[1]}, | ||||
|                                                  b.adpcm_dirty != 0, | ||||
|                                                  b.is_looping != 0, | ||||
|                                                  b.buffer_id, | ||||
|                                                  state.mono_or_stereo, | ||||
|                                                  state.format, | ||||
|                                                  true}); | ||||
|                 state.input_queue.emplace(Buffer{ | ||||
|                     b.physical_address, | ||||
|                     b.length, | ||||
|                     static_cast<u8>(b.adpcm_ps), | ||||
|                     {b.adpcm_yn[0], b.adpcm_yn[1]}, | ||||
|                     b.adpcm_dirty != 0, | ||||
|                     b.is_looping != 0, | ||||
|                     b.buffer_id, | ||||
|                     state.mono_or_stereo, | ||||
|                     state.format, | ||||
|                     true, | ||||
|                 }); | ||||
|                 LOG_TRACE(Audio_DSP, "enqueuing queued %zu addr=0x%08x len=%u id=%hu", i, | ||||
|                           b.physical_address, b.length, b.buffer_id); | ||||
|             } | ||||
|  |  | |||
|  | @ -71,15 +71,17 @@ StereoBuffer16 None(State& state, const StereoBuffer16& input, float rate_multip | |||
| 
 | ||||
| StereoBuffer16 Linear(State& state, const StereoBuffer16& input, float rate_multiplier) { | ||||
|     // Note on accuracy: Some values that this produces are +/- 1 from the actual firmware.
 | ||||
|     return StepOverSamples(state, input, rate_multiplier, [](u64 fraction, const auto& x0, | ||||
|                                                              const auto& x1, const auto& x2) { | ||||
|         // This is a saturated subtraction. (Verified by black-box fuzzing.)
 | ||||
|         s64 delta0 = MathUtil::Clamp<s64>(x1[0] - x0[0], -32768, 32767); | ||||
|         s64 delta1 = MathUtil::Clamp<s64>(x1[1] - x0[1], -32768, 32767); | ||||
|     return StepOverSamples(state, input, rate_multiplier, | ||||
|                            [](u64 fraction, const auto& x0, const auto& x1, const auto& x2) { | ||||
|                                // This is a saturated subtraction. (Verified by black-box fuzzing.)
 | ||||
|                                s64 delta0 = MathUtil::Clamp<s64>(x1[0] - x0[0], -32768, 32767); | ||||
|                                s64 delta1 = MathUtil::Clamp<s64>(x1[1] - x0[1], -32768, 32767); | ||||
| 
 | ||||
|         return std::array<s16, 2>{static_cast<s16>(x0[0] + fraction * delta0 / scale_factor), | ||||
|                                   static_cast<s16>(x0[1] + fraction * delta1 / scale_factor)}; | ||||
|     }); | ||||
|                                return std::array<s16, 2>{ | ||||
|                                    static_cast<s16>(x0[0] + fraction * delta0 / scale_factor), | ||||
|                                    static_cast<s16>(x0[1] + fraction * delta1 / scale_factor), | ||||
|                                }; | ||||
|                            }); | ||||
| } | ||||
| 
 | ||||
| } // namespace AudioInterp
 | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ struct State { | |||
|  * @param input Input buffer. | ||||
|  * @param rate_multiplier Stretch factor. Must be a positive non-zero value. | ||||
|  *                        rate_multiplier > 1.0 performs decimation and rate_multipler < 1.0 | ||||
|  * performs upsampling. | ||||
|  *                        performs upsampling. | ||||
|  * @return The resampled audio buffer. | ||||
|  */ | ||||
| StereoBuffer16 None(State& state, const StereoBuffer16& input, float rate_multiplier); | ||||
|  | @ -35,7 +35,7 @@ StereoBuffer16 None(State& state, const StereoBuffer16& input, float rate_multip | |||
|  * @param input Input buffer. | ||||
|  * @param rate_multiplier Stretch factor. Must be a positive non-zero value. | ||||
|  *                        rate_multiplier > 1.0 performs decimation and rate_multipler < 1.0 | ||||
|  * performs upsampling. | ||||
|  *                        performs upsampling. | ||||
|  * @return The resampled audio buffer. | ||||
|  */ | ||||
| StereoBuffer16 Linear(State& state, const StereoBuffer16& input, float rate_multiplier); | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ public: | |||
|         return native_sample_rate; | ||||
|     } | ||||
| 
 | ||||
|     void EnqueueSamples(const s16*, size_t) override { | ||||
|     } | ||||
|     void EnqueueSamples(const s16*, size_t) override {} | ||||
| 
 | ||||
|     size_t SamplesInQueue() const override { | ||||
|         return 0; | ||||
|  |  | |||
|  | @ -12,8 +12,8 @@ namespace AudioCore { | |||
| 
 | ||||
| /**
 | ||||
|  * This class is an interface for an audio sink. An audio sink accepts samples in stereo signed | ||||
|  * PCM16 format to be output. | ||||
|  * Sinks *do not* handle resampling and expect the correct sample rate. They are dumb outputs. | ||||
|  * PCM16 format to be output. Sinks *do not* handle resampling and expect the correct sample rate. | ||||
|  * They are dumb outputs. | ||||
|  */ | ||||
| class Sink { | ||||
| public: | ||||
|  |  | |||
|  | @ -14,8 +14,7 @@ class Sink; | |||
| 
 | ||||
| struct SinkDetails { | ||||
|     SinkDetails(const char* id_, std::function<std::unique_ptr<Sink>()> factory_) | ||||
|         : id(id_), factory(factory_) { | ||||
|     } | ||||
|         : id(id_), factory(factory_) {} | ||||
| 
 | ||||
|     /// Name for this sink.
 | ||||
|     const char* id; | ||||
|  |  | |||
|  | @ -69,10 +69,12 @@ int main(int argc, char** argv) { | |||
| #endif | ||||
|     std::string boot_filename; | ||||
| 
 | ||||
|     static struct option long_options[] = {{"gdbport", required_argument, 0, 'g'}, | ||||
|                                            {"help", no_argument, 0, 'h'}, | ||||
|                                            {"version", no_argument, 0, 'v'}, | ||||
|                                            {0, 0, 0, 0}}; | ||||
|     static struct option long_options[] = { | ||||
|         {"gdbport", required_argument, 0, 'g'}, | ||||
|         {"help", no_argument, 0, 'h'}, | ||||
|         {"version", no_argument, 0, 'v'}, | ||||
|         {0, 0, 0, 0}, | ||||
|     }; | ||||
| 
 | ||||
|     while (optind < argc) { | ||||
|         char arg = getopt_long(argc, argv, "g:hv", long_options, &option_index); | ||||
|  |  | |||
|  | @ -181,5 +181,6 @@ void EmuWindow_SDL2::ReloadSetKeymaps() { | |||
| 
 | ||||
| void EmuWindow_SDL2::OnMinimalClientAreaChangeRequest( | ||||
|     const std::pair<unsigned, unsigned>& minimal_size) { | ||||
| 
 | ||||
|     SDL_SetWindowMinimumSize(render_window, minimal_size.first, minimal_size.second); | ||||
| } | ||||
|  |  | |||
|  | @ -47,8 +47,8 @@ private: | |||
|     void OnResize(); | ||||
| 
 | ||||
|     /// Called when a configuration change affects the minimal size of the window
 | ||||
|     void | ||||
|     OnMinimalClientAreaChangeRequest(const std::pair<unsigned, unsigned>& minimal_size) override; | ||||
|     void OnMinimalClientAreaChangeRequest( | ||||
|         const std::pair<unsigned, unsigned>& minimal_size) override; | ||||
| 
 | ||||
|     /// Is the window still open?
 | ||||
|     bool is_open = true; | ||||
|  |  | |||
|  | @ -28,8 +28,7 @@ | |||
| #define COPYRIGHT "Copyright (C) 2013-2014 Citra Team" | ||||
| 
 | ||||
| EmuThread::EmuThread(GRenderWindow* render_window) | ||||
|     : exec_step(false), running(false), stop_run(false), render_window(render_window) { | ||||
| } | ||||
|     : exec_step(false), running(false), stop_run(false), render_window(render_window) {} | ||||
| 
 | ||||
| void EmuThread::run() { | ||||
|     render_window->MakeCurrent(); | ||||
|  | @ -84,8 +83,7 @@ void EmuThread::run() { | |||
| class GGLWidgetInternal : public QGLWidget { | ||||
| public: | ||||
|     GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) | ||||
|         : QGLWidget(fmt, parent), parent(parent) { | ||||
|     } | ||||
|         : QGLWidget(fmt, parent), parent(parent) {} | ||||
| 
 | ||||
|     void paintEvent(QPaintEvent* ev) override { | ||||
|         if (do_painting) { | ||||
|  | @ -153,8 +151,7 @@ void GRenderWindow::DoneCurrent() { | |||
|     child->doneCurrent(); | ||||
| } | ||||
| 
 | ||||
| void GRenderWindow::PollEvents() { | ||||
| } | ||||
| void GRenderWindow::PollEvents() {} | ||||
| 
 | ||||
| // On Qt 5.0+, this correctly gets the size of the framebuffer (pixels).
 | ||||
| //
 | ||||
|  | @ -306,8 +303,8 @@ void GRenderWindow::OnEmulationStopping() { | |||
| void GRenderWindow::showEvent(QShowEvent* event) { | ||||
|     QWidget::showEvent(event); | ||||
| 
 | ||||
| // windowHandle() is not initialized until the Window is shown, so we connect it here.
 | ||||
| #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) | ||||
|     // windowHandle() is not initialized until the Window is shown, so we connect it here.
 | ||||
|     connect(this->windowHandle(), SIGNAL(screenChanged(QScreen*)), this, | ||||
|             SLOT(OnFramebufferSizeChanged()), Qt::UniqueConnection); | ||||
| #endif | ||||
|  |  | |||
|  | @ -144,8 +144,8 @@ signals: | |||
|     void Closed(); | ||||
| 
 | ||||
| private: | ||||
|     void | ||||
|     OnMinimalClientAreaChangeRequest(const std::pair<unsigned, unsigned>& minimal_size) override; | ||||
|     void OnMinimalClientAreaChangeRequest( | ||||
|         const std::pair<unsigned, unsigned>& minimal_size) override; | ||||
| 
 | ||||
|     GGLWidgetInternal* child; | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,8 +22,7 @@ ConfigureAudio::ConfigureAudio(QWidget* parent) | |||
|     this->setConfiguration(); | ||||
| } | ||||
| 
 | ||||
| ConfigureAudio::~ConfigureAudio() { | ||||
| } | ||||
| ConfigureAudio::~ConfigureAudio() {} | ||||
| 
 | ||||
| void ConfigureAudio::setConfiguration() { | ||||
|     int new_sink_index = 0; | ||||
|  |  | |||
|  | @ -12,8 +12,7 @@ ConfigureDebug::ConfigureDebug(QWidget* parent) : QWidget(parent), ui(new Ui::Co | |||
|     this->setConfiguration(); | ||||
| } | ||||
| 
 | ||||
| ConfigureDebug::~ConfigureDebug() { | ||||
| } | ||||
| ConfigureDebug::~ConfigureDebug() {} | ||||
| 
 | ||||
| void ConfigureDebug::setConfiguration() { | ||||
|     ui->toggle_gdbstub->setChecked(Settings::values.use_gdbstub); | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "citra_qt/config.h" | ||||
| #include "citra_qt/configure_dialog.h" | ||||
| #include "citra_qt/config.h" | ||||
| #include "ui_configure.h" | ||||
| 
 | ||||
| #include "core/settings.h" | ||||
|  | @ -13,11 +13,9 @@ ConfigureDialog::ConfigureDialog(QWidget* parent) : QDialog(parent), ui(new Ui:: | |||
|     this->setConfiguration(); | ||||
| } | ||||
| 
 | ||||
| ConfigureDialog::~ConfigureDialog() { | ||||
| } | ||||
| ConfigureDialog::~ConfigureDialog() {} | ||||
| 
 | ||||
| void ConfigureDialog::setConfiguration() { | ||||
| } | ||||
| void ConfigureDialog::setConfiguration() {} | ||||
| 
 | ||||
| void ConfigureDialog::applyConfiguration() { | ||||
|     ui->generalTab->applyConfiguration(); | ||||
|  |  | |||
|  | @ -11,14 +11,14 @@ | |||
| 
 | ||||
| ConfigureGeneral::ConfigureGeneral(QWidget* parent) | ||||
|     : QWidget(parent), ui(new Ui::ConfigureGeneral) { | ||||
| 
 | ||||
|     ui->setupUi(this); | ||||
|     this->setConfiguration(); | ||||
| 
 | ||||
|     ui->toggle_cpu_jit->setEnabled(!System::IsPoweredOn()); | ||||
| } | ||||
| 
 | ||||
| ConfigureGeneral::~ConfigureGeneral() { | ||||
| } | ||||
| ConfigureGeneral::~ConfigureGeneral() {} | ||||
| 
 | ||||
| void ConfigureGeneral::setConfiguration() { | ||||
|     ui->toggle_deepscan->setChecked(UISettings::values.gamedir_deepscan); | ||||
|  |  | |||
|  | @ -10,14 +10,14 @@ | |||
| 
 | ||||
| ConfigureGraphics::ConfigureGraphics(QWidget* parent) | ||||
|     : QWidget(parent), ui(new Ui::ConfigureGraphics) { | ||||
| 
 | ||||
|     ui->setupUi(this); | ||||
|     this->setConfiguration(); | ||||
| 
 | ||||
|     ui->toggle_vsync->setEnabled(!System::IsPoweredOn()); | ||||
| } | ||||
| 
 | ||||
| ConfigureGraphics::~ConfigureGraphics() { | ||||
| } | ||||
| ConfigureGraphics::~ConfigureGraphics() {} | ||||
| 
 | ||||
| void ConfigureGraphics::setConfiguration() { | ||||
|     ui->toggle_hw_renderer->setChecked(Settings::values.use_hw_renderer); | ||||
|  |  | |||
|  | @ -10,34 +10,35 @@ | |||
| 
 | ||||
| ConfigureInput::ConfigureInput(QWidget* parent) | ||||
|     : QWidget(parent), ui(std::make_unique<Ui::ConfigureInput>()) { | ||||
| 
 | ||||
|     ui->setupUi(this); | ||||
| 
 | ||||
|     // Initialize mapping of input enum to UI button.
 | ||||
|     input_mapping = { | ||||
|         {std::make_pair(Settings::NativeInput::Values::A, ui->buttonA)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::B, ui->buttonB)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::X, ui->buttonX)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::Y, ui->buttonY)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::L, ui->buttonL)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::R, ui->buttonR)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::ZL, ui->buttonZL)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::ZR, ui->buttonZR)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::START, ui->buttonStart)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::SELECT, ui->buttonSelect)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::HOME, ui->buttonHome)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::DUP, ui->buttonDpadUp)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::DDOWN, ui->buttonDpadDown)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::DLEFT, ui->buttonDpadLeft)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::DRIGHT, ui->buttonDpadRight)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CUP, ui->buttonCStickUp)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CDOWN, ui->buttonCStickDown)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CLEFT, ui->buttonCStickLeft)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CRIGHT, ui->buttonCStickRight)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CIRCLE_UP, ui->buttonCircleUp)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CIRCLE_DOWN, ui->buttonCircleDown)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CIRCLE_LEFT, ui->buttonCircleLeft)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CIRCLE_RIGHT, ui->buttonCircleRight)}, | ||||
|         {std::make_pair(Settings::NativeInput::Values::CIRCLE_MODIFIER, ui->buttonCircleMod)}, | ||||
|         {Settings::NativeInput::Values::A, ui->buttonA}, | ||||
|         {Settings::NativeInput::Values::B, ui->buttonB}, | ||||
|         {Settings::NativeInput::Values::X, ui->buttonX}, | ||||
|         {Settings::NativeInput::Values::Y, ui->buttonY}, | ||||
|         {Settings::NativeInput::Values::L, ui->buttonL}, | ||||
|         {Settings::NativeInput::Values::R, ui->buttonR}, | ||||
|         {Settings::NativeInput::Values::ZL, ui->buttonZL}, | ||||
|         {Settings::NativeInput::Values::ZR, ui->buttonZR}, | ||||
|         {Settings::NativeInput::Values::START, ui->buttonStart}, | ||||
|         {Settings::NativeInput::Values::SELECT, ui->buttonSelect}, | ||||
|         {Settings::NativeInput::Values::HOME, ui->buttonHome}, | ||||
|         {Settings::NativeInput::Values::DUP, ui->buttonDpadUp}, | ||||
|         {Settings::NativeInput::Values::DDOWN, ui->buttonDpadDown}, | ||||
|         {Settings::NativeInput::Values::DLEFT, ui->buttonDpadLeft}, | ||||
|         {Settings::NativeInput::Values::DRIGHT, ui->buttonDpadRight}, | ||||
|         {Settings::NativeInput::Values::CUP, ui->buttonCStickUp}, | ||||
|         {Settings::NativeInput::Values::CDOWN, ui->buttonCStickDown}, | ||||
|         {Settings::NativeInput::Values::CLEFT, ui->buttonCStickLeft}, | ||||
|         {Settings::NativeInput::Values::CRIGHT, ui->buttonCStickRight}, | ||||
|         {Settings::NativeInput::Values::CIRCLE_UP, ui->buttonCircleUp}, | ||||
|         {Settings::NativeInput::Values::CIRCLE_DOWN, ui->buttonCircleDown}, | ||||
|         {Settings::NativeInput::Values::CIRCLE_LEFT, ui->buttonCircleLeft}, | ||||
|         {Settings::NativeInput::Values::CIRCLE_RIGHT, ui->buttonCircleRight}, | ||||
|         {Settings::NativeInput::Values::CIRCLE_MODIFIER, ui->buttonCircleMod}, | ||||
|     }; | ||||
| 
 | ||||
|     // Attach handle click method to each button click.
 | ||||
|  |  | |||
|  | @ -10,7 +10,9 @@ | |||
| #include "core/hle/service/fs/archive.h" | ||||
| #include "core/system.h" | ||||
| 
 | ||||
| static const std::array<int, 12> days_in_month = {{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; | ||||
| static const std::array<int, 12> days_in_month = {{ | ||||
|     31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, | ||||
| }}; | ||||
| 
 | ||||
| ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) { | ||||
|     ui->setupUi(this); | ||||
|  | @ -20,8 +22,7 @@ ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui:: | |||
|     this->setConfiguration(); | ||||
| } | ||||
| 
 | ||||
| ConfigureSystem::~ConfigureSystem() { | ||||
| } | ||||
| ConfigureSystem::~ConfigureSystem() {} | ||||
| 
 | ||||
| void ConfigureSystem::setConfiguration() { | ||||
|     enabled = !System::IsPoweredOn(); | ||||
|  | @ -51,8 +52,8 @@ void ConfigureSystem::setConfiguration() { | |||
| void ConfigureSystem::ReadSystemSettings() { | ||||
|     // set username
 | ||||
|     username = Service::CFG::GetUsername(); | ||||
|     // ui->edit_username->setText(QString::fromStdU16String(username)); // TODO(wwylele): Use this
 | ||||
|     // when we move to Qt 5.5
 | ||||
|     // TODO(wwylele): Use this when we move to Qt 5.5
 | ||||
|     // ui->edit_username->setText(QString::fromStdU16String(username));
 | ||||
|     ui->edit_username->setText( | ||||
|         QString::fromUtf16(reinterpret_cast<const ushort*>(username.data()))); | ||||
| 
 | ||||
|  | @ -80,8 +81,8 @@ void ConfigureSystem::applyConfiguration() { | |||
|     bool modified = false; | ||||
| 
 | ||||
|     // apply username
 | ||||
|     // std::u16string new_username = ui->edit_username->text().toStdU16String(); // TODO(wwylele):
 | ||||
|     // Use this when we move to Qt 5.5
 | ||||
|     // TODO(wwylele): Use this when we move to Qt 5.5
 | ||||
|     // std::u16string new_username = ui->edit_username->text().toStdU16String();
 | ||||
|     std::u16string new_username( | ||||
|         reinterpret_cast<const char16_t*>(ui->edit_username->text().utf16())); | ||||
|     if (new_username != username) { | ||||
|  |  | |||
|  | @ -78,8 +78,7 @@ void CallstackWidget::OnDebugModeEntered() { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| void CallstackWidget::OnDebugModeLeft() { | ||||
| } | ||||
| void CallstackWidget::OnDebugModeLeft() {} | ||||
| 
 | ||||
| void CallstackWidget::Clear() { | ||||
|     for (int row = 0; row < callstack_model->rowCount(); row++) { | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ | |||
| 
 | ||||
| DisassemblerModel::DisassemblerModel(QObject* parent) | ||||
|     : QAbstractListModel(parent), base_address(0), code_size(0), program_counter(0), | ||||
|       selection(QModelIndex()) { | ||||
| } | ||||
|       selection(QModelIndex()) {} | ||||
| 
 | ||||
| int DisassemblerModel::columnCount(const QModelIndex& parent) const { | ||||
|     return 3; | ||||
|  | @ -241,8 +240,7 @@ void DisassemblerWidget::OnDebugModeEntered() { | |||
|         model_index, QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); | ||||
| } | ||||
| 
 | ||||
| void DisassemblerWidget::OnDebugModeLeft() { | ||||
| } | ||||
| void DisassemblerWidget::OnDebugModeLeft() {} | ||||
| 
 | ||||
| int DisassemblerWidget::SelectedRow() { | ||||
|     QModelIndex index = disasm_ui.treeView->selectionModel()->currentIndex(); | ||||
|  |  | |||
|  | @ -16,8 +16,7 @@ | |||
| BreakPointModel::BreakPointModel(std::shared_ptr<Pica::DebugContext> debug_context, QObject* parent) | ||||
|     : QAbstractListModel(parent), context_weak(debug_context), | ||||
|       at_breakpoint(debug_context->at_breakpoint), | ||||
|       active_breakpoint(debug_context->active_breakpoint) { | ||||
| } | ||||
|       active_breakpoint(debug_context->active_breakpoint) {} | ||||
| 
 | ||||
| int BreakPointModel::columnCount(const QModelIndex& parent) const { | ||||
|     return 1; | ||||
|  | @ -42,7 +41,8 @@ QVariant BreakPointModel::data(const QModelIndex& index, int role) const { | |||
|                 {Pica::DebugContext::Event::IncomingDisplayTransfer, | ||||
|                  tr("Incoming display transfer")}, | ||||
|                 {Pica::DebugContext::Event::GSPCommandProcessed, tr("GSP command processed")}, | ||||
|                 {Pica::DebugContext::Event::BufferSwapped, tr("Buffers swapped")}}; | ||||
|                 {Pica::DebugContext::Event::BufferSwapped, tr("Buffers swapped")}, | ||||
|             }; | ||||
| 
 | ||||
|             DEBUG_ASSERT(map.size() == static_cast<size_t>(Pica::DebugContext::Event::NumEvents)); | ||||
|             return (map.find(event) != map.end()) ? map.at(event) : QString(); | ||||
|  |  | |||
|  | @ -51,8 +51,7 @@ public: | |||
|     } | ||||
| }; | ||||
| 
 | ||||
| GPUCommandListModel::GPUCommandListModel(QObject* parent) : QAbstractListModel(parent) { | ||||
| } | ||||
| GPUCommandListModel::GPUCommandListModel(QObject* parent) : QAbstractListModel(parent) {} | ||||
| 
 | ||||
| int GPUCommandListModel::rowCount(const QModelIndex& parent) const { | ||||
|     return static_cast<int>(pica_trace.writes.size()); | ||||
|  |  | |||
|  | @ -25,10 +25,8 @@ | |||
| #include "video_core/utils.h" | ||||
| 
 | ||||
| SurfacePicture::SurfacePicture(QWidget* parent, GraphicsSurfaceWidget* surface_widget_) | ||||
|     : QLabel(parent), surface_widget(surface_widget_) { | ||||
| } | ||||
| SurfacePicture::~SurfacePicture() { | ||||
| } | ||||
|     : QLabel(parent), surface_widget(surface_widget_) {} | ||||
| SurfacePicture::~SurfacePicture() {} | ||||
| 
 | ||||
| void SurfacePicture::mousePressEvent(QMouseEvent* event) { | ||||
|     // Only do something while the left mouse button is held down
 | ||||
|  | @ -707,9 +705,8 @@ unsigned int GraphicsSurfaceWidget::NibblesPerPixel(GraphicsSurfaceWidget::Forma | |||
|     case Format::D16: | ||||
|         return 2 * 2; | ||||
|     default: | ||||
|         UNREACHABLE_MSG("GraphicsSurfaceWidget::BytesPerPixel: this " | ||||
|                         "should not be reached as this function should " | ||||
|                         "be given a format which is in " | ||||
|         UNREACHABLE_MSG("GraphicsSurfaceWidget::BytesPerPixel: this should not be reached as this " | ||||
|                         "function should be given a format which is in " | ||||
|                         "GraphicsSurfaceWidget::Format. Instead got %i", | ||||
|                         static_cast<int>(format)); | ||||
|         return 0; | ||||
|  |  | |||
|  | @ -29,8 +29,7 @@ using nihstro::SourceRegister; | |||
| using nihstro::SwizzlePattern; | ||||
| 
 | ||||
| GraphicsVertexShaderModel::GraphicsVertexShaderModel(GraphicsVertexShaderWidget* parent) | ||||
|     : QAbstractTableModel(parent), par(parent) { | ||||
| } | ||||
|     : QAbstractTableModel(parent), par(parent) {} | ||||
| 
 | ||||
| int GraphicsVertexShaderModel::columnCount(const QModelIndex& parent) const { | ||||
|     return 3; | ||||
|  |  | |||
|  | @ -4,8 +4,7 @@ | |||
| 
 | ||||
| #include "citra_qt/debugger/ramview.h" | ||||
| 
 | ||||
| GRamView::GRamView(QWidget* parent) : QHexEdit(parent) { | ||||
| } | ||||
| GRamView::GRamView(QWidget* parent) : QHexEdit(parent) {} | ||||
| 
 | ||||
| void GRamView::OnCPUStepped() { | ||||
|     // TODO: QHexEdit doesn't show vertical scroll bars for > 10MB data streams...
 | ||||
|  |  | |||
|  | @ -75,8 +75,7 @@ void RegistersWidget::OnDebugModeEntered() { | |||
|     UpdateVFPSystemRegisterValues(); | ||||
| } | ||||
| 
 | ||||
| void RegistersWidget::OnDebugModeLeft() { | ||||
| } | ||||
| void RegistersWidget::OnDebugModeLeft() {} | ||||
| 
 | ||||
| void RegistersWidget::OnEmulationStarting(EmuThread* emu_thread) { | ||||
|     setEnabled(true); | ||||
|  |  | |||
|  | @ -59,12 +59,9 @@ static QString GetQStringShortTitleFromSMDH(const Loader::SMDH& smdh, | |||
| class GameListItem : public QStandardItem { | ||||
| 
 | ||||
| public: | ||||
|     GameListItem() : QStandardItem() { | ||||
|     } | ||||
|     GameListItem(const QString& string) : QStandardItem(string) { | ||||
|     } | ||||
|     virtual ~GameListItem() override { | ||||
|     } | ||||
|     GameListItem() : QStandardItem() {} | ||||
|     GameListItem(const QString& string) : QStandardItem(string) {} | ||||
|     virtual ~GameListItem() override {} | ||||
| }; | ||||
| 
 | ||||
| /**
 | ||||
|  | @ -79,8 +76,7 @@ public: | |||
|     static const int FullPathRole = Qt::UserRole + 1; | ||||
|     static const int TitleRole = Qt::UserRole + 2; | ||||
| 
 | ||||
|     GameListItemPath() : GameListItem() { | ||||
|     } | ||||
|     GameListItemPath() : GameListItem() {} | ||||
|     GameListItemPath(const QString& game_path, const std::vector<u8>& smdh_data) : GameListItem() { | ||||
|         setData(game_path, FullPathRole); | ||||
| 
 | ||||
|  | @ -124,8 +120,7 @@ class GameListItemSize : public GameListItem { | |||
| public: | ||||
|     static const int SizeRole = Qt::UserRole + 1; | ||||
| 
 | ||||
|     GameListItemSize() : GameListItem() { | ||||
|     } | ||||
|     GameListItemSize() : GameListItem() {} | ||||
|     GameListItemSize(const qulonglong size_bytes) : GameListItem() { | ||||
|         setData(size_bytes, SizeRole); | ||||
|     } | ||||
|  | @ -161,8 +156,7 @@ class GameListWorker : public QObject, public QRunnable { | |||
| 
 | ||||
| public: | ||||
|     GameListWorker(QString dir_path, bool deep_scan) | ||||
|         : QObject(), QRunnable(), dir_path(dir_path), deep_scan(deep_scan) { | ||||
|     } | ||||
|         : QObject(), QRunnable(), dir_path(dir_path), deep_scan(deep_scan) {} | ||||
| 
 | ||||
| public slots: | ||||
|     /// Starts the processing of directory tree information.
 | ||||
|  |  | |||
|  | @ -12,8 +12,7 @@ | |||
| #include "citra_qt/ui_settings.h" | ||||
| 
 | ||||
| struct Hotkey { | ||||
|     Hotkey() : shortcut(nullptr), context(Qt::WindowShortcut) { | ||||
|     } | ||||
|     Hotkey() : shortcut(nullptr), context(Qt::WindowShortcut) {} | ||||
| 
 | ||||
|     QKeySequence keyseq; | ||||
|     QShortcut* shortcut; | ||||
|  |  | |||
|  | @ -26,8 +26,8 @@ class GPUCommandListWidget; | |||
| class GMainWindow : public QMainWindow { | ||||
|     Q_OBJECT | ||||
| 
 | ||||
|     static const int max_recent_files_item = | ||||
|         10; ///< Max number of recently loaded items to keep track
 | ||||
|     /// Max number of recently loaded items to keep track of
 | ||||
|     static const int max_recent_files_item = 10; | ||||
| 
 | ||||
|     // TODO: Make use of this!
 | ||||
|     enum { | ||||
|  |  | |||
|  | @ -102,10 +102,8 @@ public: | |||
|     // A reference to a particular bit, returned from operator[].
 | ||||
|     class Ref { | ||||
|     public: | ||||
|         Ref(Ref&& other) : m_bs(other.m_bs), m_mask(other.m_mask) { | ||||
|         } | ||||
|         Ref(BitSet* bs, IntTy mask) : m_bs(bs), m_mask(mask) { | ||||
|         } | ||||
|         Ref(Ref&& other) : m_bs(other.m_bs), m_mask(other.m_mask) {} | ||||
|         Ref(BitSet* bs, IntTy mask) : m_bs(bs), m_mask(mask) {} | ||||
|         operator bool() const { | ||||
|             return (m_bs->m_val & m_mask) != 0; | ||||
|         } | ||||
|  | @ -122,10 +120,8 @@ public: | |||
|     // A STL-like iterator is required to be able to use range-based for loops.
 | ||||
|     class Iterator { | ||||
|     public: | ||||
|         Iterator(const Iterator& other) : m_val(other.m_val), m_bit(other.m_bit) { | ||||
|         } | ||||
|         Iterator(IntTy val, int bit) : m_val(val), m_bit(bit) { | ||||
|         } | ||||
|         Iterator(const Iterator& other) : m_val(other.m_val), m_bit(other.m_bit) {} | ||||
|         Iterator(IntTy val, int bit) : m_val(val), m_bit(bit) {} | ||||
|         Iterator& operator=(Iterator other) { | ||||
|             new (this) Iterator(other); | ||||
|             return *this; | ||||
|  | @ -160,10 +156,8 @@ public: | |||
|         int m_bit; | ||||
|     }; | ||||
| 
 | ||||
|     BitSet() : m_val(0) { | ||||
|     } | ||||
|     explicit BitSet(IntTy val) : m_val(val) { | ||||
|     } | ||||
|     BitSet() : m_val(0) {} | ||||
|     explicit BitSet(IntTy val) : m_val(val) {} | ||||
|     BitSet(std::initializer_list<int> init) { | ||||
|         m_val = 0; | ||||
|         for (int bit : init) | ||||
|  |  | |||
|  | @ -50,8 +50,7 @@ class PointerWrap; | |||
| class PointerWrapSection { | ||||
| public: | ||||
|     PointerWrapSection(PointerWrap& p, int ver, const char* title) | ||||
|         : p_(p), ver_(ver), title_(title) { | ||||
|     } | ||||
|         : p_(p), ver_(ver), title_(title) {} | ||||
|     ~PointerWrapSection(); | ||||
| 
 | ||||
|     bool operator==(const int& v) const { | ||||
|  | @ -134,11 +133,9 @@ public: | |||
|     Error error; | ||||
| 
 | ||||
| public: | ||||
|     PointerWrap(u8** ptr_, Mode mode_) : ptr(ptr_), mode(mode_), error(ERROR_NONE) { | ||||
|     } | ||||
|     PointerWrap(u8** ptr_, Mode mode_) : ptr(ptr_), mode(mode_), error(ERROR_NONE) {} | ||||
|     PointerWrap(unsigned char** ptr_, int mode_) | ||||
|         : ptr((u8**)ptr_), mode((Mode)mode_), error(ERROR_NONE) { | ||||
|     } | ||||
|         : ptr((u8**)ptr_), mode((Mode)mode_), error(ERROR_NONE) {} | ||||
| 
 | ||||
|     PointerWrapSection Section(const char* title, int ver) { | ||||
|         return Section(title, ver, ver); | ||||
|  |  | |||
|  | @ -27,8 +27,7 @@ protected: | |||
|     size_t region_size; | ||||
| 
 | ||||
| public: | ||||
|     CodeBlock() : region(nullptr), region_size(0) { | ||||
|     } | ||||
|     CodeBlock() : region(nullptr), region_size(0) {} | ||||
|     virtual ~CodeBlock() { | ||||
|         if (region) | ||||
|             FreeCodeSpace(); | ||||
|  |  | |||
|  | @ -86,8 +86,7 @@ inline u64 _rotr64(u64 x, unsigned int shift) { | |||
| extern "C" { | ||||
| __declspec(dllimport) void __stdcall DebugBreak(void); | ||||
| } | ||||
| #define Crash()                                                                                    \ | ||||
|     { DebugBreak(); } | ||||
| #define Crash() DebugBreak() | ||||
| 
 | ||||
| // cstdlib provides these on MSVC
 | ||||
| #define rotr _rotr | ||||
|  |  | |||
|  | @ -229,8 +229,7 @@ protected: | |||
|         circle_pad_y = 0; | ||||
|         touch_pressed = false; | ||||
|     } | ||||
|     virtual ~EmuWindow() { | ||||
|     } | ||||
|     virtual ~EmuWindow() {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Processes any pending configuration changes from the last SetConfig call. | ||||
|  | @ -272,8 +271,8 @@ private: | |||
|      * For the request to be honored, EmuWindow implementations will usually reimplement this | ||||
|      * function. | ||||
|      */ | ||||
|     virtual void | ||||
|     OnMinimalClientAreaChangeRequest(const std::pair<unsigned, unsigned>& minimal_size) { | ||||
|     virtual void OnMinimalClientAreaChangeRequest( | ||||
|         const std::pair<unsigned, unsigned>& minimal_size) { | ||||
|         // By default, ignore this request and do nothing.
 | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -828,8 +828,7 @@ void SplitFilename83(const std::string& filename, std::array<char, 9>& short_nam | |||
|     } | ||||
| } | ||||
| 
 | ||||
| IOFile::IOFile() { | ||||
| } | ||||
| IOFile::IOFile() {} | ||||
| 
 | ||||
| IOFile::IOFile(const std::string& filename, const char openmode[]) { | ||||
|     Open(filename, openmode); | ||||
|  |  | |||
|  | @ -27,12 +27,10 @@ struct Rectangle { | |||
|     T right; | ||||
|     T bottom; | ||||
| 
 | ||||
|     Rectangle() { | ||||
|     } | ||||
|     Rectangle() {} | ||||
| 
 | ||||
|     Rectangle(T left, T top, T right, T bottom) | ||||
|         : left(left), top(top), right(right), bottom(bottom) { | ||||
|     } | ||||
|         : left(left), top(top), right(right), bottom(bottom) {} | ||||
| 
 | ||||
|     T GetWidth() const { | ||||
|         return std::abs(static_cast<typename std::make_signed<T>::type>(right - left)); | ||||
|  |  | |||
|  | @ -14,8 +14,7 @@ namespace Common { | |||
| namespace Profiling { | ||||
| 
 | ||||
| ProfilingManager::ProfilingManager() | ||||
|     : last_frame_end(Clock::now()), this_frame_start(Clock::now()) { | ||||
| } | ||||
|     : last_frame_end(Clock::now()), this_frame_start(Clock::now()) {} | ||||
| 
 | ||||
| void ProfilingManager::BeginFrame() { | ||||
|     this_frame_start = Clock::now(); | ||||
|  |  | |||
|  | @ -10,8 +10,7 @@ | |||
| namespace detail { | ||||
| template <typename Func> | ||||
| struct ScopeExitHelper { | ||||
|     explicit ScopeExitHelper(Func&& func) : func(std::move(func)) { | ||||
|     } | ||||
|     explicit ScopeExitHelper(Func&& func) : func(std::move(func)) {} | ||||
|     ~ScopeExitHelper() { | ||||
|         func(); | ||||
|     } | ||||
|  |  | |||
|  | @ -168,8 +168,7 @@ public: | |||
|         return swap(value); | ||||
|     } | ||||
|     swap_struct_t() = default; | ||||
|     swap_struct_t(const T& v) : value(swap(v)) { | ||||
|     } | ||||
|     swap_struct_t(const T& v) : value(swap(v)) {} | ||||
| 
 | ||||
|     template <typename S> | ||||
|     swapped_t& operator=(const S& source) { | ||||
|  |  | |||
|  | @ -19,8 +19,7 @@ template <typename T> | |||
| class SynchronizedWrapper { | ||||
| public: | ||||
|     template <typename... Args> | ||||
|     SynchronizedWrapper(Args&&... args) : data(std::forward<Args>(args)...) { | ||||
|     } | ||||
|     SynchronizedWrapper(Args&&... args) : data(std::forward<Args>(args)...) {} | ||||
| 
 | ||||
| private: | ||||
|     template <typename U> | ||||
|  |  | |||
|  | @ -39,8 +39,7 @@ void SetCurrentThreadAffinity(u32 mask); | |||
| 
 | ||||
| class Event { | ||||
| public: | ||||
|     Event() : is_set(false) { | ||||
|     } | ||||
|     Event() : is_set(false) {} | ||||
| 
 | ||||
|     void Set() { | ||||
|         std::lock_guard<std::mutex> lk(mutex); | ||||
|  | @ -71,8 +70,7 @@ private: | |||
| 
 | ||||
| class Barrier { | ||||
| public: | ||||
|     explicit Barrier(size_t count_) : count(count_), waiting(0), generation(0) { | ||||
|     } | ||||
|     explicit Barrier(size_t count_) : count(count_), waiting(0), generation(0) {} | ||||
| 
 | ||||
|     /// Blocks until all "count" threads have called Sync()
 | ||||
|     void Sync() { | ||||
|  |  | |||
|  | @ -60,10 +60,8 @@ public: | |||
|     } | ||||
| 
 | ||||
|     Vec2() = default; | ||||
|     Vec2(const T a[2]) : x(a[0]), y(a[1]) { | ||||
|     } | ||||
|     Vec2(const T& _x, const T& _y) : x(_x), y(_y) { | ||||
|     } | ||||
|     Vec2(const T a[2]) : x(a[0]), y(a[1]) {} | ||||
|     Vec2(const T& _x, const T& _y) : x(_x), y(_y) {} | ||||
| 
 | ||||
|     template <typename T2> | ||||
|     Vec2<T2> Cast() const { | ||||
|  | @ -201,10 +199,8 @@ public: | |||
|     } | ||||
| 
 | ||||
|     Vec3() = default; | ||||
|     Vec3(const T a[3]) : x(a[0]), y(a[1]), z(a[2]) { | ||||
|     } | ||||
|     Vec3(const T& _x, const T& _y, const T& _z) : x(_x), y(_y), z(_z) { | ||||
|     } | ||||
|     Vec3(const T a[3]) : x(a[0]), y(a[1]), z(a[2]) {} | ||||
|     Vec3(const T& _x, const T& _y, const T& _z) : x(_x), y(_y), z(_z) {} | ||||
| 
 | ||||
|     template <typename T2> | ||||
|     Vec3<T2> Cast() const { | ||||
|  | @ -409,10 +405,8 @@ public: | |||
|     } | ||||
| 
 | ||||
|     Vec4() = default; | ||||
|     Vec4(const T a[4]) : x(a[0]), y(a[1]), z(a[2]), w(a[3]) { | ||||
|     } | ||||
|     Vec4(const T& _x, const T& _y, const T& _z, const T& _w) : x(_x), y(_y), z(_z), w(_w) { | ||||
|     } | ||||
|     Vec4(const T a[4]) : x(a[0]), y(a[1]), z(a[2]), w(a[3]) {} | ||||
|     Vec4(const T& _x, const T& _y, const T& _z, const T& _w) : x(_x), y(_y), z(_z), w(_w) {} | ||||
| 
 | ||||
|     template <typename T2> | ||||
|     Vec4<T2> Cast() const { | ||||
|  |  | |||
|  | @ -222,7 +222,7 @@ void OpArg::WriteVex(XEmitter* emit, X64Reg regOp1, X64Reg regOp2, int L, int pp | |||
| void OpArg::WriteRest(XEmitter* emit, int extraBytes, X64Reg _operandReg, | ||||
|                       bool warn_64bit_offset) const { | ||||
|     if (_operandReg == INVALID_REG) | ||||
|         _operandReg = (X64Reg) this->operandReg; | ||||
|         _operandReg = (X64Reg)this->operandReg; | ||||
|     int mod = 0; | ||||
|     int ireg = indexReg; | ||||
|     bool SIB = false; | ||||
|  |  | |||
|  | @ -233,8 +233,7 @@ struct OpArg { | |||
|     constexpr OpArg() = default; // dummy op arg, used for storage
 | ||||
|     constexpr OpArg(u64 offset_, int scale_, X64Reg rmReg = RAX, X64Reg scaledReg = RAX) | ||||
|         : scale(static_cast<u8>(scale_)), offsetOrBaseReg(static_cast<u16>(rmReg)), | ||||
|           indexReg(static_cast<u16>(scaledReg)), offset(offset_) { | ||||
|     } | ||||
|           indexReg(static_cast<u16>(scaledReg)), offset(offset_) {} | ||||
| 
 | ||||
|     constexpr bool operator==(const OpArg& b) const { | ||||
|         return operandReg == b.operandReg && scale == b.scale && | ||||
|  | @ -454,8 +453,7 @@ public: | |||
|         code = code_ptr; | ||||
|         flags_locked = false; | ||||
|     } | ||||
|     virtual ~XEmitter() { | ||||
|     } | ||||
|     virtual ~XEmitter() {} | ||||
| 
 | ||||
|     void WriteModRM(int mod, int rm, int reg); | ||||
|     void WriteSIB(int scale, int index, int base); | ||||
|  |  | |||
|  | @ -15,8 +15,7 @@ struct ThreadContext; | |||
| /// Generic ARM11 CPU interface
 | ||||
| class ARM_Interface : NonCopyable { | ||||
| public: | ||||
|     virtual ~ARM_Interface() { | ||||
|     } | ||||
|     virtual ~ARM_Interface() {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Runs the CPU for the given number of instructions | ||||
|  |  | |||
|  | @ -21,8 +21,7 @@ ARM_DynCom::ARM_DynCom(PrivilegeMode initial_mode) { | |||
|     state = std::make_unique<ARMul_State>(initial_mode); | ||||
| } | ||||
| 
 | ||||
| ARM_DynCom::~ARM_DynCom() { | ||||
| } | ||||
| ARM_DynCom::~ARM_DynCom() {} | ||||
| 
 | ||||
| void ARM_DynCom::ClearInstructionCache() { | ||||
|     state->instruction_cache.clear(); | ||||
|  |  | |||
|  | @ -1883,6 +1883,7 @@ const transop_fp_t arm_instruction_trans[] = { | |||
|     // All the thumb instructions should be placed the end of table
 | ||||
|     INTERPRETER_TRANSLATE(b_2_thumb), INTERPRETER_TRANSLATE(b_cond_thumb), | ||||
|     INTERPRETER_TRANSLATE(bl_1_thumb), INTERPRETER_TRANSLATE(bl_2_thumb), | ||||
|     INTERPRETER_TRANSLATE(blx_1_thumb)}; | ||||
|     INTERPRETER_TRANSLATE(blx_1_thumb), | ||||
| }; | ||||
| 
 | ||||
| const size_t arm_instruction_trans_len = sizeof(arm_instruction_trans) / sizeof(transop_fp_t); | ||||
|  |  | |||
|  | @ -237,10 +237,8 @@ private: | |||
|     void ResetMPCoreCP15Registers(); | ||||
| 
 | ||||
|     // Defines a reservation granule of 2 words, which protects the first 2 words starting at the
 | ||||
|     // tag.
 | ||||
|     // This is the smallest granule allowed by the v7 spec, and is coincidentally just large enough
 | ||||
|     // to
 | ||||
|     // support LDR/STREXD.
 | ||||
|     // tag. This is the smallest granule allowed by the v7 spec, and is coincidentally just large
 | ||||
|     // enough to support LDR/STREXD.
 | ||||
|     static const u32 RESERVATION_GRANULE_MASK = 0xFFFFFFF8; | ||||
| 
 | ||||
|     u32 exclusive_tag; // The address for which the local monitor is in exclusive access mode
 | ||||
|  |  | |||
|  | @ -51,10 +51,10 @@ | |||
|  * =========================================================================== | ||||
|  */ | ||||
| 
 | ||||
| #include "core/arm/skyeye_common/vfp/vfp.h" | ||||
| #include <algorithm> | ||||
| #include "common/logging/log.h" | ||||
| #include "core/arm/skyeye_common/vfp/asm_vfp.h" | ||||
| #include "core/arm/skyeye_common/vfp/vfp.h" | ||||
| #include "core/arm/skyeye_common/vfp/vfp_helper.h" | ||||
| 
 | ||||
| static struct vfp_double vfp_double_default_qnan = { | ||||
|  |  | |||
|  | @ -280,13 +280,15 @@ static u32 vfp_single_fneg(ARMul_State* state, int sd, int unused, s32 m, u32 fp | |||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| static const u16 sqrt_oddadjust[] = {0x0004, 0x0022, 0x005d, 0x00b1, 0x011d, 0x019f, | ||||
|                                      0x0236, 0x02e0, 0x039c, 0x0468, 0x0545, 0x0631, | ||||
|                                      0x072b, 0x0832, 0x0946, 0x0a67}; | ||||
| static const u16 sqrt_oddadjust[] = { | ||||
|     0x0004, 0x0022, 0x005d, 0x00b1, 0x011d, 0x019f, 0x0236, 0x02e0, | ||||
|     0x039c, 0x0468, 0x0545, 0x0631, 0x072b, 0x0832, 0x0946, 0x0a67, | ||||
| }; | ||||
| 
 | ||||
| static const u16 sqrt_evenadjust[] = {0x0a2d, 0x08af, 0x075a, 0x0629, 0x051a, 0x0429, | ||||
|                                       0x0356, 0x029e, 0x0200, 0x0179, 0x0109, 0x00af, | ||||
|                                       0x0068, 0x0034, 0x0012, 0x0002}; | ||||
| static const u16 sqrt_evenadjust[] = { | ||||
|     0x0a2d, 0x08af, 0x075a, 0x0629, 0x051a, 0x0429, 0x0356, 0x029e, | ||||
|     0x0200, 0x0179, 0x0109, 0x00af, 0x0068, 0x0034, 0x0012, 0x0002, | ||||
| }; | ||||
| 
 | ||||
| u32 vfp_estimate_sqrt_significand(u32 exponent, u32 significand) { | ||||
|     int index; | ||||
|  |  | |||
|  | @ -28,8 +28,7 @@ void RunLoop(int tight_loop) { | |||
|         GDBStub::HandlePacket(); | ||||
| 
 | ||||
|         // If the loop is halted and we want to step, use a tiny (1) number of instructions to
 | ||||
|         // execute.
 | ||||
|         // Otherwise get out of the loop function.
 | ||||
|         // execute. Otherwise, get out of the loop function.
 | ||||
|         if (GDBStub::GetCpuHaltFlag()) { | ||||
|             if (GDBStub::GetCpuStepFlag()) { | ||||
|                 GDBStub::SetCpuStepFlag(false); | ||||
|  |  | |||
|  | @ -23,11 +23,9 @@ int g_clock_rate_arm11 = 268123480; | |||
| 
 | ||||
| namespace CoreTiming { | ||||
| struct EventType { | ||||
|     EventType() { | ||||
|     } | ||||
|     EventType() {} | ||||
| 
 | ||||
|     EventType(TimedCallback cb, const char* n) : callback(cb), name(n) { | ||||
|     } | ||||
|     EventType(TimedCallback cb, const char* n) : callback(cb), name(n) {} | ||||
| 
 | ||||
|     TimedCallback callback; | ||||
|     const char* name; | ||||
|  |  | |||
|  | @ -21,7 +21,13 @@ class FileBackend; | |||
| class DirectoryBackend; | ||||
| 
 | ||||
| // Path string type
 | ||||
| enum LowPathType : u32 { Invalid = 0, Empty = 1, Binary = 2, Char = 3, Wchar = 4 }; | ||||
| enum LowPathType : u32 { | ||||
|     Invalid = 0, | ||||
|     Empty = 1, | ||||
|     Binary = 2, | ||||
|     Char = 3, | ||||
|     Wchar = 4, | ||||
| }; | ||||
| 
 | ||||
| union Mode { | ||||
|     u32 hex; | ||||
|  | @ -32,12 +38,9 @@ union Mode { | |||
| 
 | ||||
| class Path { | ||||
| public: | ||||
|     Path() : type(Invalid) { | ||||
|     } | ||||
|     Path(const char* path) : type(Char), string(path) { | ||||
|     } | ||||
|     Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) { | ||||
|     } | ||||
|     Path() : type(Invalid) {} | ||||
|     Path(const char* path) : type(Char), string(path) {} | ||||
|     Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) {} | ||||
|     Path(LowPathType type, u32 size, u32 pointer); | ||||
| 
 | ||||
|     LowPathType GetType() const { | ||||
|  | @ -61,22 +64,18 @@ private: | |||
|     std::u16string u16str; | ||||
| }; | ||||
| 
 | ||||
| /// Parameters of the archive, as specified in the Create or Format call.
 | ||||
| struct ArchiveFormatInfo { | ||||
|     u32_le total_size; ///< The pre-defined size of the archive, as specified in the Create or
 | ||||
|                        /// Format call
 | ||||
|     u32_le number_directories; ///< The pre-defined number of directories in the archive, as
 | ||||
|                                /// specified in the Create or Format call
 | ||||
|     u32_le number_files; ///< The pre-defined number of files in the archive, as specified in the
 | ||||
|                          /// Create or Format call
 | ||||
|     u8 duplicate_data;   ///< Whether the archive should duplicate the data, as specified in the
 | ||||
|                          /// Create or Format call
 | ||||
|     u32_le total_size;         ///< The pre-defined size of the archive.
 | ||||
|     u32_le number_directories; ///< The pre-defined number of directories in the archive.
 | ||||
|     u32_le number_files;       ///< The pre-defined number of files in the archive.
 | ||||
|     u8 duplicate_data;         ///< Whether the archive should duplicate the data.
 | ||||
| }; | ||||
| static_assert(std::is_pod<ArchiveFormatInfo>::value, "ArchiveFormatInfo is not POD"); | ||||
| 
 | ||||
| class ArchiveBackend : NonCopyable { | ||||
| public: | ||||
|     virtual ~ArchiveBackend() { | ||||
|     } | ||||
|     virtual ~ArchiveBackend() {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Get a descriptive name for the archive (e.g. "RomFS", "SaveData", etc.) | ||||
|  | @ -153,8 +152,7 @@ public: | |||
| 
 | ||||
| class ArchiveFactory : NonCopyable { | ||||
| public: | ||||
|     virtual ~ArchiveFactory() { | ||||
|     } | ||||
|     virtual ~ArchiveFactory() {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Get a descriptive name for the archive (e.g. "RomFS", "SaveData", etc.) | ||||
|  |  | |||
|  | @ -48,11 +48,10 @@ ResultVal<std::unique_ptr<ArchiveBackend>> ArchiveFactory_SaveData::Open(const P | |||
|     std::string concrete_mount_point = | ||||
|         GetSaveDataPath(mount_point, Kernel::g_current_process->codeset->program_id); | ||||
|     if (!FileUtil::Exists(concrete_mount_point)) { | ||||
|         // When a SaveData archive is created for the first time, it is not yet formatted
 | ||||
|         // and the save file/directory structure expected by the game has not yet been initialized.
 | ||||
|         // When a SaveData archive is created for the first time, it is not yet formatted and the
 | ||||
|         // save file/directory structure expected by the game has not yet been initialized.
 | ||||
|         // Returning the NotFormatted error code will signal the game to provision the SaveData
 | ||||
|         // archive
 | ||||
|         // with the files and folders that it expects.
 | ||||
|         // archive with the files and folders that it expects.
 | ||||
|         return ResultCode(ErrorDescription::FS_NotFormatted, ErrorModule::FS, | ||||
|                           ErrorSummary::InvalidState, ErrorLevel::Status); | ||||
|     } | ||||
|  |  | |||
|  | @ -30,8 +30,7 @@ static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high | |||
| } | ||||
| 
 | ||||
| ArchiveFactory_SaveDataCheck::ArchiveFactory_SaveDataCheck(const std::string& nand_directory) | ||||
|     : mount_point(GetSaveDataCheckContainerPath(nand_directory)) { | ||||
| } | ||||
|     : mount_point(GetSaveDataCheckContainerPath(nand_directory)) {} | ||||
| 
 | ||||
| ResultVal<std::unique_ptr<ArchiveBackend>> ArchiveFactory_SaveDataCheck::Open(const Path& path) { | ||||
|     auto vec = path.AsBinary(); | ||||
|  |  | |||
|  | @ -49,8 +49,7 @@ Path ConstructSystemSaveDataBinaryPath(u32 high, u32 low) { | |||
| } | ||||
| 
 | ||||
| ArchiveFactory_SystemSaveData::ArchiveFactory_SystemSaveData(const std::string& nand_path) | ||||
|     : base_path(GetSystemSaveDataContainerPath(nand_path)) { | ||||
| } | ||||
|     : base_path(GetSystemSaveDataContainerPath(nand_path)) {} | ||||
| 
 | ||||
| ResultVal<std::unique_ptr<ArchiveBackend>> ArchiveFactory_SystemSaveData::Open(const Path& path) { | ||||
|     std::string fullpath = GetSystemSaveDataPath(base_path, path); | ||||
|  |  | |||
|  | @ -38,10 +38,8 @@ static_assert(offsetof(Entry, file_size) == 0x220, "Wrong offset for file_size i | |||
| 
 | ||||
| class DirectoryBackend : NonCopyable { | ||||
| public: | ||||
|     DirectoryBackend() { | ||||
|     } | ||||
|     virtual ~DirectoryBackend() { | ||||
|     } | ||||
|     DirectoryBackend() {} | ||||
|     virtual ~DirectoryBackend() {} | ||||
| 
 | ||||
|     /**
 | ||||
|     * Open the directory | ||||
|  |  | |||
|  | @ -29,8 +29,7 @@ namespace FileSys { | |||
|  */ | ||||
| class DiskArchive : public ArchiveBackend { | ||||
| public: | ||||
|     DiskArchive(const std::string& mount_point_) : mount_point(mount_point_) { | ||||
|     } | ||||
|     DiskArchive(const std::string& mount_point_) : mount_point(mount_point_) {} | ||||
| 
 | ||||
|     virtual std::string GetName() const override { | ||||
|         return "DiskArchive: " + mount_point; | ||||
|  |  | |||
|  | @ -16,10 +16,8 @@ namespace FileSys { | |||
| 
 | ||||
| class FileBackend : NonCopyable { | ||||
| public: | ||||
|     FileBackend() { | ||||
|     } | ||||
|     virtual ~FileBackend() { | ||||
|     } | ||||
|     FileBackend() {} | ||||
|     virtual ~FileBackend() {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Open the file | ||||
|  |  | |||
|  | @ -30,8 +30,7 @@ namespace FileSys { | |||
| class IVFCArchive : public ArchiveBackend { | ||||
| public: | ||||
|     IVFCArchive(std::shared_ptr<FileUtil::IOFile> file, u64 offset, u64 size) | ||||
|         : romfs_file(file), data_offset(offset), data_size(size) { | ||||
|     } | ||||
|         : romfs_file(file), data_offset(offset), data_size(size) {} | ||||
| 
 | ||||
|     std::string GetName() const override; | ||||
| 
 | ||||
|  | @ -55,8 +54,7 @@ protected: | |||
| class IVFCFile : public FileBackend { | ||||
| public: | ||||
|     IVFCFile(std::shared_ptr<FileUtil::IOFile> file, u64 offset, u64 size) | ||||
|         : romfs_file(file), data_offset(offset), data_size(size) { | ||||
|     } | ||||
|         : romfs_file(file), data_offset(offset), data_size(size) {} | ||||
| 
 | ||||
|     ResultCode Open() override { | ||||
|         return RESULT_SUCCESS; | ||||
|  | @ -68,8 +66,7 @@ public: | |||
|     bool Close() const override { | ||||
|         return false; | ||||
|     } | ||||
|     void Flush() const override { | ||||
|     } | ||||
|     void Flush() const override {} | ||||
| 
 | ||||
| private: | ||||
|     std::shared_ptr<FileUtil::IOFile> romfs_file; | ||||
|  |  | |||
|  | @ -14,10 +14,8 @@ namespace Applets { | |||
| 
 | ||||
| class Applet { | ||||
| public: | ||||
|     virtual ~Applet() { | ||||
|     } | ||||
|     Applet(Service::APT::AppletId id) : id(id) { | ||||
|     } | ||||
|     virtual ~Applet() {} | ||||
|     Applet(Service::APT::AppletId id) : id(id) {} | ||||
| 
 | ||||
|     /**
 | ||||
|      * Creates an instance of the Applet subclass identified by the parameter. | ||||
|  |  | |||
|  | @ -67,8 +67,7 @@ ResultCode ErrEula::StartImpl(const Service::APT::AppletStartupParameter& parame | |||
|     return RESULT_SUCCESS; | ||||
| } | ||||
| 
 | ||||
| void ErrEula::Update() { | ||||
| } | ||||
| void ErrEula::Update() {} | ||||
| 
 | ||||
| } // namespace Applets
 | ||||
| } // namespace HLE
 | ||||
|  |  | |||
|  | @ -12,8 +12,7 @@ namespace Applets { | |||
| 
 | ||||
| class ErrEula final : public Applet { | ||||
| public: | ||||
|     explicit ErrEula(Service::APT::AppletId id) : Applet(id) { | ||||
|     } | ||||
|     explicit ErrEula(Service::APT::AppletId id) : Applet(id) {} | ||||
| 
 | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|  |  | |||
|  | @ -85,7 +85,6 @@ ResultCode MiiSelector::StartImpl(const Service::APT::AppletStartupParameter& pa | |||
|     return RESULT_SUCCESS; | ||||
| } | ||||
| 
 | ||||
| void MiiSelector::Update() { | ||||
| } | ||||
| void MiiSelector::Update() {} | ||||
| } | ||||
| } // namespace
 | ||||
|  |  | |||
|  | @ -66,8 +66,7 @@ ASSERT_REG_POSITION(unk_6C, 0x6C); | |||
| 
 | ||||
| class MiiSelector final : public Applet { | ||||
| public: | ||||
|     MiiSelector(Service::APT::AppletId id) : Applet(id), started(false) { | ||||
|     } | ||||
|     MiiSelector(Service::APT::AppletId id) : Applet(id), started(false) {} | ||||
| 
 | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|  |  | |||
|  | @ -53,8 +53,7 @@ static_assert(sizeof(SoftwareKeyboardConfig) == 0x400, "Software Keyboard Config | |||
| 
 | ||||
| class SoftwareKeyboard final : public Applet { | ||||
| public: | ||||
|     SoftwareKeyboard(Service::APT::AppletId id) : Applet(id), started(false) { | ||||
|     } | ||||
|     SoftwareKeyboard(Service::APT::AppletId id) : Applet(id), started(false) {} | ||||
| 
 | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|  |  | |||
|  | @ -16,10 +16,8 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| AddressArbiter::AddressArbiter() { | ||||
| } | ||||
| AddressArbiter::~AddressArbiter() { | ||||
| } | ||||
| AddressArbiter::AddressArbiter() {} | ||||
| AddressArbiter::~AddressArbiter() {} | ||||
| 
 | ||||
| SharedPtr<AddressArbiter> AddressArbiter::Create(std::string name) { | ||||
|     SharedPtr<AddressArbiter> address_arbiter(new AddressArbiter); | ||||
|  |  | |||
|  | @ -10,9 +10,7 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| ClientPort::ClientPort() { | ||||
| } | ||||
| ClientPort::~ClientPort() { | ||||
| } | ||||
| ClientPort::ClientPort() {} | ||||
| ClientPort::~ClientPort() {} | ||||
| 
 | ||||
| } // namespace
 | ||||
|  |  | |||
|  | @ -14,10 +14,8 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| Event::Event() { | ||||
| } | ||||
| Event::~Event() { | ||||
| } | ||||
| Event::Event() {} | ||||
| Event::~Event() {} | ||||
| 
 | ||||
| SharedPtr<Event> Event::Create(ResetType reset_type, std::string name) { | ||||
|     SharedPtr<Event> evt(new Event); | ||||
|  |  | |||
|  | @ -58,8 +58,7 @@ enum { | |||
| 
 | ||||
| class Object : NonCopyable { | ||||
| public: | ||||
|     virtual ~Object() { | ||||
|     } | ||||
|     virtual ~Object() {} | ||||
| 
 | ||||
|     /// Returns a unique identifier for the object. For debugging purposes only.
 | ||||
|     unsigned int GetObjectId() const { | ||||
|  |  | |||
|  | @ -33,10 +33,8 @@ void ReleaseThreadMutexes(Thread* thread) { | |||
|     thread->held_mutexes.clear(); | ||||
| } | ||||
| 
 | ||||
| Mutex::Mutex() { | ||||
| } | ||||
| Mutex::~Mutex() { | ||||
| } | ||||
| Mutex::Mutex() {} | ||||
| Mutex::~Mutex() {} | ||||
| 
 | ||||
| SharedPtr<Mutex> Mutex::Create(bool initial_locked, std::string name) { | ||||
|     SharedPtr<Mutex> mutex(new Mutex); | ||||
|  |  | |||
|  | @ -26,10 +26,8 @@ SharedPtr<CodeSet> CodeSet::Create(std::string name, u64 program_id) { | |||
|     return codeset; | ||||
| } | ||||
| 
 | ||||
| CodeSet::CodeSet() { | ||||
| } | ||||
| CodeSet::~CodeSet() { | ||||
| } | ||||
| CodeSet::CodeSet() {} | ||||
| CodeSet::~CodeSet() {} | ||||
| 
 | ||||
| u32 Process::next_process_id; | ||||
| 
 | ||||
|  | @ -282,10 +280,8 @@ ResultCode Process::LinearFree(VAddr target, u32 size) { | |||
|     return RESULT_SUCCESS; | ||||
| } | ||||
| 
 | ||||
| Kernel::Process::Process() { | ||||
| } | ||||
| Kernel::Process::~Process() { | ||||
| } | ||||
| Kernel::Process::Process() {} | ||||
| Kernel::Process::~Process() {} | ||||
| 
 | ||||
| SharedPtr<Process> g_current_process; | ||||
| } | ||||
|  |  | |||
|  | @ -12,10 +12,8 @@ namespace Kernel { | |||
| 
 | ||||
| static SharedPtr<ResourceLimit> resource_limits[4]; | ||||
| 
 | ||||
| ResourceLimit::ResourceLimit() { | ||||
| } | ||||
| ResourceLimit::~ResourceLimit() { | ||||
| } | ||||
| ResourceLimit::ResourceLimit() {} | ||||
| ResourceLimit::~ResourceLimit() {} | ||||
| 
 | ||||
| SharedPtr<ResourceLimit> ResourceLimit::Create(std::string name) { | ||||
|     SharedPtr<ResourceLimit> resource_limit(new ResourceLimit); | ||||
|  | @ -150,7 +148,6 @@ void ResourceLimitsInit() { | |||
|     resource_limits[static_cast<u8>(ResourceLimitCategory::OTHER)] = resource_limit; | ||||
| } | ||||
| 
 | ||||
| void ResourceLimitsShutdown() { | ||||
| } | ||||
| void ResourceLimitsShutdown() {} | ||||
| 
 | ||||
| } // namespace
 | ||||
|  |  | |||
|  | @ -92,8 +92,8 @@ public: | |||
|     s32 max_cpu_time = 0; | ||||
| 
 | ||||
|     // TODO(Subv): Increment these in their respective Kernel::T::Create functions, keeping in mind
 | ||||
|     // that
 | ||||
|     // APPLICATION resource limits should not be affected by the objects created by service modules.
 | ||||
|     // that APPLICATION resource limits should not be affected by the objects created by service
 | ||||
|     // modules.
 | ||||
|     // Currently we have no way of distinguishing if a Create was called by the running application,
 | ||||
|     // or by a service module. Approach this once we have separated the service modules into their
 | ||||
|     // own processes
 | ||||
|  |  | |||
|  | @ -10,10 +10,8 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| Semaphore::Semaphore() { | ||||
| } | ||||
| Semaphore::~Semaphore() { | ||||
| } | ||||
| Semaphore::Semaphore() {} | ||||
| Semaphore::~Semaphore() {} | ||||
| 
 | ||||
| ResultVal<SharedPtr<Semaphore>> Semaphore::Create(s32 initial_count, s32 max_count, | ||||
|                                                   std::string name) { | ||||
|  |  | |||
|  | @ -13,10 +13,8 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| ServerPort::ServerPort() { | ||||
| } | ||||
| ServerPort::~ServerPort() { | ||||
| } | ||||
| ServerPort::ServerPort() {} | ||||
| ServerPort::~ServerPort() {} | ||||
| 
 | ||||
| bool ServerPort::ShouldWait() { | ||||
|     // If there are no pending sessions, we wait until a new one is added.
 | ||||
|  | @ -27,8 +25,9 @@ void ServerPort::Acquire() { | |||
|     ASSERT_MSG(!ShouldWait(), "object unavailable!"); | ||||
| } | ||||
| 
 | ||||
| std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> | ||||
| ServerPort::CreatePortPair(u32 max_sessions, std::string name) { | ||||
| std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> ServerPort::CreatePortPair( | ||||
|     u32 max_sessions, std::string name) { | ||||
| 
 | ||||
|     SharedPtr<ServerPort> server_port(new ServerPort); | ||||
|     SharedPtr<ClientPort> client_port(new ClientPort); | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,8 +23,8 @@ public: | |||
|      * @param name Optional name of the ports | ||||
|      * @return The created port tuple | ||||
|      */ | ||||
|     static std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> | ||||
|     CreatePortPair(u32 max_sessions, std::string name = "UnknownPort"); | ||||
|     static std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> CreatePortPair( | ||||
|         u32 max_sessions, std::string name = "UnknownPort"); | ||||
| 
 | ||||
|     std::string GetTypeName() const override { | ||||
|         return "ServerPort"; | ||||
|  |  | |||
|  | @ -7,8 +7,6 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| Session::Session() { | ||||
| } | ||||
| Session::~Session() { | ||||
| } | ||||
| Session::Session() {} | ||||
| Session::~Session() {} | ||||
| } | ||||
|  |  | |||
|  | @ -12,10 +12,8 @@ | |||
| 
 | ||||
| namespace Kernel { | ||||
| 
 | ||||
| SharedMemory::SharedMemory() { | ||||
| } | ||||
| SharedMemory::~SharedMemory() { | ||||
| } | ||||
| SharedMemory::SharedMemory() {} | ||||
| SharedMemory::~SharedMemory() {} | ||||
| 
 | ||||
| SharedPtr<SharedMemory> SharedMemory::Create(SharedPtr<Process> owner_process, u32 size, | ||||
|                                              MemoryPermission permissions, | ||||
|  |  | |||
|  | @ -61,10 +61,8 @@ inline static u32 const NewThreadId() { | |||
|     return next_thread_id++; | ||||
| } | ||||
| 
 | ||||
| Thread::Thread() { | ||||
| } | ||||
| Thread::~Thread() { | ||||
| } | ||||
| Thread::Thread() {} | ||||
| Thread::~Thread() {} | ||||
| 
 | ||||
| Thread* GetCurrentThread() { | ||||
|     return current_thread; | ||||
|  |  | |||
|  | @ -20,10 +20,8 @@ static int timer_callback_event_type; | |||
| //               us to simply use a pool index or similar.
 | ||||
| static Kernel::HandleTable timer_callback_handle_table; | ||||
| 
 | ||||
| Timer::Timer() { | ||||
| } | ||||
| Timer::~Timer() { | ||||
| } | ||||
| Timer::Timer() {} | ||||
| Timer::~Timer() {} | ||||
| 
 | ||||
| SharedPtr<Timer> Timer::Create(ResetType reset_type, std::string name) { | ||||
|     SharedPtr<Timer> timer(new Timer); | ||||
|  | @ -103,7 +101,6 @@ void TimersInit() { | |||
|     timer_callback_event_type = CoreTiming::RegisterEvent("TimerCallback", TimerCallback); | ||||
| } | ||||
| 
 | ||||
| void TimersShutdown() { | ||||
| } | ||||
| void TimersShutdown() {} | ||||
| 
 | ||||
| } // namespace
 | ||||
|  |  | |||
|  | @ -213,8 +213,7 @@ union ResultCode { | |||
|     // error
 | ||||
|     BitField<31, 1, u32> is_error; | ||||
| 
 | ||||
|     explicit ResultCode(u32 raw) : raw(raw) { | ||||
|     } | ||||
|     explicit ResultCode(u32 raw) : raw(raw) {} | ||||
|     ResultCode(ErrorDescription description_, ErrorModule module_, ErrorSummary summary_, | ||||
|                ErrorLevel level_) | ||||
|         : raw(0) { | ||||
|  |  | |||
|  | @ -186,8 +186,7 @@ void Init() { | |||
|     AddService(new AM_U_Interface); | ||||
| } | ||||
| 
 | ||||
| void Shutdown() { | ||||
| } | ||||
| void Shutdown() {} | ||||
| 
 | ||||
| } // namespace AM
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/am_app.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace AM { | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/am_net.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace AM { | ||||
|  |  | |||
|  | @ -2,33 +2,35 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/am_sys.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace AM { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = {{0x00010040, GetTitleCount, "GetTitleCount"}, | ||||
|                                                  {0x00020082, GetTitleList, "GetTitleList"}, | ||||
|                                                  {0x00030084, GetTitleInfo, "GetTitleInfo"}, | ||||
|                                                  {0x000400C0, nullptr, "DeleteApplicationTitle"}, | ||||
|                                                  {0x000500C0, nullptr, "GetTitleProductCode"}, | ||||
|                                                  {0x000600C0, nullptr, "GetTitleExtDataId"}, | ||||
|                                                  {0x00070080, DeleteTicket, "DeleteTicket"}, | ||||
|                                                  {0x00080000, GetTicketCount, "GetTicketCount"}, | ||||
|                                                  {0x00090082, GetTicketList, "GetTicketList"}, | ||||
|                                                  {0x000A0000, nullptr, "GetDeviceID"}, | ||||
|                                                  {0x000D0084, nullptr, "GetPendingTitleInfo"}, | ||||
|                                                  {0x000E00C0, nullptr, "DeletePendingTitle"}, | ||||
|                                                  {0x00140040, nullptr, "FinalizePendingTitles"}, | ||||
|                                                  {0x00150040, nullptr, "DeleteAllPendingTitles"}, | ||||
|                                                  {0x00180080, nullptr, "InitializeTitleDatabase"}, | ||||
|                                                  {0x00190040, nullptr, "ReloadDBS"}, | ||||
|                                                  {0x001A00C0, nullptr, "GetDSiWareExportSize"}, | ||||
|                                                  {0x001B0144, nullptr, "ExportDSiWare"}, | ||||
|                                                  {0x001C0084, nullptr, "ImportDSiWare"}, | ||||
|                                                  {0x00230080, nullptr, "GetPendingTitleCount"}, | ||||
|                                                  {0x002400C2, nullptr, "GetPendingTitleList"}}; | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     {0x00010040, GetTitleCount, "GetTitleCount"}, | ||||
|     {0x00020082, GetTitleList, "GetTitleList"}, | ||||
|     {0x00030084, GetTitleInfo, "GetTitleInfo"}, | ||||
|     {0x000400C0, nullptr, "DeleteApplicationTitle"}, | ||||
|     {0x000500C0, nullptr, "GetTitleProductCode"}, | ||||
|     {0x000600C0, nullptr, "GetTitleExtDataId"}, | ||||
|     {0x00070080, DeleteTicket, "DeleteTicket"}, | ||||
|     {0x00080000, GetTicketCount, "GetTicketCount"}, | ||||
|     {0x00090082, GetTicketList, "GetTicketList"}, | ||||
|     {0x000A0000, nullptr, "GetDeviceID"}, | ||||
|     {0x000D0084, nullptr, "GetPendingTitleInfo"}, | ||||
|     {0x000E00C0, nullptr, "DeletePendingTitle"}, | ||||
|     {0x00140040, nullptr, "FinalizePendingTitles"}, | ||||
|     {0x00150040, nullptr, "DeleteAllPendingTitles"}, | ||||
|     {0x00180080, nullptr, "InitializeTitleDatabase"}, | ||||
|     {0x00190040, nullptr, "ReloadDBS"}, | ||||
|     {0x001A00C0, nullptr, "GetDSiWareExportSize"}, | ||||
|     {0x001B0144, nullptr, "ExportDSiWare"}, | ||||
|     {0x001C0084, nullptr, "ImportDSiWare"}, | ||||
|     {0x00230080, nullptr, "GetPendingTitleCount"}, | ||||
|     {0x002400C2, nullptr, "GetPendingTitleList"}, | ||||
| }; | ||||
| 
 | ||||
| AM_SYS_Interface::AM_SYS_Interface() { | ||||
|     Register(FunctionTable); | ||||
|  |  | |||
|  | @ -2,46 +2,48 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/am/am.h" | ||||
| #include "core/hle/service/am/am_u.h" | ||||
| #include "core/hle/service/am/am.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace AM { | ||||
| 
 | ||||
| const Interface::FunctionInfo FunctionTable[] = {{0x00010040, GetTitleCount, "GetTitleCount"}, | ||||
|                                                  {0x00020082, GetTitleList, "GetTitleList"}, | ||||
|                                                  {0x00030084, GetTitleInfo, "GetTitleInfo"}, | ||||
|                                                  {0x000400C0, nullptr, "DeleteApplicationTitle"}, | ||||
|                                                  {0x000500C0, nullptr, "GetTitleProductCode"}, | ||||
|                                                  {0x000600C0, nullptr, "GetTitleExtDataId"}, | ||||
|                                                  {0x00070080, DeleteTicket, "DeleteTicket"}, | ||||
|                                                  {0x00080000, GetTicketCount, "GetTicketCount"}, | ||||
|                                                  {0x00090082, GetTicketList, "GetTicketList"}, | ||||
|                                                  {0x000A0000, nullptr, "GetDeviceID"}, | ||||
|                                                  {0x000D0084, nullptr, "GetPendingTitleInfo"}, | ||||
|                                                  {0x000E00C0, nullptr, "DeletePendingTitle"}, | ||||
|                                                  {0x00140040, nullptr, "FinalizePendingTitles"}, | ||||
|                                                  {0x00150040, nullptr, "DeleteAllPendingTitles"}, | ||||
|                                                  {0x00180080, nullptr, "InitializeTitleDatabase"}, | ||||
|                                                  {0x00190040, nullptr, "ReloadDBS"}, | ||||
|                                                  {0x001A00C0, nullptr, "GetDSiWareExportSize"}, | ||||
|                                                  {0x001B0144, nullptr, "ExportDSiWare"}, | ||||
|                                                  {0x001C0084, nullptr, "ImportDSiWare"}, | ||||
|                                                  {0x00230080, nullptr, "TitleIDListGetTotal2"}, | ||||
|                                                  {0x002400C2, nullptr, "GetTitleIDList2"}, | ||||
|                                                  {0x04010080, nullptr, "InstallFIRM"}, | ||||
|                                                  {0x04020040, nullptr, "StartInstallCIADB0"}, | ||||
|                                                  {0x04030000, nullptr, "StartInstallCIADB1"}, | ||||
|                                                  {0x04040002, nullptr, "AbortCIAInstall"}, | ||||
|                                                  {0x04050002, nullptr, "CloseCIAFinalizeInstall"}, | ||||
|                                                  {0x04060002, nullptr, "CloseCIA"}, | ||||
|                                                  {0x040700C2, nullptr, "FinalizeTitlesInstall"}, | ||||
|                                                  {0x04080042, nullptr, "GetCiaFileInfo"}, | ||||
|                                                  {0x040E00C2, nullptr, "InstallTitlesFinish"}, | ||||
|                                                  {0x040F0000, nullptr, "InstallNATIVEFIRM"}, | ||||
|                                                  {0x041000C0, nullptr, "DeleteTitle"}, | ||||
|                                                  {0x04120000, nullptr, "Initialize"}, | ||||
|                                                  {0x041700C0, nullptr, "MigrateAGBtoSAV"}}; | ||||
| const Interface::FunctionInfo FunctionTable[] = { | ||||
|     {0x00010040, GetTitleCount, "GetTitleCount"}, | ||||
|     {0x00020082, GetTitleList, "GetTitleList"}, | ||||
|     {0x00030084, GetTitleInfo, "GetTitleInfo"}, | ||||
|     {0x000400C0, nullptr, "DeleteApplicationTitle"}, | ||||
|     {0x000500C0, nullptr, "GetTitleProductCode"}, | ||||
|     {0x000600C0, nullptr, "GetTitleExtDataId"}, | ||||
|     {0x00070080, DeleteTicket, "DeleteTicket"}, | ||||
|     {0x00080000, GetTicketCount, "GetTicketCount"}, | ||||
|     {0x00090082, GetTicketList, "GetTicketList"}, | ||||
|     {0x000A0000, nullptr, "GetDeviceID"}, | ||||
|     {0x000D0084, nullptr, "GetPendingTitleInfo"}, | ||||
|     {0x000E00C0, nullptr, "DeletePendingTitle"}, | ||||
|     {0x00140040, nullptr, "FinalizePendingTitles"}, | ||||
|     {0x00150040, nullptr, "DeleteAllPendingTitles"}, | ||||
|     {0x00180080, nullptr, "InitializeTitleDatabase"}, | ||||
|     {0x00190040, nullptr, "ReloadDBS"}, | ||||
|     {0x001A00C0, nullptr, "GetDSiWareExportSize"}, | ||||
|     {0x001B0144, nullptr, "ExportDSiWare"}, | ||||
|     {0x001C0084, nullptr, "ImportDSiWare"}, | ||||
|     {0x00230080, nullptr, "TitleIDListGetTotal2"}, | ||||
|     {0x002400C2, nullptr, "GetTitleIDList2"}, | ||||
|     {0x04010080, nullptr, "InstallFIRM"}, | ||||
|     {0x04020040, nullptr, "StartInstallCIADB0"}, | ||||
|     {0x04030000, nullptr, "StartInstallCIADB1"}, | ||||
|     {0x04040002, nullptr, "AbortCIAInstall"}, | ||||
|     {0x04050002, nullptr, "CloseCIAFinalizeInstall"}, | ||||
|     {0x04060002, nullptr, "CloseCIA"}, | ||||
|     {0x040700C2, nullptr, "FinalizeTitlesInstall"}, | ||||
|     {0x04080042, nullptr, "GetCiaFileInfo"}, | ||||
|     {0x040E00C2, nullptr, "InstallTitlesFinish"}, | ||||
|     {0x040F0000, nullptr, "InstallNATIVEFIRM"}, | ||||
|     {0x041000C0, nullptr, "DeleteTitle"}, | ||||
|     {0x04120000, nullptr, "Initialize"}, | ||||
|     {0x041700C0, nullptr, "MigrateAGBtoSAV"}, | ||||
| }; | ||||
| 
 | ||||
| AM_U_Interface::AM_U_Interface() { | ||||
|     Register(FunctionTable); | ||||
|  |  | |||
|  | @ -90,10 +90,8 @@ void GetSharedFont(Service::Interface* self) { | |||
|     cmd_buff[0] = IPC::MakeHeader(0x44, 2, 2); | ||||
|     cmd_buff[1] = RESULT_SUCCESS.raw; // No error
 | ||||
|     // Since the SharedMemory interface doesn't provide the address at which the memory was
 | ||||
|     // allocated,
 | ||||
|     // the real APT service calculates this address by scanning the entire address space (using
 | ||||
|     // svcQueryMemory)
 | ||||
|     // and searches for an allocation of the same size as the Shared Font.
 | ||||
|     // allocated, the real APT service calculates this address by scanning the entire address space
 | ||||
|     // (using svcQueryMemory) and searches for an allocation of the same size as the Shared Font.
 | ||||
|     cmd_buff[2] = target_address; | ||||
|     cmd_buff[3] = IPC::CopyHandleDesc(); | ||||
|     cmd_buff[4] = Kernel::g_handle_table.Create(shared_font_mem).MoveFrom(); | ||||
|  |  | |||
|  | @ -183,12 +183,10 @@ void GetAppletInfo(Service::Interface* self); | |||
| 
 | ||||
| /**
 | ||||
|  * APT::IsRegistered service function. This returns whether the specified AppID is registered with | ||||
|  * NS yet. | ||||
|  * An AppID is "registered" once the process associated with the AppID uses APT:Enable. Home Menu | ||||
|  * uses this | ||||
|  * command to determine when the launched process is running and to determine when to stop using GSP | ||||
|  * etc, | ||||
|  * while displaying the "Nintendo 3DS" loading screen. | ||||
|  * NS yet. An AppID is "registered" once the process associated with the AppID uses APT:Enable. Home | ||||
|  * Menu uses this command to determine when the launched process is running and to determine when to | ||||
|  * stop using GSP, etc., while displaying the "Nintendo 3DS" loading screen. | ||||
|  * | ||||
|  *  Inputs: | ||||
|  *      1 : AppID | ||||
|  *  Outputs: | ||||
|  | @ -264,10 +262,10 @@ void GlanceParameter(Service::Interface* self); | |||
|  * (same flag cleared by APT:ReceiveParameter). | ||||
|  *  Inputs: | ||||
|  *      1 : Flag, when non-zero NS will compare the word after this one with a field in the NS | ||||
|  * state. | ||||
|  *          state. | ||||
|  *      2 : Unknown, this is the same as the first unknown field returned by APT:ReceiveParameter. | ||||
|  *      3 : Flag, when non-zero NS will compare the word after this one with a field in the NS | ||||
|  * state. | ||||
|  *          state. | ||||
|  *      4 : AppID | ||||
|  *  Outputs: | ||||
|  *      0 : Return header | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| #include "core/hle/service/apt/apt_a.h" | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace APT { | ||||
|  | @ -36,7 +36,8 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
|     {0x00550040, SetScreenCapPostPermission, "SetScreenCapPostPermission"}, | ||||
|     {0x00560000, GetScreenCapPostPermission, "GetScreenCapPostPermission"}, | ||||
|     {0x01010000, CheckNew3DSApp, "CheckNew3DSApp"}, | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}}; | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}, | ||||
| }; | ||||
| 
 | ||||
| APT_A_Interface::APT_A_Interface() { | ||||
|     Register(FunctionTable); | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| #include "core/hle/service/apt/apt_s.h" | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace APT { | ||||
|  | @ -96,7 +96,8 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
|     {0x00560000, GetScreenCapPostPermission, "GetScreenCapPostPermission"}, | ||||
|     {0x00580002, nullptr, "GetProgramID"}, | ||||
|     {0x01010000, CheckNew3DSApp, "CheckNew3DSApp"}, | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}}; | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}, | ||||
| }; | ||||
| 
 | ||||
| APT_S_Interface::APT_S_Interface() { | ||||
|     Register(FunctionTable); | ||||
|  |  | |||
|  | @ -2,8 +2,8 @@ | |||
| // Licensed under GPLv2 or any later version
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| #include "core/hle/service/apt/apt_u.h" | ||||
| #include "core/hle/service/apt/apt.h" | ||||
| 
 | ||||
| namespace Service { | ||||
| namespace APT { | ||||
|  | @ -96,7 +96,8 @@ const Interface::FunctionInfo FunctionTable[] = { | |||
|     {0x00560000, GetScreenCapPostPermission, "GetScreenCapPostPermission"}, | ||||
|     {0x00580002, nullptr, "GetProgramID"}, | ||||
|     {0x01010000, CheckNew3DSApp, "CheckNew3DSApp"}, | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}}; | ||||
|     {0x01020000, CheckNew3DS, "CheckNew3DS"}, | ||||
| }; | ||||
| 
 | ||||
| APT_U_Interface::APT_U_Interface() { | ||||
|     Register(FunctionTable); | ||||
|  |  | |||
|  | @ -17,8 +17,7 @@ void Init() { | |||
|     AddService(new BOSS_U_Interface); | ||||
| } | ||||
| 
 | ||||
| void Shutdown() { | ||||
| } | ||||
| void Shutdown() {} | ||||
| 
 | ||||
| } // namespace BOSS
 | ||||
| 
 | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue