mirror of
https://github.com/TASEmulators/desmume
synced 2025-10-05 16:22:49 +02:00
Cocoa Port: More refactoring.
- Add "ClientCheatManager.cpp" and "ClientFirmwareControl.cpp" files, moving all this C++ code to their own files. - Remove the "cocoa_videofilter.mm/.h" files, which were never used and aren't planned to ever be used in the future.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2009-2024 DeSmuME team
|
||||
Copyright (C) 2009-2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -15,6 +15,9 @@
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _CHEAT_SYSTEM_H_
|
||||
#define _CHEAT_SYSTEM_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -327,3 +330,5 @@ void CheatItemGenerateDescriptionFlat(const char *folderName, const char *folder
|
||||
|
||||
extern CHEATS *cheats;
|
||||
extern CHEATSEARCH *cheatSearch;
|
||||
|
||||
#endif // _CHEAT_SYSTEM_H_
|
||||
|
1574
desmume/src/frontend/cocoa/ClientCheatManager.cpp
Normal file
1574
desmume/src/frontend/cocoa/ClientCheatManager.cpp
Normal file
File diff suppressed because it is too large
Load Diff
302
desmume/src/frontend/cocoa/ClientCheatManager.h
Normal file
302
desmume/src/frontend/cocoa/ClientCheatManager.h
Normal file
@@ -0,0 +1,302 @@
|
||||
/*
|
||||
Copyright (C) 2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _CLIENT_CHEAT_MANAGER_H_
|
||||
#define _CLIENT_CHEAT_MANAGER_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string>
|
||||
#include "../../cheatSystem.h"
|
||||
#undef BOOL
|
||||
|
||||
|
||||
enum CheatType
|
||||
{
|
||||
CheatType_Internal = 0,
|
||||
CheatType_ActionReplay = 1,
|
||||
CheatType_CodeBreaker = 2
|
||||
};
|
||||
|
||||
enum CheatFreezeType
|
||||
{
|
||||
CheatFreezeType_Normal = 0,
|
||||
CheatFreezeType_CanDecrease = 1,
|
||||
CheatFreezeType_CanIncrease = 2
|
||||
};
|
||||
|
||||
enum CheatSearchStyle
|
||||
{
|
||||
CheatSearchStyle_ExactValue = 0,
|
||||
CheatSearchStyle_Comparative = 1
|
||||
};
|
||||
|
||||
enum CheatSearchCompareStyle
|
||||
{
|
||||
CheatSearchCompareStyle_GreaterThan = 0,
|
||||
CheatSearchCompareStyle_LesserThan = 1,
|
||||
CheatSearchCompareStyle_Equals = 2,
|
||||
CheatSearchCompareStyle_NotEquals = 3
|
||||
};
|
||||
|
||||
class ClientCheatManager;
|
||||
|
||||
union DesmumeCheatSearchItem
|
||||
{
|
||||
uint64_t data;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32_t address;
|
||||
uint32_t value;
|
||||
};
|
||||
};
|
||||
typedef union DesmumeCheatSearchItem DesmumeCheatSearchItem;
|
||||
|
||||
typedef std::vector<DesmumeCheatSearchItem> DesmumeCheatSearchResultsList;
|
||||
|
||||
struct InternalCheatParam
|
||||
{
|
||||
uint32_t address;
|
||||
uint32_t value;
|
||||
uint8_t valueLength;
|
||||
};
|
||||
typedef struct InternalCheatParam InternalCheatParam;
|
||||
|
||||
class ClientCheatItem
|
||||
{
|
||||
protected:
|
||||
ClientCheatManager *_cheatManager;
|
||||
|
||||
bool _isEnabled;
|
||||
bool _willAddFromDB;
|
||||
|
||||
CheatType _cheatType;
|
||||
std::string _nameString;
|
||||
std::string _commentString;
|
||||
|
||||
// Internal cheat type parameters
|
||||
CheatFreezeType _freezeType;
|
||||
char _addressString[10+1];
|
||||
uint32_t _address;
|
||||
uint32_t _value;
|
||||
uint8_t _valueLength;
|
||||
|
||||
// Action Replay parameters
|
||||
uint32_t _codeCount;
|
||||
std::string _rawCodeString;
|
||||
std::string _cleanCodeString;
|
||||
|
||||
void _ConvertInternalToActionReplay();
|
||||
void _ConvertActionReplayToInternal();
|
||||
|
||||
public:
|
||||
ClientCheatItem();
|
||||
~ClientCheatItem();
|
||||
|
||||
void Init(const CHEATS_LIST &inCheatItem);
|
||||
void Init(const ClientCheatItem &inCheatItem);
|
||||
|
||||
void SetCheatManager(ClientCheatManager *cheatManager);
|
||||
ClientCheatManager* GetCheatManager() const;
|
||||
|
||||
void SetEnabled(bool theState);
|
||||
bool IsEnabled() const;
|
||||
|
||||
void SetWillAddFromDB(bool theState);
|
||||
bool WillAddFromDB() const;
|
||||
|
||||
CheatType GetType() const;
|
||||
void SetType(CheatType requestedType);
|
||||
bool IsSupportedType() const;
|
||||
|
||||
const char* GetName() const;
|
||||
void SetName(const char *nameString);
|
||||
|
||||
const char* GetComments() const;
|
||||
void SetComments(const char *commentString);
|
||||
|
||||
CheatFreezeType GetFreezeType() const;
|
||||
void SetFreezeType(CheatFreezeType theFreezeType);
|
||||
|
||||
uint32_t GetAddress() const;
|
||||
void SetAddress(uint32_t theAddress);
|
||||
const char* GetAddressString() const;
|
||||
const char* GetAddressSixDigitString() const;
|
||||
void SetAddressSixDigitString(const char *sixDigitString);
|
||||
|
||||
uint32_t GetValue() const;
|
||||
void SetValue(uint32_t theValue);
|
||||
uint8_t GetValueLength() const;
|
||||
void SetValueLength(uint8_t byteLength);
|
||||
|
||||
void SetRawCodeString(const char *rawString, const bool willSaveValidatedRawString);
|
||||
const char* GetRawCodeString() const;
|
||||
const char* GetCleanCodeString() const;
|
||||
const std::string& GetCleanCodeCppString() const;
|
||||
uint32_t GetCodeCount() const;
|
||||
|
||||
void ClientToDesmumeCheatItem(CHEATS_LIST *outCheatItem) const;
|
||||
};
|
||||
|
||||
class ClientCheatList
|
||||
{
|
||||
private:
|
||||
ClientCheatItem* __AddItem(const ClientCheatItem *srcItem, const bool willCopy, const bool allowDuplicates);
|
||||
|
||||
protected:
|
||||
std::vector<ClientCheatItem *> *_list;
|
||||
|
||||
public:
|
||||
ClientCheatList();
|
||||
~ClientCheatList();
|
||||
|
||||
CheatSystemError LoadFromFile(const char *filePath);
|
||||
CheatSystemError SaveToFile(const char *filePath);
|
||||
|
||||
bool IsItemDuplicate(const ClientCheatItem *srcItem);
|
||||
|
||||
ClientCheatItem* AddNew();
|
||||
ClientCheatItem* AddNewItemCopy(const ClientCheatItem *srcItem);
|
||||
ClientCheatItem* AddNewItemCopyNoDuplicate(const ClientCheatItem *srcItem);
|
||||
ClientCheatItem* AddExistingItemNoDuplicate(const ClientCheatItem *srcItem);
|
||||
|
||||
bool Remove(ClientCheatItem *targetItem);
|
||||
bool RemoveAtIndex(size_t index);
|
||||
void RemoveAll();
|
||||
|
||||
bool Update(const ClientCheatItem &srcItem, ClientCheatItem *targetItem);
|
||||
bool UpdateAtIndex(const ClientCheatItem &srcItem, size_t index);
|
||||
|
||||
size_t GetTotalCheatCount() const;
|
||||
size_t GetActiveCheatCount() const;
|
||||
std::vector<ClientCheatItem *>* GetCheatList() const;
|
||||
size_t GetIndexOfItem(const ClientCheatItem *cheatItem) const;
|
||||
ClientCheatItem* GetItemAtIndex(size_t index) const;
|
||||
|
||||
void ReplaceFromEngine(const CHEATS *engineCheatList);
|
||||
void CopyListToEngine(const bool willApplyOnlyEnabledItems, CHEATS *engineCheatList);
|
||||
};
|
||||
|
||||
class ClientCheatSearcher
|
||||
{
|
||||
protected:
|
||||
CHEATSEARCH *_desmumeSearcher;
|
||||
uint8_t _searchValueLength;
|
||||
size_t _resultsCount;
|
||||
bool _didSearchStart;
|
||||
DesmumeCheatSearchResultsList _resultsList;
|
||||
|
||||
public:
|
||||
ClientCheatSearcher();
|
||||
~ClientCheatSearcher();
|
||||
|
||||
bool DidStart() const;
|
||||
void Reset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& RefreshResults();
|
||||
const DesmumeCheatSearchResultsList& GetResults();
|
||||
size_t GetResultCount() const;
|
||||
};
|
||||
|
||||
class ClientCheatDatabase
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_list;
|
||||
std::string _title;
|
||||
std::string _description;
|
||||
std::string _lastFilePath;
|
||||
|
||||
public:
|
||||
ClientCheatDatabase();
|
||||
~ClientCheatDatabase();
|
||||
|
||||
ClientCheatList* GetList() const;
|
||||
ClientCheatList* LoadFromFile(const char *dbFilePath);
|
||||
|
||||
const char* GetTitle() const;
|
||||
const char* GetDescription() const;
|
||||
};
|
||||
|
||||
class ClientCheatManager
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_currentSessionList;
|
||||
ClientCheatDatabase *_currentDatabase;
|
||||
ClientCheatSearcher *_currentSearcher;
|
||||
|
||||
ClientCheatItem *_selectedItem;
|
||||
size_t _selectedItemIndex;
|
||||
uint32_t _untitledCount;
|
||||
std::string _currentSessionLastFilePath;
|
||||
|
||||
std::vector<InternalCheatParam> _pendingInternalCheatWriteList;
|
||||
|
||||
bool _masterNeedsUpdate;
|
||||
|
||||
public:
|
||||
ClientCheatManager();
|
||||
virtual ~ClientCheatManager();
|
||||
|
||||
static CHEATS* GetMaster();
|
||||
static void SetMaster(const CHEATS *masterCheats);
|
||||
|
||||
ClientCheatList* GetSessionList() const;
|
||||
const char* GetSessionListLastFilePath() const;
|
||||
|
||||
virtual CheatSystemError SessionListLoadFromFile(const char *filePath);
|
||||
virtual CheatSystemError SessionListSaveToFile(const char *filePath);
|
||||
|
||||
ClientCheatItem* SetSelectedItemByIndex(size_t index);
|
||||
|
||||
ClientCheatItem* NewItem();
|
||||
ClientCheatItem* AddExistingItemNoDuplicate(const ClientCheatItem *theItem);
|
||||
|
||||
void RemoveItem(ClientCheatItem *theItem);
|
||||
void RemoveItemAtIndex(size_t index);
|
||||
void RemoveSelectedItem();
|
||||
|
||||
void ModifyItem(const ClientCheatItem *srcItem, ClientCheatItem *targetItem);
|
||||
void ModifyItemAtIndex(const ClientCheatItem *srcItem, size_t index);
|
||||
|
||||
size_t GetTotalCheatCount() const;
|
||||
size_t GetActiveCheatCount() const;
|
||||
|
||||
void LoadFromMaster();
|
||||
void ApplyToMaster();
|
||||
void MasterNeedsUpdate();
|
||||
|
||||
ClientCheatList* GetDatabaseList() const;
|
||||
ClientCheatList* DatabaseListLoadFromFile(const char *dbFilePath);
|
||||
const char* GetDatabaseTitle() const;
|
||||
const char* GetDatabaseDescription() const;
|
||||
|
||||
bool SearchDidStart() const;
|
||||
void SearchReset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& SearchResultsRefresh();
|
||||
const DesmumeCheatSearchResultsList& GetSearchResults();
|
||||
size_t GetSearchResultCount() const;
|
||||
|
||||
void DirectWriteInternalCheatAtIndex(size_t index);
|
||||
void DirectWriteInternalCheatItem(const ClientCheatItem *cheatItem);
|
||||
void DirectWriteInternalCheat(uint32_t targetAddress, uint32_t newValue32, size_t newValueLength);
|
||||
void ApplyPendingInternalCheatWrites();
|
||||
};
|
||||
|
||||
#endif // _CLIENT_CHEAT_MANAGER_H_
|
763
desmume/src/frontend/cocoa/ClientFirmwareControl.cpp
Normal file
763
desmume/src/frontend/cocoa/ClientFirmwareControl.cpp
Normal file
@@ -0,0 +1,763 @@
|
||||
/*
|
||||
Copyright (C) 2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ClientFirmwareControl.h"
|
||||
|
||||
#include "../../firmware.h"
|
||||
#undef BOOL
|
||||
|
||||
|
||||
ClientFirmwareControl::ClientFirmwareControl()
|
||||
{
|
||||
_macAddressSelection = FirmwareCfgMACAddrSetID_Firmware;
|
||||
|
||||
// First, get the default firmware config.
|
||||
_internalData = (FirmwareConfig *)malloc(sizeof(FirmwareConfig));
|
||||
NDS_GetDefaultFirmwareConfig(*_internalData);
|
||||
|
||||
srand((uint32_t)time(NULL));
|
||||
|
||||
// Generate a random firmware MAC address and its associated string.
|
||||
const uint32_t defaultFirmwareMACAddressValue = (uint32_t)_internalData->MACAddress[2] | ((uint32_t)_internalData->MACAddress[3] << 8) | ((uint32_t)_internalData->MACAddress[4] << 16) | ((uint32_t)_internalData->MACAddress[5] << 24);
|
||||
|
||||
do
|
||||
{
|
||||
_firmwareMACAddressValue = (uint32_t)rand() & 0x00FFFFFF;
|
||||
_firmwareMACAddressValue = (_firmwareMACAddressValue << 8) | 0x000000BF;
|
||||
} while ( (_firmwareMACAddressValue == 0x000000BF) || (_firmwareMACAddressValue == 0xFFFFFFBF) || (_firmwareMACAddressValue == defaultFirmwareMACAddressValue) );
|
||||
|
||||
_internalData->MACAddress[2] = (uint8_t)( _firmwareMACAddressValue & 0x000000FF);
|
||||
_internalData->MACAddress[3] = (uint8_t)((_firmwareMACAddressValue >> 8) & 0x000000FF);
|
||||
_internalData->MACAddress[4] = (uint8_t)((_firmwareMACAddressValue >> 16) & 0x000000FF);
|
||||
_internalData->MACAddress[5] = (uint8_t)((_firmwareMACAddressValue >> 24) & 0x000000FF);
|
||||
|
||||
memset(_macAddressString, '\0', sizeof(_macAddressString));
|
||||
ClientFirmwareControl::WriteMACAddressStringToBuffer(_internalData->MACAddress[3], _internalData->MACAddress[4], _internalData->MACAddress[5], &_macAddressString[0]);
|
||||
|
||||
// Generate a random custom MAC address set and their associated strings.
|
||||
do
|
||||
{
|
||||
_customMACAddressValue = (uint32_t)rand() & 0x00FFFFFF;
|
||||
_customMACAddressValue = (_customMACAddressValue << 8) | 0x000000BF;
|
||||
} while ( (_customMACAddressValue == 0x000000BF) || (_customMACAddressValue == 0xFFFFFFBF) || ((_customMACAddressValue & 0xF0FFFFFF) == (_firmwareMACAddressValue & 0xF0FFFFFF)) );
|
||||
|
||||
const uint8_t customMAC4 = (_customMACAddressValue >> 8) & 0x000000FF;
|
||||
const uint8_t customMAC5 = (_customMACAddressValue >> 16) & 0x000000FF;
|
||||
const uint8_t customMAC6 = (_customMACAddressValue >> 24) & 0x000000F0;
|
||||
|
||||
for (size_t i = 1; i <= 8; i++)
|
||||
{
|
||||
ClientFirmwareControl::WriteMACAddressStringToBuffer(customMAC4, customMAC5, customMAC6 + (uint8_t)i, &_macAddressString[18*i]);
|
||||
}
|
||||
|
||||
// Generate the WFC User ID string.
|
||||
memset(_wfcUserIDString, '\0', sizeof(_wfcUserIDString));
|
||||
const uint64_t wfcUserIDValue = (uint64_t)_internalData->WFCUserID[0] |
|
||||
((uint64_t)_internalData->WFCUserID[1] << 8) |
|
||||
((uint64_t)_internalData->WFCUserID[2] << 16) |
|
||||
((uint64_t)_internalData->WFCUserID[3] << 24) |
|
||||
((uint64_t)_internalData->WFCUserID[4] << 32) |
|
||||
((uint64_t)_internalData->WFCUserID[5] << 40);
|
||||
ClientFirmwareControl::WriteWFCUserIDStringToBuffer(wfcUserIDValue, _wfcUserIDString);
|
||||
|
||||
// Generate the subnet mask strings.
|
||||
memset(_subnetMaskString, '\0', sizeof(_subnetMaskString));
|
||||
|
||||
uint32_t subnetMaskValue = (_internalData->subnetMask_AP1 == 0) ? 0 : (0xFFFFFFFF << (32 - _internalData->subnetMask_AP1));
|
||||
snprintf(&_subnetMaskString[0], 16, "%d.%d.%d.%d", (subnetMaskValue >> 24) & 0x000000FF, (subnetMaskValue >> 16) & 0x000000FF, (subnetMaskValue >> 8) & 0x000000FF, subnetMaskValue & 0x000000FF);
|
||||
|
||||
subnetMaskValue = (_internalData->subnetMask_AP2 == 0) ? 0 : (0xFFFFFFFF << (32 - _internalData->subnetMask_AP2));
|
||||
snprintf(&_subnetMaskString[16], 16, "%d.%d.%d.%d", (subnetMaskValue >> 24) & 0x000000FF, (subnetMaskValue >> 16) & 0x000000FF, (subnetMaskValue >> 8) & 0x000000FF, subnetMaskValue & 0x000000FF);
|
||||
|
||||
subnetMaskValue = (_internalData->subnetMask_AP3 == 0) ? 0 : (0xFFFFFFFF << (32 - _internalData->subnetMask_AP3));
|
||||
snprintf(&_subnetMaskString[32], 16, "%d.%d.%d.%d", (subnetMaskValue >> 24) & 0x000000FF, (subnetMaskValue >> 16) & 0x000000FF, (subnetMaskValue >> 8) & 0x000000FF, subnetMaskValue & 0x000000FF);
|
||||
}
|
||||
|
||||
ClientFirmwareControl::~ClientFirmwareControl()
|
||||
{
|
||||
free(this->_internalData);
|
||||
this->_internalData = NULL;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::WriteMACAddressStringToBuffer(const uint8_t mac4, const uint8_t mac5, const uint8_t mac6, char *stringBuffer)
|
||||
{
|
||||
if (stringBuffer == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
snprintf(stringBuffer, 18, "00:09:BF:%02X:%02X:%02X", mac4, mac5, mac6);
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::WriteMACAddressStringToBuffer(const uint32_t macAddressValue, char *stringBuffer)
|
||||
{
|
||||
if (stringBuffer == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const uint8_t mac4 = (macAddressValue >> 8) & 0x000000FF;
|
||||
const uint8_t mac5 = (macAddressValue >> 16) & 0x000000FF;
|
||||
const uint8_t mac6 = (macAddressValue >> 24) & 0x000000FF;
|
||||
|
||||
ClientFirmwareControl::WriteMACAddressStringToBuffer(mac4, mac5, mac6, stringBuffer);
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::WriteWFCUserIDStringToBuffer(const uint64_t wfcUserIDValue, char *stringBuffer)
|
||||
{
|
||||
if (stringBuffer == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const unsigned long long wfcUserIDValuePrint = (wfcUserIDValue & 0x000007FFFFFFFFFFULL) * 1000ULL;
|
||||
const unsigned long long wfcUserIDValuePrint1 = wfcUserIDValuePrint / 1000000000000ULL;
|
||||
const unsigned long long wfcUserIDValuePrint2 = (wfcUserIDValuePrint / 100000000ULL) - (wfcUserIDValuePrint1 * 10000ULL);
|
||||
const unsigned long long wfcUserIDValuePrint3 = (wfcUserIDValuePrint / 10000ULL) - (wfcUserIDValuePrint1 * 100000000ULL) - (wfcUserIDValuePrint2 * 10000ULL);
|
||||
const unsigned long long wfcUserIDValuePrint4 = wfcUserIDValuePrint - (wfcUserIDValuePrint1 * 1000000000000ULL) - (wfcUserIDValuePrint2 * 100000000ULL) - (wfcUserIDValuePrint3 * 10000ULL);
|
||||
snprintf(stringBuffer, 20, "%04llu-%04llu-%04llu-%04llu", wfcUserIDValuePrint1, wfcUserIDValuePrint2, wfcUserIDValuePrint3, wfcUserIDValuePrint4);
|
||||
}
|
||||
|
||||
const FirmwareConfig& ClientFirmwareControl::GetFirmwareConfig()
|
||||
{
|
||||
return *this->_internalData;
|
||||
}
|
||||
|
||||
uint32_t ClientFirmwareControl::GenerateRandomMACValue()
|
||||
{
|
||||
uint32_t randomMACAddressValue = 0;
|
||||
|
||||
do
|
||||
{
|
||||
randomMACAddressValue = (uint32_t)rand() & 0x00FFFFFF;
|
||||
randomMACAddressValue = (randomMACAddressValue << 8) | 0x000000BF;
|
||||
} while ( (randomMACAddressValue == 0x000000BF) || (randomMACAddressValue == 0xFFFFFFBF) || ((randomMACAddressValue & 0xF0FFFFFF) == (this->_firmwareMACAddressValue & 0xF0FFFFFF)) || ((randomMACAddressValue & 0xF0FFFFFF) == (this->_customMACAddressValue & 0xF0FFFFFF)) );
|
||||
|
||||
return randomMACAddressValue;
|
||||
}
|
||||
|
||||
FirmwareCfgMACAddrSetID ClientFirmwareControl::GetMACAddressSelection()
|
||||
{
|
||||
return this->_macAddressSelection;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetMACAddressSelection(FirmwareCfgMACAddrSetID addressSetID)
|
||||
{
|
||||
switch (addressSetID)
|
||||
{
|
||||
case FirmwareCfgMACAddrSetID_Firmware:
|
||||
this->_macAddressSelection = FirmwareCfgMACAddrSetID_Firmware;
|
||||
this->_internalData->MACAddress[0] = 0x00;
|
||||
this->_internalData->MACAddress[1] = 0x09;
|
||||
this->_internalData->MACAddress[2] = (uint8_t)( this->_firmwareMACAddressValue & 0x000000FF);
|
||||
this->_internalData->MACAddress[3] = (uint8_t)((this->_firmwareMACAddressValue >> 8) & 0x000000FF);
|
||||
this->_internalData->MACAddress[4] = (uint8_t)((this->_firmwareMACAddressValue >> 16) & 0x000000FF);
|
||||
this->_internalData->MACAddress[5] = (uint8_t)((this->_firmwareMACAddressValue >> 24) & 0x000000FF);
|
||||
break;
|
||||
|
||||
case FirmwareCfgMACAddrSetID_Custom1:
|
||||
case FirmwareCfgMACAddrSetID_Custom2:
|
||||
case FirmwareCfgMACAddrSetID_Custom3:
|
||||
case FirmwareCfgMACAddrSetID_Custom4:
|
||||
case FirmwareCfgMACAddrSetID_Custom5:
|
||||
case FirmwareCfgMACAddrSetID_Custom6:
|
||||
case FirmwareCfgMACAddrSetID_Custom7:
|
||||
case FirmwareCfgMACAddrSetID_Custom8:
|
||||
{
|
||||
this->_macAddressSelection = addressSetID;
|
||||
this->_internalData->MACAddress[0] = 0x00;
|
||||
this->_internalData->MACAddress[1] = 0x09;
|
||||
this->_internalData->MACAddress[2] = (uint8_t)( this->_customMACAddressValue & 0x000000FF);
|
||||
this->_internalData->MACAddress[3] = (uint8_t)((this->_customMACAddressValue >> 8) & 0x000000FF);
|
||||
this->_internalData->MACAddress[4] = (uint8_t)((this->_customMACAddressValue >> 16) & 0x000000FF);
|
||||
this->_internalData->MACAddress[5] = (uint8_t)((this->_customMACAddressValue >> 24) & 0x000000F0);
|
||||
|
||||
switch (addressSetID)
|
||||
{
|
||||
case FirmwareCfgMACAddrSetID_Custom1: this->_internalData->MACAddress[5] += 1; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom2: this->_internalData->MACAddress[5] += 2; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom3: this->_internalData->MACAddress[5] += 3; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom4: this->_internalData->MACAddress[5] += 4; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom5: this->_internalData->MACAddress[5] += 5; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom6: this->_internalData->MACAddress[5] += 6; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom7: this->_internalData->MACAddress[5] += 7; break;
|
||||
case FirmwareCfgMACAddrSetID_Custom8: this->_internalData->MACAddress[5] += 8; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t ClientFirmwareControl::GetMACAddressValue(FirmwareCfgMACAddrSetID addressSetID)
|
||||
{
|
||||
switch (addressSetID)
|
||||
{
|
||||
case FirmwareCfgMACAddrSetID_Firmware: return this->_firmwareMACAddressValue;
|
||||
case FirmwareCfgMACAddrSetID_Custom1: return this->_customMACAddressValue + 0x01000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom2: return this->_customMACAddressValue + 0x02000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom3: return this->_customMACAddressValue + 0x03000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom4: return this->_customMACAddressValue + 0x04000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom5: return this->_customMACAddressValue + 0x05000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom6: return this->_customMACAddressValue + 0x06000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom7: return this->_customMACAddressValue + 0x07000000;
|
||||
case FirmwareCfgMACAddrSetID_Custom8: return this->_customMACAddressValue + 0x08000000;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* ClientFirmwareControl::GetMACAddressString(FirmwareCfgMACAddrSetID addressSetID)
|
||||
{
|
||||
switch (addressSetID)
|
||||
{
|
||||
case FirmwareCfgMACAddrSetID_Firmware: return &this->_macAddressString[18*0];
|
||||
case FirmwareCfgMACAddrSetID_Custom1: return &this->_macAddressString[18*1];
|
||||
case FirmwareCfgMACAddrSetID_Custom2: return &this->_macAddressString[18*2];
|
||||
case FirmwareCfgMACAddrSetID_Custom3: return &this->_macAddressString[18*3];
|
||||
case FirmwareCfgMACAddrSetID_Custom4: return &this->_macAddressString[18*4];
|
||||
case FirmwareCfgMACAddrSetID_Custom5: return &this->_macAddressString[18*5];
|
||||
case FirmwareCfgMACAddrSetID_Custom6: return &this->_macAddressString[18*6];
|
||||
case FirmwareCfgMACAddrSetID_Custom7: return &this->_macAddressString[18*7];
|
||||
case FirmwareCfgMACAddrSetID_Custom8: return &this->_macAddressString[18*8];
|
||||
default: break;
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
uint32_t ClientFirmwareControl::GetSelectedMACAddressValue()
|
||||
{
|
||||
const uint32_t selectedMACAddressValue = (uint32_t)this->_internalData->MACAddress[2] | ((uint32_t)this->_internalData->MACAddress[3] << 8) | ((uint32_t)this->_internalData->MACAddress[4] << 16) | ((uint32_t)this->_internalData->MACAddress[5] << 24);
|
||||
return selectedMACAddressValue;
|
||||
}
|
||||
|
||||
uint64_t ClientFirmwareControl::GetSelectedWFCUserID64()
|
||||
{
|
||||
const uint64_t selectedUserID64 = (uint64_t)this->_internalData->WFCUserID[0] |
|
||||
((uint64_t)this->_internalData->WFCUserID[1] << 8) |
|
||||
((uint64_t)this->_internalData->WFCUserID[2] << 16) |
|
||||
((uint64_t)this->_internalData->WFCUserID[3] << 24) |
|
||||
((uint64_t)this->_internalData->WFCUserID[4] << 32) |
|
||||
((uint64_t)this->_internalData->WFCUserID[5] << 40);
|
||||
return selectedUserID64;
|
||||
}
|
||||
|
||||
const char* ClientFirmwareControl::GetSelectedMACAddressString()
|
||||
{
|
||||
return this->GetMACAddressString(this->_macAddressSelection);
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetFirmwareMACAddressValue(uint32_t macAddressValue)
|
||||
{
|
||||
const uint8_t mac4 = (macAddressValue >> 8) & 0x000000FF;
|
||||
const uint8_t mac5 = (macAddressValue >> 16) & 0x000000FF;
|
||||
const uint8_t mac6 = (macAddressValue >> 24) & 0x000000FF;
|
||||
|
||||
this->SetFirmwareMACAddressValue(mac4, mac5, mac6);
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetFirmwareMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6)
|
||||
{
|
||||
this->_firmwareMACAddressValue = 0x000000BF | ((uint32_t)mac4 << 8) | ((uint32_t)mac5 << 16) | ((uint32_t)mac6 << 24);
|
||||
ClientFirmwareControl::WriteMACAddressStringToBuffer(mac4, mac5, mac6, &this->_macAddressString[0]);
|
||||
|
||||
if (this->_macAddressSelection == FirmwareCfgMACAddrSetID_Firmware)
|
||||
{
|
||||
this->SetMACAddressSelection(FirmwareCfgMACAddrSetID_Firmware);
|
||||
}
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetCustomMACAddressValue(uint32_t macAddressValue)
|
||||
{
|
||||
const uint8_t mac4 = (macAddressValue >> 8) & 0x000000FF;
|
||||
const uint8_t mac5 = (macAddressValue >> 16) & 0x000000FF;
|
||||
const uint8_t mac6 = (macAddressValue >> 24) & 0x000000F0;
|
||||
|
||||
this->SetCustomMACAddressValue(mac4, mac5, mac6);
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetCustomMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6)
|
||||
{
|
||||
mac6 &= 0xF0;
|
||||
this->_customMACAddressValue = 0x000000BF | ((uint32_t)mac4 << 8) | ((uint32_t)mac5 << 16) | ((uint32_t)mac6 << 24);
|
||||
|
||||
for (size_t i = 1; i <= 8; i++)
|
||||
{
|
||||
ClientFirmwareControl::WriteMACAddressStringToBuffer(mac4, mac5, mac6 + (uint8_t)i, &this->_macAddressString[18*i]);
|
||||
}
|
||||
|
||||
if (this->_macAddressSelection != FirmwareCfgMACAddrSetID_Firmware)
|
||||
{
|
||||
this->SetMACAddressSelection(this->_macAddressSelection);
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t* ClientFirmwareControl::GetWFCUserID()
|
||||
{
|
||||
return this->_internalData->WFCUserID;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetWFCUserID(uint8_t *wfcUserID)
|
||||
{
|
||||
const uint64_t wfcUserIDValue = (uint64_t)wfcUserID[0] |
|
||||
((uint64_t)wfcUserID[1] << 8) |
|
||||
((uint64_t)wfcUserID[2] << 16) |
|
||||
((uint64_t)wfcUserID[3] << 24) |
|
||||
((uint64_t)wfcUserID[4] << 32) |
|
||||
((uint64_t)wfcUserID[5] << 40);
|
||||
|
||||
this->SetWFCUserID64(wfcUserIDValue);
|
||||
}
|
||||
|
||||
uint64_t ClientFirmwareControl::GetWFCUserID64()
|
||||
{
|
||||
const uint64_t userID = (uint64_t)this->_internalData->WFCUserID[0] |
|
||||
((uint64_t)this->_internalData->WFCUserID[1] << 8) |
|
||||
((uint64_t)this->_internalData->WFCUserID[2] << 16) |
|
||||
((uint64_t)this->_internalData->WFCUserID[3] << 24) |
|
||||
((uint64_t)this->_internalData->WFCUserID[4] << 32) |
|
||||
((uint64_t)this->_internalData->WFCUserID[5] << 40);
|
||||
return userID;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetWFCUserID64(uint64_t wfcUserIDValue)
|
||||
{
|
||||
if ( (wfcUserIDValue & 0x000007FFFFFFFFFFULL) != 0)
|
||||
{
|
||||
this->_internalData->WFCUserID[0] = (uint8_t)( wfcUserIDValue & 0x00000000000000FFULL);
|
||||
this->_internalData->WFCUserID[1] = (uint8_t)((wfcUserIDValue >> 8) & 0x00000000000000FFULL);
|
||||
this->_internalData->WFCUserID[2] = (uint8_t)((wfcUserIDValue >> 16) & 0x00000000000000FFULL);
|
||||
this->_internalData->WFCUserID[3] = (uint8_t)((wfcUserIDValue >> 24) & 0x00000000000000FFULL);
|
||||
this->_internalData->WFCUserID[4] = (uint8_t)((wfcUserIDValue >> 32) & 0x00000000000000FFULL);
|
||||
this->_internalData->WFCUserID[5] = (uint8_t)((wfcUserIDValue >> 40) & 0x00000000000000FFULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->_internalData->WFCUserID[0] = 0;
|
||||
this->_internalData->WFCUserID[1] = 0;
|
||||
this->_internalData->WFCUserID[2] = 0;
|
||||
this->_internalData->WFCUserID[3] = 0;
|
||||
this->_internalData->WFCUserID[4] = 0;
|
||||
this->_internalData->WFCUserID[5] = 0;
|
||||
}
|
||||
|
||||
ClientFirmwareControl::WriteWFCUserIDStringToBuffer(wfcUserIDValue, this->_wfcUserIDString);
|
||||
}
|
||||
|
||||
const char* ClientFirmwareControl::GetWFCUserIDString()
|
||||
{
|
||||
return this->_wfcUserIDString;
|
||||
}
|
||||
|
||||
uint8_t ClientFirmwareControl::GetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return this->_internalData->ipv4Address_AP1[addrPart];
|
||||
case FirmwareCfgAPID_AP2: return this->_internalData->ipv4Address_AP2[addrPart];
|
||||
case FirmwareCfgAPID_AP3: return this->_internalData->ipv4Address_AP3[addrPart];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: this->_internalData->ipv4Address_AP1[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP2: this->_internalData->ipv4Address_AP2[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP3: this->_internalData->ipv4Address_AP3[addrPart] = addrValue; break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ClientFirmwareControl::GetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return this->_internalData->ipv4Gateway_AP1[addrPart];
|
||||
case FirmwareCfgAPID_AP2: return this->_internalData->ipv4Gateway_AP2[addrPart];
|
||||
case FirmwareCfgAPID_AP3: return this->_internalData->ipv4Gateway_AP3[addrPart];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: this->_internalData->ipv4Gateway_AP1[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP2: this->_internalData->ipv4Gateway_AP2[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP3: this->_internalData->ipv4Gateway_AP3[addrPart] = addrValue; break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ClientFirmwareControl::GetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return this->_internalData->ipv4PrimaryDNS_AP1[addrPart];
|
||||
case FirmwareCfgAPID_AP2: return this->_internalData->ipv4PrimaryDNS_AP2[addrPart];
|
||||
case FirmwareCfgAPID_AP3: return this->_internalData->ipv4PrimaryDNS_AP3[addrPart];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: this->_internalData->ipv4PrimaryDNS_AP1[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP2: this->_internalData->ipv4PrimaryDNS_AP2[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP3: this->_internalData->ipv4PrimaryDNS_AP3[addrPart] = addrValue; break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ClientFirmwareControl::GetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return this->_internalData->ipv4SecondaryDNS_AP1[addrPart];
|
||||
case FirmwareCfgAPID_AP2: return this->_internalData->ipv4SecondaryDNS_AP2[addrPart];
|
||||
case FirmwareCfgAPID_AP3: return this->_internalData->ipv4SecondaryDNS_AP3[addrPart];
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue)
|
||||
{
|
||||
if (addrPart > 3)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: this->_internalData->ipv4SecondaryDNS_AP1[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP2: this->_internalData->ipv4SecondaryDNS_AP2[addrPart] = addrValue; break;
|
||||
case FirmwareCfgAPID_AP3: this->_internalData->ipv4SecondaryDNS_AP3[addrPart] = addrValue; break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t ClientFirmwareControl::GetSubnetMask(FirmwareCfgAPID apid)
|
||||
{
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return this->_internalData->subnetMask_AP1;
|
||||
case FirmwareCfgAPID_AP2: return this->_internalData->subnetMask_AP2;
|
||||
case FirmwareCfgAPID_AP3: return this->_internalData->subnetMask_AP3;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char* ClientFirmwareControl::GetSubnetMaskString(FirmwareCfgAPID apid)
|
||||
{
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1: return &this->_subnetMaskString[0];
|
||||
case FirmwareCfgAPID_AP2: return &this->_subnetMaskString[16];
|
||||
case FirmwareCfgAPID_AP3: return &this->_subnetMaskString[32];
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetSubnetMask(FirmwareCfgAPID apid, uint8_t subnetMaskShift)
|
||||
{
|
||||
if (subnetMaskShift > 28)
|
||||
{
|
||||
subnetMaskShift = 28;
|
||||
}
|
||||
|
||||
int subnetMaskCharIndex = -1;
|
||||
uint32_t subnetMaskValue = 0;
|
||||
|
||||
switch (apid)
|
||||
{
|
||||
case FirmwareCfgAPID_AP1:
|
||||
this->_internalData->subnetMask_AP1 = subnetMaskShift;
|
||||
subnetMaskCharIndex = 0;
|
||||
break;
|
||||
|
||||
case FirmwareCfgAPID_AP2:
|
||||
this->_internalData->subnetMask_AP2 = subnetMaskShift;
|
||||
subnetMaskCharIndex = 16;
|
||||
break;
|
||||
|
||||
case FirmwareCfgAPID_AP3:
|
||||
this->_internalData->subnetMask_AP3 = subnetMaskShift;
|
||||
subnetMaskCharIndex = 32;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( (subnetMaskCharIndex >= 0) && (subnetMaskCharIndex <= 32) )
|
||||
{
|
||||
subnetMaskValue = (subnetMaskShift == 0) ? 0 : (0xFFFFFFFF << (32 - subnetMaskShift));
|
||||
memset(&this->_subnetMaskString[subnetMaskCharIndex], '\0', 16 * sizeof(char));
|
||||
snprintf(&this->_subnetMaskString[subnetMaskCharIndex], 16, "%d.%d.%d.%d", (subnetMaskValue >> 24) & 0x000000FF, (subnetMaskValue >> 16) & 0x000000FF, (subnetMaskValue >> 8) & 0x000000FF, subnetMaskValue & 0x000000FF);
|
||||
}
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetConsoleType()
|
||||
{
|
||||
return (int)this->_internalData->consoleType;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetConsoleType(int type)
|
||||
{
|
||||
this->_internalData->consoleType = (uint8_t)type;
|
||||
}
|
||||
|
||||
uint16_t* ClientFirmwareControl::GetNicknameStringBuffer()
|
||||
{
|
||||
return this->_internalData->nickname;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetNicknameWithStringBuffer(uint16_t *buffer, size_t charLength)
|
||||
{
|
||||
size_t i = 0;
|
||||
|
||||
if (buffer != NULL)
|
||||
{
|
||||
if (charLength > MAX_FW_NICKNAME_LENGTH)
|
||||
{
|
||||
charLength = MAX_FW_NICKNAME_LENGTH;
|
||||
}
|
||||
|
||||
for (; i < charLength; i++)
|
||||
{
|
||||
this->_internalData->nickname[i] = buffer[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
charLength = 0;
|
||||
}
|
||||
|
||||
for (; i < MAX_FW_NICKNAME_LENGTH+1; i++)
|
||||
{
|
||||
this->_internalData->nickname[i] = 0;
|
||||
}
|
||||
|
||||
this->_internalData->nicknameLength = charLength;
|
||||
}
|
||||
|
||||
size_t ClientFirmwareControl::GetNicknameStringLength()
|
||||
{
|
||||
return (size_t)this->_internalData->nicknameLength;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetNicknameStringLength(size_t charLength)
|
||||
{
|
||||
if (charLength > MAX_FW_NICKNAME_LENGTH)
|
||||
{
|
||||
charLength = MAX_FW_NICKNAME_LENGTH;
|
||||
}
|
||||
|
||||
this->_internalData->nicknameLength = charLength;
|
||||
}
|
||||
|
||||
uint16_t* ClientFirmwareControl::GetMessageStringBuffer()
|
||||
{
|
||||
return this->_internalData->message;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetMessageWithStringBuffer(uint16_t *buffer, size_t charLength)
|
||||
{
|
||||
size_t i = 0;
|
||||
|
||||
if (buffer != NULL)
|
||||
{
|
||||
if (charLength > MAX_FW_MESSAGE_LENGTH)
|
||||
{
|
||||
charLength = MAX_FW_MESSAGE_LENGTH;
|
||||
}
|
||||
|
||||
for (; i < charLength; i++)
|
||||
{
|
||||
this->_internalData->message[i] = buffer[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
charLength = 0;
|
||||
}
|
||||
|
||||
for (; i < MAX_FW_MESSAGE_LENGTH+1; i++)
|
||||
{
|
||||
this->_internalData->message[i] = 0;
|
||||
}
|
||||
|
||||
this->_internalData->messageLength = charLength;
|
||||
}
|
||||
|
||||
size_t ClientFirmwareControl::GetMessageStringLength()
|
||||
{
|
||||
return (size_t)this->_internalData->messageLength;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetMessageStringLength(size_t charLength)
|
||||
{
|
||||
if (charLength > MAX_FW_MESSAGE_LENGTH)
|
||||
{
|
||||
charLength = MAX_FW_MESSAGE_LENGTH;
|
||||
}
|
||||
|
||||
this->_internalData->messageLength = charLength;
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetFavoriteColorByID()
|
||||
{
|
||||
return (int)this->_internalData->favoriteColor;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetFavoriteColorByID(int colorID)
|
||||
{
|
||||
this->_internalData->favoriteColor = (uint8_t)colorID;
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetBirthdayDay()
|
||||
{
|
||||
return (int)this->_internalData->birthdayDay;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetBirthdayDay(int day)
|
||||
{
|
||||
if (day < 1)
|
||||
{
|
||||
day = 1;
|
||||
}
|
||||
|
||||
switch (this->_internalData->birthdayMonth)
|
||||
{
|
||||
case 1:
|
||||
case 3:
|
||||
case 5:
|
||||
case 7:
|
||||
case 8:
|
||||
case 10:
|
||||
case 12:
|
||||
{
|
||||
if (day > 31) day = 31;
|
||||
break;
|
||||
}
|
||||
|
||||
case 4:
|
||||
case 6:
|
||||
case 9:
|
||||
case 11:
|
||||
{
|
||||
if (day > 30) day = 30;
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
if (day > 29) day = 29;
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
this->_internalData->birthdayDay = (uint8_t)day;
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetBirthdayMonth()
|
||||
{
|
||||
return (int)this->_internalData->birthdayMonth;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetBirthdayMonth(int month)
|
||||
{
|
||||
if (month < 1)
|
||||
{
|
||||
month = 1;
|
||||
}
|
||||
else if (month > 12)
|
||||
{
|
||||
month = 12;
|
||||
}
|
||||
|
||||
this->_internalData->birthdayMonth = (uint8_t)month;
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetLanguageByID()
|
||||
{
|
||||
return (int)this->_internalData->language;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetLanguageByID(int languageID)
|
||||
{
|
||||
this->_internalData->language = (uint8_t)languageID;
|
||||
}
|
||||
|
||||
int ClientFirmwareControl::GetBacklightLevel()
|
||||
{
|
||||
return (int)this->_internalData->backlightLevel;
|
||||
}
|
||||
|
||||
void ClientFirmwareControl::SetBacklightLevel(int level)
|
||||
{
|
||||
this->_internalData->backlightLevel = (uint8_t)level;
|
||||
}
|
139
desmume/src/frontend/cocoa/ClientFirmwareControl.h
Normal file
139
desmume/src/frontend/cocoa/ClientFirmwareControl.h
Normal file
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
Copyright (C) 2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _CLIENT_FIRMWARE_CONTROL_H_
|
||||
#define _CLIENT_FIRMWARE_CONTROL_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
struct FirmwareConfig;
|
||||
|
||||
enum FirmwareCfgAPID
|
||||
{
|
||||
FirmwareCfgAPID_AP1 = 0,
|
||||
FirmwareCfgAPID_AP2 = 1,
|
||||
FirmwareCfgAPID_AP3 = 2
|
||||
};
|
||||
|
||||
enum FirmwareCfgMACAddrSetID
|
||||
{
|
||||
FirmwareCfgMACAddrSetID_Firmware = 0,
|
||||
FirmwareCfgMACAddrSetID_Custom1 = 1,
|
||||
FirmwareCfgMACAddrSetID_Custom2 = 2,
|
||||
FirmwareCfgMACAddrSetID_Custom3 = 3,
|
||||
FirmwareCfgMACAddrSetID_Custom4 = 4,
|
||||
FirmwareCfgMACAddrSetID_Custom5 = 5,
|
||||
FirmwareCfgMACAddrSetID_Custom6 = 6,
|
||||
FirmwareCfgMACAddrSetID_Custom7 = 7,
|
||||
FirmwareCfgMACAddrSetID_Custom8 = 8
|
||||
};
|
||||
|
||||
class ClientFirmwareControl
|
||||
{
|
||||
protected:
|
||||
FirmwareConfig *_internalData;
|
||||
|
||||
FirmwareCfgMACAddrSetID _macAddressSelection;
|
||||
uint32_t _firmwareMACAddressValue;
|
||||
uint32_t _customMACAddressValue;
|
||||
char _macAddressString[(1 + 8) * 18];
|
||||
char _wfcUserIDString[20];
|
||||
char _subnetMaskString[3 * 16];
|
||||
|
||||
public:
|
||||
ClientFirmwareControl();
|
||||
~ClientFirmwareControl();
|
||||
|
||||
static void WriteMACAddressStringToBuffer(const uint8_t mac4, const uint8_t mac5, const uint8_t mac6, char *stringBuffer);
|
||||
static void WriteMACAddressStringToBuffer(const uint32_t macAddressValue, char *stringBuffer);
|
||||
static void WriteWFCUserIDStringToBuffer(const uint64_t wfcUserIDValue, char *stringBuffer);
|
||||
|
||||
const FirmwareConfig& GetFirmwareConfig();
|
||||
uint32_t GenerateRandomMACValue();
|
||||
|
||||
FirmwareCfgMACAddrSetID GetMACAddressSelection();
|
||||
void SetMACAddressSelection(FirmwareCfgMACAddrSetID addressSetID);
|
||||
|
||||
uint32_t GetMACAddressValue(FirmwareCfgMACAddrSetID addressSetID);
|
||||
const char* GetMACAddressString(FirmwareCfgMACAddrSetID addressSetID);
|
||||
uint32_t GetSelectedMACAddressValue();
|
||||
uint64_t GetSelectedWFCUserID64();
|
||||
const char* GetSelectedMACAddressString();
|
||||
|
||||
void SetFirmwareMACAddressValue(uint32_t macAddressValue);
|
||||
void SetFirmwareMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6);
|
||||
void SetCustomMACAddressValue(uint32_t macAddressValue);
|
||||
void SetCustomMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6);
|
||||
|
||||
uint8_t* GetWFCUserID();
|
||||
void SetWFCUserID(uint8_t *wfcUserID);
|
||||
|
||||
uint64_t GetWFCUserID64();
|
||||
void SetWFCUserID64(uint64_t wfcUserIDValue);
|
||||
|
||||
const char* GetWFCUserIDString();
|
||||
|
||||
uint8_t GetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetSubnetMask(FirmwareCfgAPID apid);
|
||||
const char* GetSubnetMaskString(FirmwareCfgAPID apid);
|
||||
void SetSubnetMask(FirmwareCfgAPID apid, uint8_t subnetMaskShift);
|
||||
|
||||
int GetConsoleType();
|
||||
void SetConsoleType(int type);
|
||||
|
||||
uint16_t* GetNicknameStringBuffer();
|
||||
void SetNicknameWithStringBuffer(uint16_t *buffer, size_t charLength);
|
||||
|
||||
size_t GetNicknameStringLength();
|
||||
void SetNicknameStringLength(size_t charLength);
|
||||
|
||||
uint16_t* GetMessageStringBuffer();
|
||||
void SetMessageWithStringBuffer(uint16_t *buffer, size_t charLength);
|
||||
|
||||
size_t GetMessageStringLength();
|
||||
void SetMessageStringLength(size_t charLength);
|
||||
|
||||
int GetFavoriteColorByID();
|
||||
void SetFavoriteColorByID(int colorID);
|
||||
|
||||
int GetBirthdayDay();
|
||||
void SetBirthdayDay(int day);
|
||||
|
||||
int GetBirthdayMonth();
|
||||
void SetBirthdayMonth(int month);
|
||||
|
||||
int GetLanguageByID();
|
||||
void SetLanguageByID(int languageID);
|
||||
|
||||
int GetBacklightLevel();
|
||||
void SetBacklightLevel(int level);
|
||||
};
|
||||
|
||||
#endif // _CLIENT_FIRMWARE_CONTROL_H_
|
@@ -251,7 +251,6 @@
|
||||
8C43E83A27E3CD0100A35F65 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
8C43E83B27E3CD0100A35F65 /* cff.c in Sources */ = {isa = PBXBuildFile; fileRef = ABFEA7B01BB4EC1000B08C25 /* cff.c */; };
|
||||
8C43E83C27E3CD0100A35F65 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
8C43E83D27E3CD0100A35F65 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
8C43E83E27E3CD0100A35F65 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
8C43E83F27E3CD0100A35F65 /* file_path.c in Sources */ = {isa = PBXBuildFile; fileRef = AB000DC01CCC6B0700413F02 /* file_path.c */; };
|
||||
8C43E84027E3CD0100A35F65 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -567,7 +566,6 @@
|
||||
8C43E99F27E3CD4C00A35F65 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; };
|
||||
8C43E9A127E3CD4C00A35F65 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
8C43E9A227E3CD4C00A35F65 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
8C43E9A327E3CD4C00A35F65 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
8C43E9A427E3CD4C00A35F65 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
8C43E9A527E3CD4C00A35F65 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
8C43E9A627E3CD4C00A35F65 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -864,7 +862,6 @@
|
||||
8CCD84A727E40B730024BDD5 /* deposterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB301BDE1D9C8BAC00246A93 /* deposterize.cpp */; };
|
||||
8CCD84A827E40B730024BDD5 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
8CCD84A927E40B730024BDD5 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
8CCD84AA27E40B730024BDD5 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
8CCD84AB27E40B730024BDD5 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
8CCD84AC27E40B730024BDD5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
8CCD84AD27E40B730024BDD5 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -1218,7 +1215,6 @@
|
||||
AB36C82727F2C8AE00C763C8 /* deposterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB301BDE1D9C8BAC00246A93 /* deposterize.cpp */; };
|
||||
AB36C82827F2C8AE00C763C8 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB36C82927F2C8AE00C763C8 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB36C82A27F2C8AE00C763C8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB36C82B27F2C8AE00C763C8 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB36C82C27F2C8AE00C763C8 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
AB36C82D27F2C8AE00C763C8 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -1560,6 +1556,28 @@
|
||||
AB6E18092A6B218D003A564D /* CheatDatabaseViewer.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB6E17FF2A6B218D003A564D /* CheatDatabaseViewer.xib */; };
|
||||
AB6E180A2A6B218D003A564D /* CheatDatabaseViewer.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB6E17FF2A6B218D003A564D /* CheatDatabaseViewer.xib */; };
|
||||
AB6E180B2A6B218D003A564D /* CheatDatabaseViewer.xib in Resources */ = {isa = PBXBuildFile; fileRef = AB6E17FF2A6B218D003A564D /* CheatDatabaseViewer.xib */; };
|
||||
AB6E3B462E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B472E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B482E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B492E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4A2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4B2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4C2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4D2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4E2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B4F2E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B502E7385710088075E /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */; };
|
||||
AB6E3B532E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B542E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B552E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B562E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B572E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B582E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B592E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B5A2E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B5B2E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B5C2E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB6E3B5D2E73E7C80088075E /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */; };
|
||||
AB74EC8A1738499C0026C41E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB74EC891738499C0026C41E /* Carbon.framework */; };
|
||||
AB78B5C11E384F2100297FED /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB3BF4401E262943003E2B24 /* Metal.framework */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
AB78B5C21E384F2200297FED /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB3BF4401E262943003E2B24 /* Metal.framework */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
@@ -1780,7 +1798,6 @@
|
||||
AB7900D7215B84E50082AE82 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB7900D8215B84E50082AE82 /* cff.c in Sources */ = {isa = PBXBuildFile; fileRef = ABFEA7B01BB4EC1000B08C25 /* cff.c */; };
|
||||
AB7900D9215B84E50082AE82 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB7900DA215B84E50082AE82 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB7900DB215B84E50082AE82 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
AB7900DC215B84E50082AE82 /* file_path.c in Sources */ = {isa = PBXBuildFile; fileRef = AB000DC01CCC6B0700413F02 /* file_path.c */; };
|
||||
AB7900DD215B84E50082AE82 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -2124,7 +2141,6 @@
|
||||
AB79023B215B84F20082AE82 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; };
|
||||
AB79023D215B84F20082AE82 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB79023E215B84F20082AE82 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB79023F215B84F20082AE82 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB790240215B84F20082AE82 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB790241215B84F20082AE82 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
AB790242215B84F20082AE82 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -2373,7 +2389,6 @@
|
||||
AB796D4F15CDCBA200C59155 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; };
|
||||
AB796D5215CDCBA200C59155 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB796D5315CDCBA200C59155 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB796D5415CDCBA200C59155 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB796D5515CDCBA200C59155 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
AB796D5615CDCBA200C59155 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
AB796D5915CDCBA200C59155 /* inputPrefsView.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6F14C2361100D7D192 /* inputPrefsView.mm */; };
|
||||
@@ -2674,7 +2689,6 @@
|
||||
AB8F3CDB1A53AC2600A80BF6 /* cocoa_input.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104111346652500AF11D1 /* cocoa_input.mm */; };
|
||||
AB8F3CDD1A53AC2600A80BF6 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB8F3CDE1A53AC2600A80BF6 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB8F3CDF1A53AC2600A80BF6 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB8F3CE01A53AC2600A80BF6 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB8F3CE11A53AC2600A80BF6 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
AB8F3CE21A53AC2600A80BF6 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -3261,7 +3275,6 @@
|
||||
ABC8592628273FEE00A03EA9 /* deposterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB301BDE1D9C8BAC00246A93 /* deposterize.cpp */; };
|
||||
ABC8592728273FEE00A03EA9 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
ABC8592828273FEE00A03EA9 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
ABC8592928273FEE00A03EA9 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
ABC8592A28273FEE00A03EA9 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
ABC8592B28273FEE00A03EA9 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
ABC8592C28273FEE00A03EA9 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -3611,7 +3624,6 @@
|
||||
ABD2CDDA26E05CB000FB15F7 /* deposterize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB301BDE1D9C8BAC00246A93 /* deposterize.cpp */; };
|
||||
ABD2CDDB26E05CB000FB15F7 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
ABD2CDDC26E05CB000FB15F7 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
ABD2CDDD26E05CB000FB15F7 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
ABD2CDDE26E05CB000FB15F7 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
ABD2CDDF26E05CB000FB15F7 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB8B7AAB17CE8C440051CEBF /* slot1comp_protocol.cpp */; };
|
||||
ABD2CDE026E05CB000FB15F7 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
@@ -4088,6 +4100,10 @@
|
||||
AB6E17F32A675BF1003A564D /* CheatDatabaseWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CheatDatabaseWindowController.h; sourceTree = "<group>"; };
|
||||
AB6E17F42A675BF1003A564D /* CheatDatabaseWindowController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = CheatDatabaseWindowController.mm; sourceTree = "<group>"; };
|
||||
AB6E18002A6B218D003A564D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = translations/English.lproj/CheatDatabaseViewer.xib; sourceTree = "<group>"; };
|
||||
AB6E3B442E7385710088075E /* ClientFirmwareControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientFirmwareControl.h; sourceTree = "<group>"; };
|
||||
AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ClientFirmwareControl.cpp; sourceTree = "<group>"; };
|
||||
AB6E3B512E73E7C80088075E /* ClientCheatManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientCheatManager.h; sourceTree = "<group>"; };
|
||||
AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ClientCheatManager.cpp; sourceTree = "<group>"; };
|
||||
AB6FBEF5139B6258007BB045 /* slot1_retail_nand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1_retail_nand.cpp; sourceTree = "<group>"; };
|
||||
AB74EC891738499C0026C41E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
|
||||
AB75226D14C7BB51009B97B3 /* AppIcon_FirmwareConfig.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon_FirmwareConfig.icns; sourceTree = "<group>"; };
|
||||
@@ -4476,8 +4492,6 @@
|
||||
ABDDF7C81898F032007583C1 /* Icon_FrameJump_420x420.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_FrameJump_420x420.png; path = images/Icon_FrameJump_420x420.png; sourceTree = "<group>"; };
|
||||
ABDE648E2E21068500C03E0B /* GPU_Operations_AltiVec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GPU_Operations_AltiVec.h; sourceTree = "<group>"; };
|
||||
ABDE648F2E21068500C03E0B /* GPU_Operations_AltiVec.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = GPU_Operations_AltiVec.cpp; sourceTree = "<group>"; };
|
||||
ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = "<group>"; };
|
||||
ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = "<group>"; };
|
||||
ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = "<group>"; };
|
||||
ABE670261415DE6C00E8E4C9 /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = "<group>"; };
|
||||
ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = "<group>"; };
|
||||
@@ -4888,9 +4902,11 @@
|
||||
ABD10AE51715FCDD00B5729D /* audiosamplegenerator.cpp */,
|
||||
AB79913E2E712F510030C0A6 /* ClientAudioOutput.cpp */,
|
||||
AB28625720AE3E9F00EAED43 /* ClientAVCaptureObject.cpp */,
|
||||
AB6E3B522E73E7C80088075E /* ClientCheatManager.cpp */,
|
||||
ABAD07DA1E19CAA6007867CA /* ClientDisplayView.cpp */,
|
||||
ABDB1BE12E6602A5002AD9AF /* ClientEmulationOutput.cpp */,
|
||||
ABB1C9461F5281AE0004844F /* ClientExecutionControl.cpp */,
|
||||
AB6E3B452E7385710088075E /* ClientFirmwareControl.cpp */,
|
||||
AB11AD871F6757F800CB298E /* ClientInputHandler.cpp */,
|
||||
ABDB1BEE2E66486E002AD9AF /* ClientVideoOutput.cpp */,
|
||||
AB1B9E5F1501A78000464647 /* coreaudiosound.cpp */,
|
||||
@@ -4904,11 +4920,13 @@
|
||||
ABD10AE31715FCDD00B5729D /* audiosamplegenerator.h */,
|
||||
AB79913D2E712F510030C0A6 /* ClientAudioOutput.h */,
|
||||
AB28625820AE3E9F00EAED43 /* ClientAVCaptureObject.h */,
|
||||
AB6E3B512E73E7C80088075E /* ClientCheatManager.h */,
|
||||
ABAD07DB1E19CAA6007867CA /* ClientDisplayView.h */,
|
||||
ABDB1BE02E6602A5002AD9AF /* ClientEmulationOutput.h */,
|
||||
ABDB1BED2E66486E002AD9AF /* ClientVideoOutput.h */,
|
||||
ABB1C9471F5281AE0004844F /* ClientExecutionControl.h */,
|
||||
AB6E3B442E7385710088075E /* ClientFirmwareControl.h */,
|
||||
AB11AD881F6757F800CB298E /* ClientInputHandler.h */,
|
||||
ABDB1BED2E66486E002AD9AF /* ClientVideoOutput.h */,
|
||||
ABA6574914511EC90077E5E9 /* cocoa_cheat.h */,
|
||||
ABD103FE1346652500AF11D1 /* cocoa_core.h */,
|
||||
AB58F32B1364F44B0074C376 /* cocoa_file.h */,
|
||||
@@ -4919,7 +4937,6 @@
|
||||
ABD104001346652500AF11D1 /* cocoa_rom.h */,
|
||||
AB5648FD186E6EA8002740F4 /* cocoa_slot2.h */,
|
||||
AB80E050142BC4FA00A52038 /* cocoa_util.h */,
|
||||
ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */,
|
||||
AB1B9E611501A78000464647 /* coreaudiosound.h */,
|
||||
AB28625520AE3E9E00EAED43 /* macOS_driver.h */,
|
||||
AB5B1D4821D1F31D00BF0E0F /* MetalRendererCommonShaders.h */,
|
||||
@@ -4939,7 +4956,6 @@
|
||||
ABD104131346652500AF11D1 /* cocoa_rom.mm */,
|
||||
AB5648FE186E6EA8002740F4 /* cocoa_slot2.mm */,
|
||||
AB80E04C142BC4A800A52038 /* cocoa_util.mm */,
|
||||
ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */,
|
||||
);
|
||||
name = "Cocoa Port";
|
||||
sourceTree = "<group>";
|
||||
@@ -8023,6 +8039,7 @@
|
||||
8C43E7D127E3CD0100A35F65 /* ftbase.c in Sources */,
|
||||
8C43E7D227E3CD0100A35F65 /* fatfile.cpp in Sources */,
|
||||
8C43E7D327E3CD0100A35F65 /* FIFO.cpp in Sources */,
|
||||
AB6E3B582E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABDB1BF72E66486E002AD9AF /* ClientVideoOutput.cpp in Sources */,
|
||||
8C43E7D427E3CD0100A35F65 /* sfnt.c in Sources */,
|
||||
8C43E7D527E3CD0100A35F65 /* truetype.c in Sources */,
|
||||
@@ -8102,6 +8119,7 @@
|
||||
8C43E81D27E3CD0100A35F65 /* TDStretch.cpp in Sources */,
|
||||
8C43E81E27E3CD0100A35F65 /* texcache.cpp in Sources */,
|
||||
8C43E81F27E3CD0100A35F65 /* async_job.c in Sources */,
|
||||
AB6E3B462E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
8C43E82027E3CD0100A35F65 /* thumb_instructions.cpp in Sources */,
|
||||
8C43E82127E3CD0100A35F65 /* advanscene.cpp in Sources */,
|
||||
8C43E82227E3CD0100A35F65 /* ClientInputHandler.cpp in Sources */,
|
||||
@@ -8133,7 +8151,6 @@
|
||||
8C43E83A27E3CD0100A35F65 /* cocoa_rom.mm in Sources */,
|
||||
8C43E83B27E3CD0100A35F65 /* cff.c in Sources */,
|
||||
8C43E83C27E3CD0100A35F65 /* cocoa_util.mm in Sources */,
|
||||
8C43E83D27E3CD0100A35F65 /* cocoa_videofilter.mm in Sources */,
|
||||
8C43E83E27E3CD0100A35F65 /* appDelegate.mm in Sources */,
|
||||
8C43E83F27E3CD0100A35F65 /* file_path.c in Sources */,
|
||||
8C43E84027E3CD0100A35F65 /* cheatWindowDelegate.mm in Sources */,
|
||||
@@ -8237,6 +8254,7 @@
|
||||
8C43E93627E3CD4C00A35F65 /* debug.cpp in Sources */,
|
||||
8C43E93727E3CD4C00A35F65 /* decrypt.cpp in Sources */,
|
||||
8C43E93827E3CD4C00A35F65 /* rthreads.c in Sources */,
|
||||
AB6E3B502E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
8C43E93927E3CD4C00A35F65 /* directory.cpp in Sources */,
|
||||
8C43E93A27E3CD4C00A35F65 /* Disassembler.cpp in Sources */,
|
||||
8C43E93B27E3CD4C00A35F65 /* RomInfoPanel.mm in Sources */,
|
||||
@@ -8307,6 +8325,7 @@
|
||||
8C43E97827E3CD4C00A35F65 /* slot2_rumblepak.cpp in Sources */,
|
||||
8C43E97927E3CD4C00A35F65 /* sndOSX.cpp in Sources */,
|
||||
8C43E97A27E3CD4C00A35F65 /* SndOut.cpp in Sources */,
|
||||
AB6E3B542E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
AB6E17F82A675BF1003A564D /* CheatDatabaseWindowController.mm in Sources */,
|
||||
8C43E97B27E3CD4C00A35F65 /* psnames.c in Sources */,
|
||||
8C43E97C27E3CD4C00A35F65 /* Slot2WindowDelegate.mm in Sources */,
|
||||
@@ -8347,7 +8366,6 @@
|
||||
8C43E99F27E3CD4C00A35F65 /* cocoa_input.mm in Sources */,
|
||||
8C43E9A127E3CD4C00A35F65 /* cocoa_rom.mm in Sources */,
|
||||
8C43E9A227E3CD4C00A35F65 /* cocoa_util.mm in Sources */,
|
||||
8C43E9A327E3CD4C00A35F65 /* cocoa_videofilter.mm in Sources */,
|
||||
8C43E9A427E3CD4C00A35F65 /* OGLRender.cpp in Sources */,
|
||||
8C43E9A527E3CD4C00A35F65 /* slot1comp_protocol.cpp in Sources */,
|
||||
8C43E9A627E3CD4C00A35F65 /* appDelegate.mm in Sources */,
|
||||
@@ -8434,6 +8452,7 @@
|
||||
8CCD844227E40B730024BDD5 /* firmware.cpp in Sources */,
|
||||
8CCD844327E40B730024BDD5 /* async_job.c in Sources */,
|
||||
8CCD844427E40B730024BDD5 /* gfx3d.cpp in Sources */,
|
||||
AB6E3B592E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABDB1BF52E66486E002AD9AF /* ClientVideoOutput.cpp in Sources */,
|
||||
8CCD844527E40B730024BDD5 /* DisplayViewCALayer.mm in Sources */,
|
||||
8CCD844627E40B730024BDD5 /* GPU.cpp in Sources */,
|
||||
@@ -8513,6 +8532,7 @@
|
||||
8CCD848E27E40B730024BDD5 /* psnames.c in Sources */,
|
||||
8CCD848F27E40B730024BDD5 /* ftpatent.c in Sources */,
|
||||
8CCD849027E40B730024BDD5 /* version.cpp in Sources */,
|
||||
AB6E3B4D2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
8CCD849127E40B730024BDD5 /* vfat.cpp in Sources */,
|
||||
8CCD849227E40B730024BDD5 /* videofilter.cpp in Sources */,
|
||||
8CCD849327E40B730024BDD5 /* ClientInputHandler.cpp in Sources */,
|
||||
@@ -8540,7 +8560,6 @@
|
||||
8CCD84A727E40B730024BDD5 /* deposterize.cpp in Sources */,
|
||||
8CCD84A827E40B730024BDD5 /* cocoa_rom.mm in Sources */,
|
||||
8CCD84A927E40B730024BDD5 /* cocoa_util.mm in Sources */,
|
||||
8CCD84AA27E40B730024BDD5 /* cocoa_videofilter.mm in Sources */,
|
||||
8CCD84AB27E40B730024BDD5 /* OGLRender.cpp in Sources */,
|
||||
8CCD84AC27E40B730024BDD5 /* slot1comp_protocol.cpp in Sources */,
|
||||
8CCD84AD27E40B730024BDD5 /* appDelegate.mm in Sources */,
|
||||
@@ -8623,6 +8642,7 @@
|
||||
AB36C7B127F2C8AE00C763C8 /* Disassembler.cpp in Sources */,
|
||||
AB88005A2AD5EC500090D47F /* slot2_hcv1000.cpp in Sources */,
|
||||
AB36C7B227F2C8AE00C763C8 /* disc.cpp in Sources */,
|
||||
AB6E3B482E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
AB36C7B327F2C8AE00C763C8 /* dlditool.cpp in Sources */,
|
||||
AB36C7B427F2C8AE00C763C8 /* driver.cpp in Sources */,
|
||||
AB36C7B527F2C8AE00C763C8 /* emufat.cpp in Sources */,
|
||||
@@ -8718,6 +8738,7 @@
|
||||
AB36C80D27F2C8AE00C763C8 /* WifiSettingsPanel.mm in Sources */,
|
||||
AB36C80E27F2C8AE00C763C8 /* psnames.c in Sources */,
|
||||
AB36C80F27F2C8AE00C763C8 /* ftpatent.c in Sources */,
|
||||
AB6E3B5B2E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABDB1BE92E6602A5002AD9AF /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB36C81027F2C8AE00C763C8 /* version.cpp in Sources */,
|
||||
AB36C81127F2C8AE00C763C8 /* vfat.cpp in Sources */,
|
||||
@@ -8741,7 +8762,6 @@
|
||||
AB36C82727F2C8AE00C763C8 /* deposterize.cpp in Sources */,
|
||||
AB36C82827F2C8AE00C763C8 /* cocoa_rom.mm in Sources */,
|
||||
AB36C82927F2C8AE00C763C8 /* cocoa_util.mm in Sources */,
|
||||
AB36C82A27F2C8AE00C763C8 /* cocoa_videofilter.mm in Sources */,
|
||||
AB36C82B27F2C8AE00C763C8 /* OGLRender.cpp in Sources */,
|
||||
AB36C82C27F2C8AE00C763C8 /* slot1comp_protocol.cpp in Sources */,
|
||||
AB36C82D27F2C8AE00C763C8 /* appDelegate.mm in Sources */,
|
||||
@@ -8863,8 +8883,10 @@
|
||||
AB790068215B84E50082AE82 /* driver.cpp in Sources */,
|
||||
AB790069215B84E50082AE82 /* emufat.cpp in Sources */,
|
||||
AB79006A215B84E50082AE82 /* MacScreenshotCaptureTool.mm in Sources */,
|
||||
AB6E3B472E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
AB79006B215B84E50082AE82 /* DisplayViewCALayer.mm in Sources */,
|
||||
AB79006C215B84E50082AE82 /* Slot2WindowDelegate.mm in Sources */,
|
||||
AB6E3B532E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
AB79006D215B84E50082AE82 /* slot1_retail_mcrom.cpp in Sources */,
|
||||
AB79006E215B84E50082AE82 /* emufile.cpp in Sources */,
|
||||
AB79006F215B84E50082AE82 /* fatdir.cpp in Sources */,
|
||||
@@ -8978,7 +9000,6 @@
|
||||
AB7900D7215B84E50082AE82 /* cocoa_rom.mm in Sources */,
|
||||
AB7900D8215B84E50082AE82 /* cff.c in Sources */,
|
||||
AB7900D9215B84E50082AE82 /* cocoa_util.mm in Sources */,
|
||||
AB7900DA215B84E50082AE82 /* cocoa_videofilter.mm in Sources */,
|
||||
AB7900DB215B84E50082AE82 /* appDelegate.mm in Sources */,
|
||||
AB7900DC215B84E50082AE82 /* file_path.c in Sources */,
|
||||
AB7991272E70B1420030C0A6 /* CocoaDisplayView.mm in Sources */,
|
||||
@@ -9066,6 +9087,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
AB6E3B4F2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
AB7901AA215B84F20082AE82 /* smooth.c in Sources */,
|
||||
AB7901AB215B84F20082AE82 /* MacMetalDisplayViewShaders.metal in Sources */,
|
||||
AB7901AC215B84F20082AE82 /* ftpatent.c in Sources */,
|
||||
@@ -9222,7 +9244,6 @@
|
||||
AB79023B215B84F20082AE82 /* cocoa_input.mm in Sources */,
|
||||
AB79023D215B84F20082AE82 /* cocoa_rom.mm in Sources */,
|
||||
AB79023E215B84F20082AE82 /* cocoa_util.mm in Sources */,
|
||||
AB79023F215B84F20082AE82 /* cocoa_videofilter.mm in Sources */,
|
||||
AB790240215B84F20082AE82 /* OGLRender.cpp in Sources */,
|
||||
AB790241215B84F20082AE82 /* slot1comp_protocol.cpp in Sources */,
|
||||
AB790242215B84F20082AE82 /* appDelegate.mm in Sources */,
|
||||
@@ -9240,6 +9261,7 @@
|
||||
AB79024E215B84F20082AE82 /* lq2x.cpp in Sources */,
|
||||
AB79914D2E71EF050030C0A6 /* CocoaAudioController.mm in Sources */,
|
||||
AB79024F215B84F20082AE82 /* xbrz.cpp in Sources */,
|
||||
AB6E3B5A2E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
AB790250215B84F20082AE82 /* OGLDisplayOutput_3_2.cpp in Sources */,
|
||||
AB790251215B84F20082AE82 /* scanline.cpp in Sources */,
|
||||
AB790252215B84F20082AE82 /* coreaudiosound.cpp in Sources */,
|
||||
@@ -9332,8 +9354,10 @@
|
||||
AB796D0215CDCBA200C59155 /* driver.cpp in Sources */,
|
||||
AB796D0315CDCBA200C59155 /* emufat.cpp in Sources */,
|
||||
ABD1FBF11F7B7E7E00B4F648 /* MacScreenshotCaptureTool.mm in Sources */,
|
||||
AB6E3B4B2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
AB3BF4381E25D9AE003E2B24 /* DisplayViewCALayer.mm in Sources */,
|
||||
AB564904186E6EBC002740F4 /* Slot2WindowDelegate.mm in Sources */,
|
||||
AB6E3B5C2E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
AB9038B217C5ED2200F410BD /* slot1_retail_mcrom.cpp in Sources */,
|
||||
AB796D0415CDCBA200C59155 /* emufile.cpp in Sources */,
|
||||
AB796D0515CDCBA200C59155 /* fatdir.cpp in Sources */,
|
||||
@@ -9447,7 +9471,6 @@
|
||||
AB796D5215CDCBA200C59155 /* cocoa_rom.mm in Sources */,
|
||||
ABFEA8851BB4EC1100B08C25 /* cff.c in Sources */,
|
||||
AB796D5315CDCBA200C59155 /* cocoa_util.mm in Sources */,
|
||||
AB796D5415CDCBA200C59155 /* cocoa_videofilter.mm in Sources */,
|
||||
AB796D5515CDCBA200C59155 /* appDelegate.mm in Sources */,
|
||||
AB000DCB1CCC6B0700413F02 /* file_path.c in Sources */,
|
||||
AB79912B2E70B1420030C0A6 /* CocoaDisplayView.mm in Sources */,
|
||||
@@ -9535,6 +9558,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
AB6E3B4C2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
ABFEA8CC1BB4EC1100B08C25 /* smooth.c in Sources */,
|
||||
AB54718C1E27610500508C5C /* MacMetalDisplayViewShaders.metal in Sources */,
|
||||
ABFEA8421BB4EC1100B08C25 /* ftpatent.c in Sources */,
|
||||
@@ -9691,7 +9715,6 @@
|
||||
AB8F3CDB1A53AC2600A80BF6 /* cocoa_input.mm in Sources */,
|
||||
AB8F3CDD1A53AC2600A80BF6 /* cocoa_rom.mm in Sources */,
|
||||
AB8F3CDE1A53AC2600A80BF6 /* cocoa_util.mm in Sources */,
|
||||
AB8F3CDF1A53AC2600A80BF6 /* cocoa_videofilter.mm in Sources */,
|
||||
AB8F3CE01A53AC2600A80BF6 /* OGLRender.cpp in Sources */,
|
||||
AB8F3CE11A53AC2600A80BF6 /* slot1comp_protocol.cpp in Sources */,
|
||||
AB8F3CE21A53AC2600A80BF6 /* appDelegate.mm in Sources */,
|
||||
@@ -9709,6 +9732,7 @@
|
||||
AB8F3CEC1A53AC2600A80BF6 /* lq2x.cpp in Sources */,
|
||||
AB7991532E71EF060030C0A6 /* CocoaAudioController.mm in Sources */,
|
||||
AB8F3CED1A53AC2600A80BF6 /* xbrz.cpp in Sources */,
|
||||
AB6E3B562E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABB24F6F1A81EE92006C1108 /* OGLDisplayOutput_3_2.cpp in Sources */,
|
||||
AB8F3CEE1A53AC2600A80BF6 /* scanline.cpp in Sources */,
|
||||
AB8F3CEF1A53AC2600A80BF6 /* coreaudiosound.cpp in Sources */,
|
||||
@@ -9807,6 +9831,7 @@
|
||||
ABB3C6871501C04F00E0C22E /* hq2x.cpp in Sources */,
|
||||
ABB1C94B1F5281AE0004844F /* ClientExecutionControl.cpp in Sources */,
|
||||
ABB3C6881501C04F00E0C22E /* hq4x.cpp in Sources */,
|
||||
AB6E3B492E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
AB7991422E712F510030C0A6 /* ClientAudioOutput.cpp in Sources */,
|
||||
ABB3C6891501C04F00E0C22E /* lq2x.cpp in Sources */,
|
||||
ABDB1BF92E66486E002AD9AF /* ClientVideoOutput.cpp in Sources */,
|
||||
@@ -9860,6 +9885,7 @@
|
||||
ABB3C6A81501C04F00E0C22E /* tinyxmlerror.cpp in Sources */,
|
||||
AB49B552281687B90069F1D7 /* smooth.c in Sources */,
|
||||
ABB3C6A91501C04F00E0C22E /* tinyxmlparser.cpp in Sources */,
|
||||
AB6E3B572E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABADF11E1DEA4CFC00A142B1 /* features_cpu.c in Sources */,
|
||||
ABB3C6AB1501C04F00E0C22E /* datetime.cpp in Sources */,
|
||||
AB9038B117C5ED2200F410BD /* slot1_retail_auto.cpp in Sources */,
|
||||
@@ -9977,8 +10003,10 @@
|
||||
ABC858B928273FEE00A03EA9 /* fatfile.cpp in Sources */,
|
||||
ABC858BA28273FEE00A03EA9 /* FIFO.cpp in Sources */,
|
||||
ABC858BB28273FEE00A03EA9 /* MacScreenshotCaptureTool.mm in Sources */,
|
||||
AB6E3B4A2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
ABC858BC28273FEE00A03EA9 /* FIFOSampleBuffer.cpp in Sources */,
|
||||
ABC858BD28273FEE00A03EA9 /* file_allocation_table.cpp in Sources */,
|
||||
AB6E3B552E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABC858BE28273FEE00A03EA9 /* slot1_retail_mcrom_debug.cpp in Sources */,
|
||||
ABC858BF28273FEE00A03EA9 /* filetime.cpp in Sources */,
|
||||
ABC858C028273FEE00A03EA9 /* FIRFilter.cpp in Sources */,
|
||||
@@ -10088,7 +10116,6 @@
|
||||
ABC8592628273FEE00A03EA9 /* deposterize.cpp in Sources */,
|
||||
ABC8592728273FEE00A03EA9 /* cocoa_rom.mm in Sources */,
|
||||
ABC8592828273FEE00A03EA9 /* cocoa_util.mm in Sources */,
|
||||
ABC8592928273FEE00A03EA9 /* cocoa_videofilter.mm in Sources */,
|
||||
ABC8592A28273FEE00A03EA9 /* OGLRender.cpp in Sources */,
|
||||
ABC8592B28273FEE00A03EA9 /* slot1comp_protocol.cpp in Sources */,
|
||||
ABC8592C28273FEE00A03EA9 /* appDelegate.mm in Sources */,
|
||||
@@ -10211,8 +10238,10 @@
|
||||
ABD2CD6D26E05CB000FB15F7 /* fatfile.cpp in Sources */,
|
||||
ABD2CD6E26E05CB000FB15F7 /* FIFO.cpp in Sources */,
|
||||
ABD2CD6F26E05CB000FB15F7 /* MacScreenshotCaptureTool.mm in Sources */,
|
||||
AB6E3B4E2E7385710088075E /* ClientFirmwareControl.cpp in Sources */,
|
||||
ABD2CD7026E05CB000FB15F7 /* FIFOSampleBuffer.cpp in Sources */,
|
||||
ABD2CD7126E05CB000FB15F7 /* file_allocation_table.cpp in Sources */,
|
||||
AB6E3B5D2E73E7C80088075E /* ClientCheatManager.cpp in Sources */,
|
||||
ABD2CD7226E05CB000FB15F7 /* slot1_retail_mcrom_debug.cpp in Sources */,
|
||||
ABD2CD7326E05CB000FB15F7 /* filetime.cpp in Sources */,
|
||||
ABD2CD7426E05CB000FB15F7 /* FIRFilter.cpp in Sources */,
|
||||
@@ -10322,7 +10351,6 @@
|
||||
ABD2CDDA26E05CB000FB15F7 /* deposterize.cpp in Sources */,
|
||||
ABD2CDDB26E05CB000FB15F7 /* cocoa_rom.mm in Sources */,
|
||||
ABD2CDDC26E05CB000FB15F7 /* cocoa_util.mm in Sources */,
|
||||
ABD2CDDD26E05CB000FB15F7 /* cocoa_videofilter.mm in Sources */,
|
||||
ABD2CDDE26E05CB000FB15F7 /* OGLRender.cpp in Sources */,
|
||||
ABD2CDDF26E05CB000FB15F7 /* slot1comp_protocol.cpp in Sources */,
|
||||
ABD2CDE026E05CB000FB15F7 /* appDelegate.mm in Sources */,
|
||||
|
@@ -301,6 +301,16 @@
|
||||
AB1CC8311AA50C8D008B0A16 /* Icon_MicrophoneGray_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB1CC8181AA50C8D008B0A16 /* Icon_MicrophoneGray_256x256.png */; };
|
||||
AB1CC8321AA50C8D008B0A16 /* Icon_MicrophoneGreen_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB1CC8191AA50C8D008B0A16 /* Icon_MicrophoneGreen_256x256.png */; };
|
||||
AB1CC8331AA50C8D008B0A16 /* Icon_MicrophoneRed_256x256.png in Resources */ = {isa = PBXBuildFile; fileRef = AB1CC81A1AA50C8D008B0A16 /* Icon_MicrophoneRed_256x256.png */; };
|
||||
AB1E5A362E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */; };
|
||||
AB1E5A372E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */; };
|
||||
AB1E5A382E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */; };
|
||||
AB1E5A392E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */; };
|
||||
AB1E5A3A2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */; };
|
||||
AB1E5A3B2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */; };
|
||||
AB1E5A3C2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */; };
|
||||
AB1E5A3D2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */; };
|
||||
AB1E5A3E2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */; };
|
||||
AB1E5A3F2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */; };
|
||||
AB213D45170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; };
|
||||
AB213D46170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; };
|
||||
AB213D47170CB141006DDB0F /* InputProfileController.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB213D44170CB141006DDB0F /* InputProfileController.mm */; };
|
||||
@@ -463,7 +473,6 @@
|
||||
AB2A9A461725F00F0062C1A1 /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* mic_ext.cpp */; };
|
||||
AB2A9A481725F00F0062C1A1 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB2A9A491725F00F0062C1A1 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB2A9A4A1725F00F0062C1A1 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB2A9A4B1725F00F0062C1A1 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB2A9A4C1725F00F0062C1A1 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
AB2A9A4D1725F00F0062C1A1 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -660,7 +669,6 @@
|
||||
AB2F3C2515CF9C6000858373 /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* mic_ext.cpp */; };
|
||||
AB2F3C2715CF9C6000858373 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB2F3C2815CF9C6000858373 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB2F3C2915CF9C6000858373 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB2F3C2A15CF9C6000858373 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB2F3C2B15CF9C6000858373 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
AB2F3C2C15CF9C6000858373 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -972,7 +980,6 @@
|
||||
AB711F641481C35F009011C8 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABE6702A1415DE6C00E8E4C9 /* tinyxmlparser.cpp */; };
|
||||
AB711F6C1481C35F009011C8 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB711F6D1481C35F009011C8 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AB817A35143EE2DB00A7DFE9 /* videofilter.cpp */; };
|
||||
AB711F6E1481C35F009011C8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB711F701481C35F009011C8 /* cocoa_cheat.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABA6574A14511EC90077E5E9 /* cocoa_cheat.mm */; };
|
||||
AB711F741481C35F009011C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
AB711F751481C35F009011C8 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ABC570D0134431CE00E7B0B1 /* AudioUnit.framework */; };
|
||||
@@ -1129,7 +1136,6 @@
|
||||
AB73AA131507C9F500A310C8 /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* mic_ext.cpp */; };
|
||||
AB73AA151507C9F500A310C8 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
AB73AA161507C9F500A310C8 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
AB73AA171507C9F500A310C8 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
AB73AA181507C9F500A310C8 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
AB73AA191507C9F500A310C8 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
AB73AA1A1507C9F500A310C8 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -1420,7 +1426,6 @@
|
||||
ABAD101B15ACE7A00000EC47 /* mic_ext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD9A46413DB99B300777194 /* mic_ext.cpp */; };
|
||||
ABAD101D15ACE7A00000EC47 /* cocoa_rom.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABD104131346652500AF11D1 /* cocoa_rom.mm */; };
|
||||
ABAD101E15ACE7A00000EC47 /* cocoa_util.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB80E04C142BC4A800A52038 /* cocoa_util.mm */; };
|
||||
ABAD101F15ACE7A00000EC47 /* cocoa_videofilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */; };
|
||||
ABAD102015ACE7A00000EC47 /* OGLRender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABD1FEC11345AC8400AF11D1 /* OGLRender.cpp */; };
|
||||
ABAD102115ACE7A00000EC47 /* appDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6714C2361100D7D192 /* appDelegate.mm */; };
|
||||
ABAD102215ACE7A00000EC47 /* cheatWindowDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = AB3ACB6914C2361100D7D192 /* cheatWindowDelegate.mm */; };
|
||||
@@ -1949,6 +1954,10 @@
|
||||
AB1CC8181AA50C8D008B0A16 /* Icon_MicrophoneGray_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneGray_256x256.png; path = images/Icon_MicrophoneGray_256x256.png; sourceTree = "<group>"; };
|
||||
AB1CC8191AA50C8D008B0A16 /* Icon_MicrophoneGreen_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneGreen_256x256.png; path = images/Icon_MicrophoneGreen_256x256.png; sourceTree = "<group>"; };
|
||||
AB1CC81A1AA50C8D008B0A16 /* Icon_MicrophoneRed_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_MicrophoneRed_256x256.png; path = images/Icon_MicrophoneRed_256x256.png; sourceTree = "<group>"; };
|
||||
AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClientCheatManager.cpp; sourceTree = "<group>"; };
|
||||
AB1E5A332E73F0AC008AFF9F /* ClientCheatManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientCheatManager.h; sourceTree = "<group>"; };
|
||||
AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClientFirmwareControl.cpp; sourceTree = "<group>"; };
|
||||
AB1E5A352E73F0AC008AFF9F /* ClientFirmwareControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ClientFirmwareControl.h; sourceTree = "<group>"; };
|
||||
AB213D43170CB141006DDB0F /* InputProfileController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InputProfileController.h; sourceTree = "<group>"; };
|
||||
AB213D44170CB141006DDB0F /* InputProfileController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = InputProfileController.mm; sourceTree = "<group>"; };
|
||||
AB213E981710D074006DDB0F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
|
||||
@@ -2370,8 +2379,6 @@
|
||||
ABD59846187D4A6C00069403 /* Icon_PaddleKnob_256x256.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon_PaddleKnob_256x256.png; path = images/Icon_PaddleKnob_256x256.png; sourceTree = "<group>"; };
|
||||
ABD9A46313DB99B300777194 /* mic_ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mic_ext.h; sourceTree = "<group>"; };
|
||||
ABD9A46413DB99B300777194 /* mic_ext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mic_ext.cpp; sourceTree = "<group>"; };
|
||||
ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cocoa_videofilter.h; sourceTree = "<group>"; };
|
||||
ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = cocoa_videofilter.mm; sourceTree = "<group>"; };
|
||||
ABE670251415DE6C00E8E4C9 /* tinystr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinystr.cpp; sourceTree = "<group>"; };
|
||||
ABE670261415DE6C00E8E4C9 /* tinystr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tinystr.h; sourceTree = "<group>"; };
|
||||
ABE670271415DE6C00E8E4C9 /* tinyxml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxml.cpp; sourceTree = "<group>"; };
|
||||
@@ -2594,9 +2601,11 @@
|
||||
AB2145221714DFF4006DDB0F /* audiosamplegenerator.cpp */,
|
||||
AB561BFD2E72AD6E007F88A5 /* ClientAudioOutput.cpp */,
|
||||
ABD1267120AE812900EFE1B2 /* ClientAVCaptureObject.cpp */,
|
||||
AB1E5A322E73F0AC008AFF9F /* ClientCheatManager.cpp */,
|
||||
AB0F13911E1B7C320075684F /* ClientDisplayView.cpp */,
|
||||
AB561BFF2E72AD6E007F88A5 /* ClientEmulationOutput.cpp */,
|
||||
ABD4F2711F54A51000D75A1F /* ClientExecutionControl.cpp */,
|
||||
AB1E5A342E73F0AC008AFF9F /* ClientFirmwareControl.cpp */,
|
||||
ABC04DA11F67A20500EA6ED7 /* ClientInputHandler.cpp */,
|
||||
AB561C012E72AD6E007F88A5 /* ClientVideoOutput.cpp */,
|
||||
ABD0A5341501AA5A0074A094 /* coreaudiosound.cpp */,
|
||||
@@ -2610,9 +2619,11 @@
|
||||
AB2145211714DFF4006DDB0F /* audiosamplegenerator.h */,
|
||||
AB561BFE2E72AD6E007F88A5 /* ClientAudioOutput.h */,
|
||||
ABD1267220AE812900EFE1B2 /* ClientAVCaptureObject.h */,
|
||||
AB1E5A332E73F0AC008AFF9F /* ClientCheatManager.h */,
|
||||
AB0F13901E1B7C320075684F /* ClientDisplayView.h */,
|
||||
AB561C002E72AD6E007F88A5 /* ClientEmulationOutput.h */,
|
||||
ABD4F2721F54A51000D75A1F /* ClientExecutionControl.h */,
|
||||
AB1E5A352E73F0AC008AFF9F /* ClientFirmwareControl.h */,
|
||||
ABC04DA21F67A20500EA6ED7 /* ClientInputHandler.h */,
|
||||
AB561C022E72AD6E007F88A5 /* ClientVideoOutput.h */,
|
||||
ABA6574914511EC90077E5E9 /* cocoa_cheat.h */,
|
||||
@@ -2625,7 +2636,6 @@
|
||||
ABD104001346652500AF11D1 /* cocoa_rom.h */,
|
||||
ABAE2F8218682B8F00C92F4F /* cocoa_slot2.h */,
|
||||
AB80E050142BC4FA00A52038 /* cocoa_util.h */,
|
||||
ABE5DFE3143FB1DA00835AD8 /* cocoa_videofilter.h */,
|
||||
ABD0A5361501AA5A0074A094 /* coreaudiosound.h */,
|
||||
ABD1267420AE812900EFE1B2 /* macOS_driver.h */,
|
||||
ABD9A46313DB99B300777194 /* mic_ext.h */,
|
||||
@@ -2643,7 +2653,6 @@
|
||||
ABD104131346652500AF11D1 /* cocoa_rom.mm */,
|
||||
ABAE2F8318682B8F00C92F4F /* cocoa_slot2.mm */,
|
||||
AB80E04C142BC4A800A52038 /* cocoa_util.mm */,
|
||||
ABE5DFE4143FB1DA00835AD8 /* cocoa_videofilter.mm */,
|
||||
);
|
||||
name = "Cocoa Port";
|
||||
sourceTree = "<group>";
|
||||
@@ -4799,7 +4808,6 @@
|
||||
AB2A9A461725F00F0062C1A1 /* mic_ext.cpp in Sources */,
|
||||
AB2A9A481725F00F0062C1A1 /* cocoa_rom.mm in Sources */,
|
||||
AB2A9A491725F00F0062C1A1 /* cocoa_util.mm in Sources */,
|
||||
AB2A9A4A1725F00F0062C1A1 /* cocoa_videofilter.mm in Sources */,
|
||||
AB2A9A4B1725F00F0062C1A1 /* OGLRender.cpp in Sources */,
|
||||
AB2A9A4C1725F00F0062C1A1 /* appDelegate.mm in Sources */,
|
||||
AB2A9A4D1725F00F0062C1A1 /* cheatWindowDelegate.mm in Sources */,
|
||||
@@ -4910,6 +4918,8 @@
|
||||
AB561C062E72AD6E007F88A5 /* ClientAudioOutput.cpp in Sources */,
|
||||
AB561C072E72AD6E007F88A5 /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB561C082E72AD6E007F88A5 /* ClientVideoOutput.cpp in Sources */,
|
||||
AB1E5A382E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */,
|
||||
AB1E5A392E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -4999,7 +5009,6 @@
|
||||
AB2F3C2515CF9C6000858373 /* mic_ext.cpp in Sources */,
|
||||
AB2F3C2715CF9C6000858373 /* cocoa_rom.mm in Sources */,
|
||||
AB2F3C2815CF9C6000858373 /* cocoa_util.mm in Sources */,
|
||||
AB2F3C2915CF9C6000858373 /* cocoa_videofilter.mm in Sources */,
|
||||
AB2F3C2A15CF9C6000858373 /* OGLRender.cpp in Sources */,
|
||||
AB2F3C2B15CF9C6000858373 /* appDelegate.mm in Sources */,
|
||||
AB2F3C2C15CF9C6000858373 /* cheatWindowDelegate.mm in Sources */,
|
||||
@@ -5110,6 +5119,8 @@
|
||||
AB561C092E72AD6E007F88A5 /* ClientAudioOutput.cpp in Sources */,
|
||||
AB561C0A2E72AD6E007F88A5 /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB561C0B2E72AD6E007F88A5 /* ClientVideoOutput.cpp in Sources */,
|
||||
AB1E5A3A2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */,
|
||||
AB1E5A3B2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -5199,7 +5210,6 @@
|
||||
AB711F5E1481C35F009011C8 /* mic_ext.cpp in Sources */,
|
||||
AB711F481481C35F009011C8 /* cocoa_rom.mm in Sources */,
|
||||
AB711F6C1481C35F009011C8 /* cocoa_util.mm in Sources */,
|
||||
AB711F6E1481C35F009011C8 /* cocoa_videofilter.mm in Sources */,
|
||||
AB3ACB7814C2361100D7D192 /* appDelegate.mm in Sources */,
|
||||
AB3ACB7914C2361100D7D192 /* cheatWindowDelegate.mm in Sources */,
|
||||
AB3ACB7C14C2361100D7D192 /* inputPrefsView.mm in Sources */,
|
||||
@@ -5340,6 +5350,8 @@
|
||||
AB561C0F2E72AD6E007F88A5 /* ClientAudioOutput.cpp in Sources */,
|
||||
AB561C102E72AD6E007F88A5 /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB561C112E72AD6E007F88A5 /* ClientVideoOutput.cpp in Sources */,
|
||||
AB1E5A3E2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */,
|
||||
AB1E5A3F2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -5429,7 +5441,6 @@
|
||||
AB73AA131507C9F500A310C8 /* mic_ext.cpp in Sources */,
|
||||
AB73AA151507C9F500A310C8 /* cocoa_rom.mm in Sources */,
|
||||
AB73AA161507C9F500A310C8 /* cocoa_util.mm in Sources */,
|
||||
AB73AA171507C9F500A310C8 /* cocoa_videofilter.mm in Sources */,
|
||||
AB73AA181507C9F500A310C8 /* OGLRender.cpp in Sources */,
|
||||
AB73AA191507C9F500A310C8 /* appDelegate.mm in Sources */,
|
||||
AB73AA1A1507C9F500A310C8 /* cheatWindowDelegate.mm in Sources */,
|
||||
@@ -5570,6 +5581,8 @@
|
||||
AB561C0C2E72AD6E007F88A5 /* ClientAudioOutput.cpp in Sources */,
|
||||
AB561C0D2E72AD6E007F88A5 /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB561C0E2E72AD6E007F88A5 /* ClientVideoOutput.cpp in Sources */,
|
||||
AB1E5A3C2E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */,
|
||||
AB1E5A3D2E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -5659,7 +5672,6 @@
|
||||
ABAD101B15ACE7A00000EC47 /* mic_ext.cpp in Sources */,
|
||||
ABAD101D15ACE7A00000EC47 /* cocoa_rom.mm in Sources */,
|
||||
ABAD101E15ACE7A00000EC47 /* cocoa_util.mm in Sources */,
|
||||
ABAD101F15ACE7A00000EC47 /* cocoa_videofilter.mm in Sources */,
|
||||
ABAD102015ACE7A00000EC47 /* OGLRender.cpp in Sources */,
|
||||
ABAD102115ACE7A00000EC47 /* appDelegate.mm in Sources */,
|
||||
ABAD102215ACE7A00000EC47 /* cheatWindowDelegate.mm in Sources */,
|
||||
@@ -5770,6 +5782,8 @@
|
||||
AB561C032E72AD6E007F88A5 /* ClientAudioOutput.cpp in Sources */,
|
||||
AB561C042E72AD6E007F88A5 /* ClientEmulationOutput.cpp in Sources */,
|
||||
AB561C052E72AD6E007F88A5 /* ClientVideoOutput.cpp in Sources */,
|
||||
AB1E5A362E73F0AC008AFF9F /* ClientCheatManager.cpp in Sources */,
|
||||
AB1E5A372E73F0AC008AFF9F /* ClientFirmwareControl.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (C) 2011 Roger Manuel
|
||||
Copyright (C) 2011-2023 DeSmuME team
|
||||
Copyright (C) 2011-2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -23,284 +23,10 @@
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
class CHEATS;
|
||||
class CHEATS_LIST;
|
||||
class CHEATSEARCH;
|
||||
|
||||
class ClientCheatItem;
|
||||
class ClientCheatManager;
|
||||
|
||||
enum CheatType
|
||||
{
|
||||
CheatType_Internal = 0,
|
||||
CheatType_ActionReplay = 1,
|
||||
CheatType_CodeBreaker = 2
|
||||
};
|
||||
|
||||
enum CheatFreezeType
|
||||
{
|
||||
CheatFreezeType_Normal = 0,
|
||||
CheatFreezeType_CanDecrease = 1,
|
||||
CheatFreezeType_CanIncrease = 2
|
||||
};
|
||||
|
||||
enum CheatSearchStyle
|
||||
{
|
||||
CheatSearchStyle_ExactValue = 0,
|
||||
CheatSearchStyle_Comparative = 1
|
||||
};
|
||||
|
||||
enum CheatSearchCompareStyle
|
||||
{
|
||||
CheatSearchCompareStyle_GreaterThan = 0,
|
||||
CheatSearchCompareStyle_LesserThan = 1,
|
||||
CheatSearchCompareStyle_Equals = 2,
|
||||
CheatSearchCompareStyle_NotEquals = 3
|
||||
};
|
||||
|
||||
union DesmumeCheatSearchItem
|
||||
{
|
||||
uint64_t data;
|
||||
|
||||
struct
|
||||
{
|
||||
uint32_t address;
|
||||
uint32_t value;
|
||||
};
|
||||
};
|
||||
typedef union DesmumeCheatSearchItem DesmumeCheatSearchItem;
|
||||
|
||||
typedef std::vector<DesmumeCheatSearchItem> DesmumeCheatSearchResultsList;
|
||||
|
||||
struct InternalCheatParam
|
||||
{
|
||||
uint32_t address;
|
||||
uint32_t value;
|
||||
uint8_t valueLength;
|
||||
};
|
||||
typedef struct InternalCheatParam InternalCheatParam;
|
||||
|
||||
class ClientCheatItem
|
||||
{
|
||||
protected:
|
||||
ClientCheatManager *_cheatManager;
|
||||
|
||||
bool _isEnabled;
|
||||
bool _willAddFromDB;
|
||||
|
||||
CheatType _cheatType;
|
||||
std::string _nameString;
|
||||
std::string _commentString;
|
||||
|
||||
// Internal cheat type parameters
|
||||
CheatFreezeType _freezeType;
|
||||
char _addressString[10+1];
|
||||
uint32_t _address;
|
||||
uint32_t _value;
|
||||
uint8_t _valueLength;
|
||||
|
||||
// Action Replay parameters
|
||||
uint32_t _codeCount;
|
||||
std::string _rawCodeString;
|
||||
std::string _cleanCodeString;
|
||||
|
||||
void _ConvertInternalToActionReplay();
|
||||
void _ConvertActionReplayToInternal();
|
||||
|
||||
public:
|
||||
ClientCheatItem();
|
||||
~ClientCheatItem();
|
||||
|
||||
void Init(const CHEATS_LIST &inCheatItem);
|
||||
void Init(const ClientCheatItem &inCheatItem);
|
||||
|
||||
void SetCheatManager(ClientCheatManager *cheatManager);
|
||||
ClientCheatManager* GetCheatManager() const;
|
||||
|
||||
void SetEnabled(bool theState);
|
||||
bool IsEnabled() const;
|
||||
|
||||
void SetWillAddFromDB(bool theState);
|
||||
bool WillAddFromDB() const;
|
||||
|
||||
CheatType GetType() const;
|
||||
void SetType(CheatType requestedType);
|
||||
bool IsSupportedType() const;
|
||||
|
||||
const char* GetName() const;
|
||||
void SetName(const char *nameString);
|
||||
|
||||
const char* GetComments() const;
|
||||
void SetComments(const char *commentString);
|
||||
|
||||
CheatFreezeType GetFreezeType() const;
|
||||
void SetFreezeType(CheatFreezeType theFreezeType);
|
||||
|
||||
uint32_t GetAddress() const;
|
||||
void SetAddress(uint32_t theAddress);
|
||||
const char* GetAddressString() const;
|
||||
const char* GetAddressSixDigitString() const;
|
||||
void SetAddressSixDigitString(const char *sixDigitString);
|
||||
|
||||
uint32_t GetValue() const;
|
||||
void SetValue(uint32_t theValue);
|
||||
uint8_t GetValueLength() const;
|
||||
void SetValueLength(uint8_t byteLength);
|
||||
|
||||
void SetRawCodeString(const char *rawString, const bool willSaveValidatedRawString);
|
||||
const char* GetRawCodeString() const;
|
||||
const char* GetCleanCodeString() const;
|
||||
const std::string& GetCleanCodeCppString() const;
|
||||
uint32_t GetCodeCount() const;
|
||||
|
||||
void ClientToDesmumeCheatItem(CHEATS_LIST *outCheatItem) const;
|
||||
};
|
||||
|
||||
class ClientCheatList
|
||||
{
|
||||
private:
|
||||
ClientCheatItem* __AddItem(const ClientCheatItem *srcItem, const bool willCopy, const bool allowDuplicates);
|
||||
|
||||
protected:
|
||||
std::vector<ClientCheatItem *> *_list;
|
||||
|
||||
public:
|
||||
ClientCheatList();
|
||||
~ClientCheatList();
|
||||
|
||||
CheatSystemError LoadFromFile(const char *filePath);
|
||||
CheatSystemError SaveToFile(const char *filePath);
|
||||
|
||||
bool IsItemDuplicate(const ClientCheatItem *srcItem);
|
||||
|
||||
ClientCheatItem* AddNew();
|
||||
ClientCheatItem* AddNewItemCopy(const ClientCheatItem *srcItem);
|
||||
ClientCheatItem* AddNewItemCopyNoDuplicate(const ClientCheatItem *srcItem);
|
||||
ClientCheatItem* AddExistingItemNoDuplicate(const ClientCheatItem *srcItem);
|
||||
|
||||
bool Remove(ClientCheatItem *targetItem);
|
||||
bool RemoveAtIndex(size_t index);
|
||||
void RemoveAll();
|
||||
|
||||
bool Update(const ClientCheatItem &srcItem, ClientCheatItem *targetItem);
|
||||
bool UpdateAtIndex(const ClientCheatItem &srcItem, size_t index);
|
||||
|
||||
size_t GetTotalCheatCount() const;
|
||||
size_t GetActiveCheatCount() const;
|
||||
std::vector<ClientCheatItem *>* GetCheatList() const;
|
||||
size_t GetIndexOfItem(const ClientCheatItem *cheatItem) const;
|
||||
ClientCheatItem* GetItemAtIndex(size_t index) const;
|
||||
|
||||
void ReplaceFromEngine(const CHEATS *engineCheatList);
|
||||
void CopyListToEngine(const bool willApplyOnlyEnabledItems, CHEATS *engineCheatList);
|
||||
};
|
||||
|
||||
class ClientCheatSearcher
|
||||
{
|
||||
protected:
|
||||
CHEATSEARCH *_desmumeSearcher;
|
||||
uint8_t _searchValueLength;
|
||||
size_t _resultsCount;
|
||||
bool _didSearchStart;
|
||||
DesmumeCheatSearchResultsList _resultsList;
|
||||
|
||||
public:
|
||||
ClientCheatSearcher();
|
||||
~ClientCheatSearcher();
|
||||
|
||||
bool DidStart() const;
|
||||
void Reset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& RefreshResults();
|
||||
const DesmumeCheatSearchResultsList& GetResults();
|
||||
size_t GetResultCount() const;
|
||||
};
|
||||
|
||||
class ClientCheatDatabase
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_list;
|
||||
std::string _title;
|
||||
std::string _description;
|
||||
std::string _lastFilePath;
|
||||
|
||||
public:
|
||||
ClientCheatDatabase();
|
||||
~ClientCheatDatabase();
|
||||
|
||||
ClientCheatList* GetList() const;
|
||||
ClientCheatList* LoadFromFile(const char *dbFilePath);
|
||||
|
||||
const char* GetTitle() const;
|
||||
const char* GetDescription() const;
|
||||
};
|
||||
|
||||
class ClientCheatManager
|
||||
{
|
||||
protected:
|
||||
ClientCheatList *_currentSessionList;
|
||||
ClientCheatDatabase *_currentDatabase;
|
||||
ClientCheatSearcher *_currentSearcher;
|
||||
|
||||
ClientCheatItem *_selectedItem;
|
||||
size_t _selectedItemIndex;
|
||||
uint32_t _untitledCount;
|
||||
std::string _currentSessionLastFilePath;
|
||||
|
||||
std::vector<InternalCheatParam> _pendingInternalCheatWriteList;
|
||||
|
||||
bool _masterNeedsUpdate;
|
||||
|
||||
public:
|
||||
ClientCheatManager();
|
||||
virtual ~ClientCheatManager();
|
||||
|
||||
static CHEATS* GetMaster();
|
||||
static void SetMaster(const CHEATS *masterCheats);
|
||||
|
||||
ClientCheatList* GetSessionList() const;
|
||||
const char* GetSessionListLastFilePath() const;
|
||||
|
||||
virtual CheatSystemError SessionListLoadFromFile(const char *filePath);
|
||||
virtual CheatSystemError SessionListSaveToFile(const char *filePath);
|
||||
|
||||
ClientCheatItem* SetSelectedItemByIndex(size_t index);
|
||||
|
||||
ClientCheatItem* NewItem();
|
||||
ClientCheatItem* AddExistingItemNoDuplicate(const ClientCheatItem *theItem);
|
||||
|
||||
void RemoveItem(ClientCheatItem *theItem);
|
||||
void RemoveItemAtIndex(size_t index);
|
||||
void RemoveSelectedItem();
|
||||
|
||||
void ModifyItem(const ClientCheatItem *srcItem, ClientCheatItem *targetItem);
|
||||
void ModifyItemAtIndex(const ClientCheatItem *srcItem, size_t index);
|
||||
|
||||
size_t GetTotalCheatCount() const;
|
||||
size_t GetActiveCheatCount() const;
|
||||
|
||||
void LoadFromMaster();
|
||||
void ApplyToMaster();
|
||||
void MasterNeedsUpdate();
|
||||
|
||||
ClientCheatList* GetDatabaseList() const;
|
||||
ClientCheatList* DatabaseListLoadFromFile(const char *dbFilePath);
|
||||
const char* GetDatabaseTitle() const;
|
||||
const char* GetDatabaseDescription() const;
|
||||
|
||||
bool SearchDidStart() const;
|
||||
void SearchReset();
|
||||
size_t SearchExactValue(uint32_t value, uint8_t valueLength, bool performSignedSearch);
|
||||
size_t SearchComparative(CheatSearchCompareStyle compareStyle, uint8_t valueLength, bool performSignedSearch);
|
||||
const DesmumeCheatSearchResultsList& SearchResultsRefresh();
|
||||
const DesmumeCheatSearchResultsList& GetSearchResults();
|
||||
size_t GetSearchResultCount() const;
|
||||
|
||||
void DirectWriteInternalCheatAtIndex(size_t index);
|
||||
void DirectWriteInternalCheatItem(const ClientCheatItem *cheatItem);
|
||||
void DirectWriteInternalCheat(uint32_t targetAddress, uint32_t newValue32, size_t newValueLength);
|
||||
void ApplyPendingInternalCheatWrites();
|
||||
};
|
||||
|
||||
@interface CocoaDSCheatItem : NSObject
|
||||
{
|
||||
ClientCheatItem *_internalData;
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "macOS_driver.h"
|
||||
#include "ClientAVCaptureObject.h"
|
||||
#include "ClientCheatManager.h"
|
||||
#include "ClientExecutionControl.h"
|
||||
#include "ClientInputHandler.h"
|
||||
#include "ClientEmulationOutput.h"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (C) 2011 Roger Manuel
|
||||
Copyright (C) 2012-2018 DeSmuME team
|
||||
Copyright (C) 2012-2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -17,32 +17,11 @@
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#include <pthread.h>
|
||||
|
||||
class ClientExecutionControl;
|
||||
class FirmwareConfigInterface;
|
||||
class ClientFirmwareControl;
|
||||
struct FirmwareConfig;
|
||||
|
||||
enum FirmwareCfgAPID
|
||||
{
|
||||
FirmwareCfgAPID_AP1 = 0,
|
||||
FirmwareCfgAPID_AP2 = 1,
|
||||
FirmwareCfgAPID_AP3 = 2
|
||||
};
|
||||
|
||||
enum FirmwareCfgMACAddrSetID
|
||||
{
|
||||
FirmwareCfgMACAddrSetID_Firmware = 0,
|
||||
FirmwareCfgMACAddrSetID_Custom1 = 1,
|
||||
FirmwareCfgMACAddrSetID_Custom2 = 2,
|
||||
FirmwareCfgMACAddrSetID_Custom3 = 3,
|
||||
FirmwareCfgMACAddrSetID_Custom4 = 4,
|
||||
FirmwareCfgMACAddrSetID_Custom5 = 5,
|
||||
FirmwareCfgMACAddrSetID_Custom6 = 6,
|
||||
FirmwareCfgMACAddrSetID_Custom7 = 7,
|
||||
FirmwareCfgMACAddrSetID_Custom8 = 8
|
||||
};
|
||||
|
||||
/********************************************************************************************
|
||||
CocoaDSFirmware - OBJECTIVE-C CLASS
|
||||
|
||||
@@ -54,7 +33,7 @@ enum FirmwareCfgMACAddrSetID
|
||||
@interface CocoaDSFirmware : NSObject
|
||||
{
|
||||
ClientExecutionControl *execControl;
|
||||
FirmwareConfigInterface *_fwConfigInterface;
|
||||
ClientFirmwareControl *_fwControl;
|
||||
FirmwareConfig *_appliedFWConfig;
|
||||
NSUInteger _birth_year;
|
||||
|
||||
@@ -158,95 +137,3 @@ enum FirmwareCfgMACAddrSetID
|
||||
- (void) writeUserDefaultWFCUserID;
|
||||
|
||||
@end
|
||||
|
||||
class FirmwareConfigInterface
|
||||
{
|
||||
protected:
|
||||
FirmwareConfig *_internalData;
|
||||
|
||||
FirmwareCfgMACAddrSetID _macAddressSelection;
|
||||
uint32_t _firmwareMACAddressValue;
|
||||
uint32_t _customMACAddressValue;
|
||||
char _macAddressString[(1 + 8) * 18];
|
||||
char _wfcUserIDString[20];
|
||||
char _subnetMaskString[3 * 16];
|
||||
|
||||
public:
|
||||
FirmwareConfigInterface();
|
||||
~FirmwareConfigInterface();
|
||||
|
||||
static void WriteMACAddressStringToBuffer(const uint8_t mac4, const uint8_t mac5, const uint8_t mac6, char *stringBuffer);
|
||||
static void WriteMACAddressStringToBuffer(const uint32_t macAddressValue, char *stringBuffer);
|
||||
static void WriteWFCUserIDStringToBuffer(const uint64_t wfcUserIDValue, char *stringBuffer);
|
||||
|
||||
const FirmwareConfig& GetFirmwareConfig();
|
||||
uint32_t GenerateRandomMACValue();
|
||||
|
||||
FirmwareCfgMACAddrSetID GetMACAddressSelection();
|
||||
void SetMACAddressSelection(FirmwareCfgMACAddrSetID addressSetID);
|
||||
|
||||
uint32_t GetMACAddressValue(FirmwareCfgMACAddrSetID addressSetID);
|
||||
const char* GetMACAddressString(FirmwareCfgMACAddrSetID addressSetID);
|
||||
uint32_t GetSelectedMACAddressValue();
|
||||
uint64_t GetSelectedWFCUserID64();
|
||||
const char* GetSelectedMACAddressString();
|
||||
|
||||
void SetFirmwareMACAddressValue(uint32_t macAddressValue);
|
||||
void SetFirmwareMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6);
|
||||
void SetCustomMACAddressValue(uint32_t macAddressValue);
|
||||
void SetCustomMACAddressValue(uint8_t mac4, uint8_t mac5, uint8_t mac6);
|
||||
|
||||
uint8_t* GetWFCUserID();
|
||||
void SetWFCUserID(uint8_t *wfcUserID);
|
||||
|
||||
uint64_t GetWFCUserID64();
|
||||
void SetWFCUserID64(uint64_t wfcUserIDValue);
|
||||
|
||||
const char* GetWFCUserIDString();
|
||||
|
||||
uint8_t GetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4AddressPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4GatewayPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4PrimaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart);
|
||||
void SetIPv4SecondaryDNSPart(FirmwareCfgAPID apid, uint8_t addrPart, uint8_t addrValue);
|
||||
|
||||
uint8_t GetSubnetMask(FirmwareCfgAPID apid);
|
||||
const char* GetSubnetMaskString(FirmwareCfgAPID apid);
|
||||
void SetSubnetMask(FirmwareCfgAPID apid, uint8_t subnetMaskShift);
|
||||
|
||||
int GetConsoleType();
|
||||
void SetConsoleType(int type);
|
||||
|
||||
uint16_t* GetNicknameStringBuffer();
|
||||
void SetNicknameWithStringBuffer(uint16_t *buffer, size_t charLength);
|
||||
|
||||
size_t GetNicknameStringLength();
|
||||
void SetNicknameStringLength(size_t charLength);
|
||||
|
||||
uint16_t* GetMessageStringBuffer();
|
||||
void SetMessageWithStringBuffer(uint16_t *buffer, size_t charLength);
|
||||
|
||||
size_t GetMessageStringLength();
|
||||
void SetMessageStringLength(size_t charLength);
|
||||
|
||||
int GetFavoriteColorByID();
|
||||
void SetFavoriteColorByID(int colorID);
|
||||
|
||||
int GetBirthdayDay();
|
||||
void SetBirthdayDay(int day);
|
||||
|
||||
int GetBirthdayMonth();
|
||||
void SetBirthdayMonth(int month);
|
||||
|
||||
int GetLanguageByID();
|
||||
void SetLanguageByID(int languageID);
|
||||
|
||||
int GetBacklightLevel();
|
||||
void SetBacklightLevel(int level);
|
||||
};
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,63 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2011 Roger Manuel
|
||||
Copyright (C) 2011-2013 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#include "../../filter/videofilter.h"
|
||||
#undef BOOL
|
||||
|
||||
@class NSImage;
|
||||
@class NSBitmapImageRep;
|
||||
|
||||
/********************************************************************************************
|
||||
CocoaVideoFilter - OBJECTIVE-C CLASS
|
||||
|
||||
This is an Objective-C wrapper class for the video filter C++ object.
|
||||
|
||||
Thread Safety:
|
||||
All methods are thread-safe.
|
||||
********************************************************************************************/
|
||||
@interface CocoaVideoFilter : NSObject
|
||||
{
|
||||
VideoFilter *vf;
|
||||
VideoFilterTypeID currentFilterType;
|
||||
}
|
||||
|
||||
- (id) initWithSize:(NSSize)theSize;
|
||||
- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID;
|
||||
- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID numberThreads:(NSUInteger)numThreads;
|
||||
- (BOOL) setSourceSize:(NSSize)theSize;
|
||||
- (BOOL) changeFilter:(VideoFilterTypeID)typeID;
|
||||
- (UInt32 *) runFilter;
|
||||
- (NSImage *) image;
|
||||
- (NSBitmapImageRep *) bitmapImageRep;
|
||||
- (VideoFilterTypeID) typeID;
|
||||
- (NSString *) typeString;
|
||||
- (UInt32 *) srcBufferPtr;
|
||||
- (UInt32 *) dstBufferPtr;
|
||||
- (NSSize) srcSize;
|
||||
- (NSSize) destSize;
|
||||
- (VideoFilterParamType) filterParameterType:(VideoFilterParamID)paramID;
|
||||
- (int) filterParameteri:(VideoFilterParamID)paramID;
|
||||
- (unsigned int) filterParameterui:(VideoFilterParamID)paramID;
|
||||
- (float) filterParameterf:(VideoFilterParamID)paramID;
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID intValue:(int)value;
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID uintValue:(unsigned int)value;
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID floatValue:(float)value;
|
||||
+ (NSString *) typeStringByID:(VideoFilterTypeID)typeID;
|
||||
|
||||
@end
|
@@ -1,227 +0,0 @@
|
||||
/*
|
||||
Copyright (C) 2011 Roger Manuel
|
||||
Copyright (C) 2013-2024 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This file is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with the this software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#import "cocoa_videofilter.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#include "../../utils/colorspacehandler/colorspacehandler.h"
|
||||
|
||||
@implementation CocoaVideoFilter
|
||||
|
||||
- (id)init
|
||||
{
|
||||
return [self initWithSize:NSMakeSize(1, 1) typeID:VideoFilterTypeID_None numberThreads:0];
|
||||
}
|
||||
|
||||
- (id) initWithSize:(NSSize)theSize
|
||||
{
|
||||
return [self initWithSize:theSize typeID:VideoFilterTypeID_None numberThreads:0];
|
||||
}
|
||||
|
||||
- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID
|
||||
{
|
||||
return [self initWithSize:theSize typeID:typeID numberThreads:0];
|
||||
}
|
||||
|
||||
- (id) initWithSize:(NSSize)theSize typeID:(VideoFilterTypeID)typeID numberThreads:(NSUInteger)numThreads
|
||||
{
|
||||
self = [super init];
|
||||
if (self == nil)
|
||||
{
|
||||
return self;
|
||||
}
|
||||
|
||||
vf = new VideoFilter((size_t)theSize.width, (size_t)theSize.height, typeID, numThreads);
|
||||
currentFilterType = typeID;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
delete vf;
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (BOOL) setSourceSize:(NSSize)theSize
|
||||
{
|
||||
BOOL result = NO;
|
||||
|
||||
bool cResult = vf->SetSourceSize((size_t)theSize.width, (size_t)theSize.height);
|
||||
if (cResult)
|
||||
{
|
||||
result = YES;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (BOOL) changeFilter:(VideoFilterTypeID)typeID
|
||||
{
|
||||
BOOL result = NO;
|
||||
|
||||
if (typeID == currentFilterType)
|
||||
{
|
||||
result = YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
bool cResult = vf->ChangeFilterByID(typeID);
|
||||
if (cResult)
|
||||
{
|
||||
result = YES;
|
||||
currentFilterType = typeID;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (UInt32 *) runFilter
|
||||
{
|
||||
return (UInt32 *)vf->RunFilter();
|
||||
}
|
||||
|
||||
- (NSImage *) image
|
||||
{
|
||||
NSImage *newImage = [[NSImage alloc] initWithSize:[self destSize]];
|
||||
if (newImage == nil)
|
||||
{
|
||||
return newImage;
|
||||
}
|
||||
|
||||
NSBitmapImageRep *newImageRep = [self bitmapImageRep];
|
||||
if (newImageRep == nil)
|
||||
{
|
||||
[newImage release];
|
||||
newImage = nil;
|
||||
return newImage;
|
||||
}
|
||||
|
||||
[newImage addRepresentation:newImageRep];
|
||||
|
||||
return [newImage autorelease];
|
||||
}
|
||||
|
||||
- (NSBitmapImageRep *) bitmapImageRep
|
||||
{
|
||||
NSUInteger w = (NSUInteger)vf->GetDstWidth();
|
||||
NSUInteger h = (NSUInteger)vf->GetDstHeight();
|
||||
|
||||
NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
|
||||
pixelsWide:w
|
||||
pixelsHigh:h
|
||||
bitsPerSample:8
|
||||
samplesPerPixel:4
|
||||
hasAlpha:YES
|
||||
isPlanar:NO
|
||||
colorSpaceName:NSCalibratedRGBColorSpace
|
||||
bytesPerRow:w * 4
|
||||
bitsPerPixel:32];
|
||||
|
||||
if(imageRep == nil)
|
||||
{
|
||||
return imageRep;
|
||||
}
|
||||
|
||||
uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData];
|
||||
ColorspaceConvertBuffer888xTo8888Opaque<false, true>((const uint32_t *)[self runFilter], bitmapData, w * h);
|
||||
|
||||
#ifdef MSB_FIRST
|
||||
for (size_t i = 0; i < w * h; i++)
|
||||
{
|
||||
bitmapData[i] = LE_TO_LOCAL_32(bitmapData[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
return [imageRep autorelease];
|
||||
}
|
||||
|
||||
- (VideoFilterTypeID) typeID
|
||||
{
|
||||
return vf->GetTypeID();
|
||||
}
|
||||
|
||||
- (NSString *) typeString
|
||||
{
|
||||
return [NSString stringWithCString:vf->GetTypeString() encoding:NSUTF8StringEncoding];
|
||||
}
|
||||
|
||||
- (UInt32 *) srcBufferPtr
|
||||
{
|
||||
return (UInt32 *)vf->GetSrcBufferPtr();
|
||||
}
|
||||
|
||||
- (UInt32 *) dstBufferPtr
|
||||
{
|
||||
return (UInt32 *)vf->GetDstBufferPtr();
|
||||
}
|
||||
|
||||
- (NSSize) srcSize
|
||||
{
|
||||
return NSMakeSize((CGFloat)vf->GetSrcWidth(), (CGFloat)vf->GetSrcHeight());
|
||||
}
|
||||
|
||||
- (NSSize) destSize
|
||||
{
|
||||
return NSMakeSize((CGFloat)vf->GetDstWidth(), (CGFloat)vf->GetDstHeight());
|
||||
}
|
||||
|
||||
- (VideoFilterParamType) filterParameterType:(VideoFilterParamID)paramID
|
||||
{
|
||||
return vf->GetFilterParameterType(paramID);
|
||||
}
|
||||
|
||||
- (int) filterParameteri:(VideoFilterParamID)paramID
|
||||
{
|
||||
return vf->GetFilterParameteri(paramID);
|
||||
}
|
||||
|
||||
- (unsigned int) filterParameterui:(VideoFilterParamID)paramID
|
||||
{
|
||||
return vf->GetFilterParameterui(paramID);
|
||||
}
|
||||
|
||||
- (float) filterParameterf:(VideoFilterParamID)paramID
|
||||
{
|
||||
return vf->GetFilterParameterf(paramID);
|
||||
}
|
||||
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID intValue:(int)value
|
||||
{
|
||||
vf->SetFilterParameteri(paramID, value);
|
||||
}
|
||||
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID uintValue:(unsigned int)value
|
||||
{
|
||||
vf->SetFilterParameterui(paramID, value);
|
||||
}
|
||||
|
||||
- (void) setFilterParameter:(VideoFilterParamID)paramID floatValue:(float)value
|
||||
{
|
||||
vf->SetFilterParameterf(paramID, value);
|
||||
}
|
||||
|
||||
+ (NSString *) typeStringByID:(VideoFilterTypeID)typeID
|
||||
{
|
||||
const char *vfTypeCString = VideoFilter::GetTypeStringByID(typeID);
|
||||
NSString *vfTypeString = [NSString stringWithCString:vfTypeCString encoding:NSUTF8StringEncoding];
|
||||
|
||||
return vfTypeString;
|
||||
}
|
||||
|
||||
@end
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright (C) 2011 Roger Manuel
|
||||
Copyright (C) 2012-2023 DeSmuME team
|
||||
Copyright (C) 2012-2025 DeSmuME team
|
||||
|
||||
This file is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -23,6 +23,8 @@
|
||||
#import "cocoa_cheat.h"
|
||||
#import "cocoa_util.h"
|
||||
|
||||
#include "ClientCheatManager.h"
|
||||
|
||||
|
||||
@implementation CheatWindowDelegate
|
||||
|
||||
|
@@ -26,7 +26,6 @@
|
||||
#import "cocoa_globals.h"
|
||||
#import "cocoa_input.h"
|
||||
#import "cocoa_file.h"
|
||||
#import "cocoa_videofilter.h"
|
||||
#import "cocoa_util.h"
|
||||
|
||||
#ifdef MAC_OS_X_VERSION_10_7
|
||||
|
Reference in New Issue
Block a user