Skip to content

Commit 8d2ad72

Browse files
[feature] clear song cache from DTA, log content name/mount
1 parent 7c46a3d commit 8d2ad72

File tree

15 files changed

+211
-0
lines changed

15 files changed

+211
-0
lines changed

include/GlobalSymbols.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ typedef struct _GlobalSymbols
2525
Symbol rb3e_get_album;
2626
Symbol rb3e_get_origin;
2727
Symbol rb3e_get_genre;
28+
Symbol rb3e_delete_songcache;
2829

2930
// modifiers
3031
Symbol forceHopos;

include/config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ typedef struct _RB3E_Config
2828
char RawfilesDir[RB3E_MAX_CONFIG_LEN];
2929
char DisableRawfiles;
3030
char QuazalLogging;
31+
char ContentLogging;
3132
// [Graphics]
3233
int RenderResX;
3334
int RenderResY;

include/ports_xbox360.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@
150150
#define PORT_DATAONELEM 0x8275ff50 // DataOnElem
151151
#define PORT_DATANODEGETOBJ 0x8274b088 // DataNode::GetObj
152152
#define PORT_DXRND_SUSPEND 0x8273A370 // DxRnd::Suspend
153+
#define PORT_XBOXCONTENT_CONSTRUCTOR 0x8251fb40 // XboxContent::__ct
154+
#define PORT_CACHEMGRXBOX_MOUNTASYNC 0x827d7b38 // CacheMgrXbox::MountAsync
153155
// instance addresses
154156
#define PORT_MODIFIERMGR_POINTER 0x82dfec08 // pointer to ModifierManager
155157
#define PORT_ROCKCENTRALGATEWAY 0x82cc8f60 // address of RockCentralGateway

include/rb3/Cache.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
#ifndef _CACHE_H
3+
#define _CACHE_H
4+
5+
typedef struct _Cache
6+
{
7+
void *vtable;
8+
int mOpCur;
9+
int mLastResult;
10+
} Cache;
11+
12+
typedef struct _CacheMgr
13+
{
14+
void *vtable;
15+
int mCacheIDStore[3]; // vector
16+
int mOpCur;
17+
int mLastResult;
18+
} CacheMgr;
19+
20+
#endif // _CACHE_H

include/rb3/XboxCache.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
#ifndef _XBOXCACHE_H
3+
#define _XBOXCACHE_H
4+
#ifdef RB3E_XBOX
5+
6+
#include <xtl.h>
7+
#include "rb3/Cache.h"
8+
#include "rb3/String.h"
9+
#include "rb3/Symbol.h"
10+
11+
typedef struct _CacheIDXbox
12+
{
13+
void *vtable;
14+
String mStrCacheName;
15+
XCONTENT_DATA mContentData;
16+
} CacheIDXbox;
17+
18+
typedef struct _CacheMgrXbox
19+
{
20+
CacheMgr root;
21+
int mEnumerationHandle;
22+
XOVERLAPPED mOverlapped;
23+
CacheIDXbox **mOutCacheIDPtr;
24+
void *mPendingCachePtr;
25+
void *mPendingObject;
26+
CacheIDXbox *mPendingCacheID;
27+
XCONTENT_DATA mContentData;
28+
String mCacheSearchName;
29+
String unk;
30+
} CacheMgrXbox;
31+
32+
int CacheMgrXbox_MountAsync(CacheMgrXbox *thisCacheMgr, CacheIDXbox *cacheID, Cache **outCache, void *object);
33+
34+
#endif // RB3E_XBOX
35+
#endif // _XBOXCACHE_H

include/rb3/XboxContent.h

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
#ifndef _XBOXCONTENT_H
3+
#define _XBOXCONTENT_H
4+
#ifdef RB3E_XBOX
5+
6+
#include <xtl.h>
7+
#include "rb3/String.h"
8+
#include "rb3/Symbol.h"
9+
10+
typedef enum _ContentState
11+
{
12+
kUnmounted = 0,
13+
kNeedsMounting = 1,
14+
kMounting = 2,
15+
kUnmounting = 3,
16+
kMounted = 4,
17+
kDeleting = 6,
18+
kDeleted = 7,
19+
kFailed = 8,
20+
} ContentState;
21+
22+
typedef struct _XboxContent
23+
{
24+
void *vtable;
25+
XOVERLAPPED *mOverlapped;
26+
XCONTENT_CROSS_TITLE_DATA mTitleData;
27+
int mLicenseBits;
28+
char mLicenseBitsValid; // bool
29+
String mRoot;
30+
String mMountPath;
31+
int mState;
32+
int mPadNum;
33+
char mDeleted; // bool
34+
Symbol mFileName;
35+
int mLRM; // what?
36+
} XboxContent;
37+
38+
XboxContent *XboxContentConstruct(XboxContent *thisXboxContent, XCONTENT_CROSS_TITLE_DATA *titleData, int contentIndex, int padNum, char needsMount);
39+
40+
#endif // RB3E_XBOX
41+
#endif // _XBOXCONTENT_H

include/rb3enhanced.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ int RB3E_CreateThread(void *address, void *arg, int stack_size);
2929
void RB3E_Sleep(int ms);
3030
int RB3E_RelaunchGame();
3131
void RB3E_FlushCache(void * address, unsigned int size);
32+
int RB3E_DeleteSongCache();
3233

3334
// stub function at the start of the .text segment - doubles as the start of _functions.c
3435
void RB3EBase();

include/xbox360.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,5 @@ void XNetLogonGetExtendedStatus(unsigned int *login_status, unsigned int *login_
5353
void InitCryptoHooks();
5454
void InitLivelessHooks();
5555
void InitInputHooks();
56+
void InitContentHooks();
5657
#endif // RB3E_XBOX

source/DTAFunctions.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,13 @@ DataNode *DTAGetOrigin(DataNode *node, DataArray *args)
287287
return node;
288288
}
289289

290+
DataNode *DTADeleteSongCache(DataNode *node, DataArray *args)
291+
{
292+
node->type = INT_VALUE;
293+
node->value.intVal = RB3E_DeleteSongCache();
294+
return node;
295+
}
296+
290297
#ifdef RB3E_XBOX
291298
// this function is inlined on the Xbox version, so we re-create it
292299
void DataRegisterFunc(Symbol name, DTAFunction_t func)
@@ -312,5 +319,6 @@ void AddDTAFunctions()
312319
DataRegisterFunc(globalSymbols.rb3e_get_album, DTAGetAlbum);
313320
DataRegisterFunc(globalSymbols.rb3e_get_origin, DTAGetOrigin);
314321
DataRegisterFunc(globalSymbols.rb3e_get_genre, DTAGetGenre);
322+
DataRegisterFunc(globalSymbols.rb3e_delete_songcache, DTADeleteSongCache);
315323
RB3E_MSG("Added DTA functions!", NULL);
316324
}

source/GlobalSymbols.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ void InitGlobalSymbols()
4141
SymbolConstruct(&globalSymbols.rb3e_get_album, "rb3e_get_album");
4242
SymbolConstruct(&globalSymbols.rb3e_get_origin, "rb3e_get_origin");
4343
SymbolConstruct(&globalSymbols.rb3e_get_genre, "rb3e_get_genre");
44+
SymbolConstruct(&globalSymbols.rb3e_delete_songcache, "rb3e_delete_songcache");
4445

4546
SymbolConstruct(&globalSymbols.blackBackground, "mod_black_background");
4647
SymbolConstruct(&globalSymbols.colorShuffle, "mod_color_shuffle");

0 commit comments

Comments
 (0)