2015-07-30 02:10:36 +02:00
|
|
|
#include "stdafx.h"
|
2015-09-10 15:09:31 +02:00
|
|
|
#include "Emu/System.h"
|
|
|
|
|
#include "Emu/IdManager.h"
|
2016-03-21 20:43:03 +01:00
|
|
|
#include "Emu/Cell/PPUModule.h"
|
2015-07-30 02:10:36 +02:00
|
|
|
|
2015-09-10 15:09:31 +02:00
|
|
|
#include "cellMusic.h"
|
2016-07-27 23:43:22 +02:00
|
|
|
#include "cellSysutil.h"
|
2015-09-10 15:09:31 +02:00
|
|
|
|
2017-05-13 20:30:37 +02:00
|
|
|
logs::channel cellMusic("cellMusic");
|
2015-07-30 02:10:36 +02:00
|
|
|
|
2015-09-10 15:09:31 +02:00
|
|
|
struct music2_t
|
|
|
|
|
{
|
|
|
|
|
vm::ptr<CellMusic2Callback> func;
|
|
|
|
|
vm::ptr<void> userData;
|
|
|
|
|
};
|
|
|
|
|
|
2015-07-30 02:10:36 +02:00
|
|
|
s32 cellMusicGetSelectionContext()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetSelectionContext2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetVolume2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetContentsId()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetSelectionContext()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicInitialize2SystemWorkload()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetPlaybackStatus2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetContentsId2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicFinalize()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicInitializeSystemWorkload()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicInitialize()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicFinalize2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetSelectionContext2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetVolume()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetPlaybackStatus()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetPlaybackCommand2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetPlaybackCommand()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSelectContents2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSelectContents()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
2015-09-10 15:09:31 +02:00
|
|
|
s32 cellMusicInitialize2(s32 mode, s32 spuPriority, vm::ptr<CellMusic2Callback> func, vm::ptr<void> userData)
|
2015-07-30 02:10:36 +02:00
|
|
|
{
|
2016-01-12 22:57:16 +01:00
|
|
|
cellMusic.todo("cellMusicInitialize2(mode=%d, spuPriority=%d, func=*0x%x, userData=*0x%x)", mode, spuPriority, func, userData);
|
2015-09-10 15:09:31 +02:00
|
|
|
|
2015-09-13 09:26:01 +02:00
|
|
|
if (mode != CELL_MUSIC2_PLAYER_MODE_NORMAL)
|
2015-09-10 15:09:31 +02:00
|
|
|
{
|
2016-01-12 22:57:16 +01:00
|
|
|
cellMusic.todo("Unknown player mode: 0x%x", mode);
|
2015-09-13 09:26:01 +02:00
|
|
|
return CELL_MUSIC2_ERROR_PARAM;
|
|
|
|
|
}
|
2015-09-10 15:09:31 +02:00
|
|
|
|
2015-09-26 22:46:04 +02:00
|
|
|
const auto music = fxm::make_always<music2_t>();
|
|
|
|
|
music->func = func;
|
|
|
|
|
music->userData = userData;
|
|
|
|
|
|
2016-07-27 23:43:22 +02:00
|
|
|
sysutil_register_cb([=](ppu_thread& ppu) -> s32
|
2015-09-13 09:26:01 +02:00
|
|
|
{
|
2015-09-26 22:46:04 +02:00
|
|
|
func(ppu, CELL_MUSIC2_EVENT_INITIALIZE_RESULT, vm::make_var<s32>(CELL_OK), userData);
|
|
|
|
|
return CELL_OK;
|
|
|
|
|
});
|
2015-09-10 15:09:31 +02:00
|
|
|
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicSetVolume()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
s32 cellMusicGetVolume2()
|
|
|
|
|
{
|
2017-02-05 17:27:53 +01:00
|
|
|
UNIMPLEMENTED_FUNC(cellMusic);
|
|
|
|
|
return CELL_OK;
|
2015-07-30 02:10:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2016-03-21 20:43:03 +01:00
|
|
|
DECLARE(ppu_module_manager::cellMusic)("cellMusicUtility", []()
|
|
|
|
|
{
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetSelectionContext);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetSelectionContext2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetVolume2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetContentsId);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetSelectionContext);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicInitialize2SystemWorkload);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetPlaybackStatus2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetContentsId2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicFinalize);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicInitializeSystemWorkload);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicInitialize);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicFinalize2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetSelectionContext2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetVolume);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetPlaybackStatus);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetPlaybackCommand2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetPlaybackCommand);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSelectContents2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSelectContents);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicInitialize2);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicSetVolume);
|
|
|
|
|
REG_FUNC(cellMusicUtility, cellMusicGetVolume2);
|
2015-07-30 02:10:36 +02:00
|
|
|
});
|