disabled file service
This commit is contained in:
@@ -77,8 +77,9 @@ void Engine::firePS2()
|
|||||||
{
|
{
|
||||||
SifInitRpc(0);
|
SifInitRpc(0);
|
||||||
srand(time(NULL));
|
srand(time(NULL));
|
||||||
fileService.startThread();
|
// fileService.startThread();
|
||||||
audio.startThread(&fileService);
|
// audio.startThread(&fileService);
|
||||||
|
audio.startThread(NULL);
|
||||||
isInitialized = 0;
|
isInitialized = 0;
|
||||||
mainThreadId = GetThreadId();
|
mainThreadId = GetThreadId();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public:
|
|||||||
void init(Game *t_game, u32 t_gifPacketSize);
|
void init(Game *t_game, u32 t_gifPacketSize);
|
||||||
void setDefaultScreen();
|
void setDefaultScreen();
|
||||||
Renderer *renderer;
|
Renderer *renderer;
|
||||||
FileService fileService;
|
// FileService fileService;
|
||||||
Audio audio;
|
Audio audio;
|
||||||
ScreenSettings screen;
|
ScreenSettings screen;
|
||||||
Pad pad;
|
Pad pad;
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
u8 songLoaded, volume, realVolume, songPlaying, songInLoop, songFinished;
|
u8 songLoaded, volume, realVolume, songPlaying, songInLoop, songFinished;
|
||||||
std::vector<AudioListenerRef> songListeners;
|
std::vector<AudioListenerRef *> songListeners;
|
||||||
FILE *wav;
|
FILE *wav;
|
||||||
audsrv_fmt_t format;
|
audsrv_fmt_t format;
|
||||||
FileService *fileService;
|
FileService *fileService;
|
||||||
|
|||||||
@@ -38,13 +38,11 @@ void PngLoader::load(Texture &o_texture, char *t_subfolder, char *t_name, char *
|
|||||||
char *path = String::createConcatenated(path_part2, t_extension);
|
char *path = String::createConcatenated(path_part2, t_extension);
|
||||||
delete[] path_part1;
|
delete[] path_part1;
|
||||||
delete[] path_part2;
|
delete[] path_part2;
|
||||||
|
|
||||||
FILE *file = fopen(path, "rb");
|
FILE *file = fopen(path, "rb");
|
||||||
|
|
||||||
if (file == NULL)
|
if (file == NULL)
|
||||||
{
|
PRINT_ERR("Failed to open .png file!");
|
||||||
PRINT_ERR("Failed to load .png file!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_structp png_ptr;
|
png_structp png_ptr;
|
||||||
png_infop info_ptr;
|
png_infop info_ptr;
|
||||||
@@ -56,29 +54,15 @@ void PngLoader::load(Texture &o_texture, char *t_subfolder, char *t_name, char *
|
|||||||
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, NULL, NULL);
|
png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, NULL, NULL);
|
||||||
|
|
||||||
if (!png_ptr)
|
if (!png_ptr)
|
||||||
{
|
PRINT_ERR("PNG struct info init failed(1)!");
|
||||||
printf("PNG Read Struct Init Failed\n");
|
|
||||||
fclose(file);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
info_ptr = png_create_info_struct(png_ptr);
|
info_ptr = png_create_info_struct(png_ptr);
|
||||||
|
|
||||||
if (!info_ptr)
|
if (!info_ptr)
|
||||||
{
|
PRINT_ERR("PNG struct info init failed(2)!");
|
||||||
printf("PNG Info Struct Init Failed\n");
|
|
||||||
fclose(file);
|
|
||||||
png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (setjmp(png_jmpbuf(png_ptr)))
|
if (setjmp(png_jmpbuf(png_ptr)))
|
||||||
{
|
PRINT_ERR("PNG reader fatal error!");
|
||||||
printf("Got PNG Error!\n");
|
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
|
||||||
fclose(file);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
png_init_io(png_ptr, file);
|
png_init_io(png_ptr, file);
|
||||||
|
|
||||||
@@ -114,80 +98,39 @@ void PngLoader::load(Texture &o_texture, char *t_subfolder, char *t_name, char *
|
|||||||
type = TEX_TYPE_RGB;
|
type = TEX_TYPE_RGB;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
PRINT_ERR("This png format is not supported!");
|
PRINT_ERR("This png format is not supported! RGB/RGBA only.");
|
||||||
}
|
}
|
||||||
|
|
||||||
o_texture.setSize(width, height, type);
|
o_texture.setSize(width, height, type);
|
||||||
printf("PNGLoader - width: %d | height: %d\n", width, height);
|
printf("PNGLoader - width: %d | height: %d\n", width, height);
|
||||||
|
|
||||||
if (type == TEX_TYPE_RGBA)
|
size_t row_bytes = png_get_rowbytes(png_ptr, info_ptr);
|
||||||
{
|
png_byte *row_pointers[height];
|
||||||
int row_bytes = png_get_rowbytes(png_ptr, info_ptr);
|
for (row = 0; row < height; row++)
|
||||||
png_byte *row_pointers[height];
|
row_pointers[row] = new png_byte[row_bytes];
|
||||||
|
|
||||||
for (row = 0; row < height; row++)
|
png_read_image(png_ptr, row_pointers);
|
||||||
row_pointers[row] = new png_byte[row_bytes];
|
|
||||||
|
|
||||||
png_read_image(png_ptr, row_pointers);
|
u32 x = 0;
|
||||||
|
|
||||||
struct pixel
|
for (i = 0; i < height; i++)
|
||||||
|
for (j = 0; j < width; j++)
|
||||||
{
|
{
|
||||||
u8 r, g, b, a;
|
o_texture.setData(x, row_pointers[i][4 * j]);
|
||||||
};
|
o_texture.setData(x + 1, row_pointers[i][4 * j + 1]);
|
||||||
|
o_texture.setData(x + 2, row_pointers[i][4 * j + 2]);
|
||||||
u32 x = 0;
|
if (type == TEX_TYPE_RGBA)
|
||||||
for (i = 0; i < height; i++)
|
|
||||||
{
|
|
||||||
for (j = 0; j < width; j++)
|
|
||||||
{
|
{
|
||||||
o_texture.setData(x, row_pointers[i][4 * j]);
|
|
||||||
o_texture.setData(x + 1, row_pointers[i][4 * j + 1]);
|
|
||||||
o_texture.setData(x + 2, row_pointers[i][4 * j + 2]);
|
|
||||||
o_texture.setData(x + 3, ((int)row_pointers[i][4 * j + 3] * 128 / 255));
|
o_texture.setData(x + 3, ((int)row_pointers[i][4 * j + 3] * 128 / 255));
|
||||||
x += 4;
|
x += 4;
|
||||||
}
|
}
|
||||||
}
|
else if (type == TEX_TYPE_RGB)
|
||||||
|
|
||||||
for (row = 0; row < height; row++)
|
|
||||||
delete row_pointers[row];
|
|
||||||
}
|
|
||||||
else if (type == TEX_TYPE_RGB)
|
|
||||||
{
|
|
||||||
int row_bytes = png_get_rowbytes(png_ptr, info_ptr);
|
|
||||||
png_byte *row_pointers[height];
|
|
||||||
|
|
||||||
for (row = 0; row < height; row++)
|
|
||||||
row_pointers[row] = new png_byte[row_bytes];
|
|
||||||
|
|
||||||
png_read_image(png_ptr, row_pointers);
|
|
||||||
|
|
||||||
struct pixel3
|
|
||||||
{
|
|
||||||
u8 r, g, b;
|
|
||||||
};
|
|
||||||
|
|
||||||
u32 x = 0;
|
|
||||||
for (i = 0; i < height; i++)
|
|
||||||
{
|
|
||||||
for (j = 0; j < width; j++)
|
|
||||||
{
|
|
||||||
o_texture.setData(x, row_pointers[i][4 * j]);
|
|
||||||
o_texture.setData(x + 1, row_pointers[i][4 * j + 1]);
|
|
||||||
o_texture.setData(x + 2, row_pointers[i][4 * j + 2]);
|
|
||||||
x += 3;
|
x += 3;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (row = 0; row < height; row++)
|
for (row = 0; row < height; row++)
|
||||||
delete row_pointers[row];
|
delete[] row_pointers[row];
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf("This texture depth is not supported yet!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Texture->Filter = GS_FILTER_NEAREST;
|
|
||||||
png_read_end(png_ptr, NULL);
|
png_read_end(png_ptr, NULL);
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);
|
||||||
|
|
||||||
|
|||||||
@@ -89,24 +89,25 @@ void Audio::setSongVolume(const u8 &t_vol)
|
|||||||
|
|
||||||
u32 Audio::addSongListener(AudioListener *t_listener)
|
u32 Audio::addSongListener(AudioListener *t_listener)
|
||||||
{
|
{
|
||||||
AudioListenerRef ref;
|
AudioListenerRef *ref = new AudioListenerRef;
|
||||||
ref.id = rand() % 1000000;
|
ref->id = rand() % 1000000;
|
||||||
ref.listener = t_listener;
|
ref->listener = t_listener;
|
||||||
songListeners.push_back(ref);
|
songListeners.push_back(ref);
|
||||||
return ref.id;
|
return ref->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Audio::removeSongListener(const u32 &t_id)
|
void Audio::removeSongListener(const u32 &t_id)
|
||||||
{
|
{
|
||||||
s32 index = -1;
|
s32 index = -1;
|
||||||
for (u32 i = 0; i < songListeners.size(); i++)
|
for (u32 i = 0; i < songListeners.size(); i++)
|
||||||
if (songListeners[i].id == t_id)
|
if (songListeners[i]->id == t_id)
|
||||||
{
|
{
|
||||||
index = i;
|
index = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
PRINT_ERR("Cant remove listener because given id was not found!");
|
PRINT_ERR("Cant remove listener because given id was not found!");
|
||||||
|
delete songListeners[index];
|
||||||
songListeners.erase(songListeners.begin() + index);
|
songListeners.erase(songListeners.begin() + index);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,7 +161,7 @@ void Audio::playADPCM(audsrv_adpcm_t *t_adpcm, const s8 &t_ch)
|
|||||||
void Audio::startThread(FileService *t_fileService)
|
void Audio::startThread(FileService *t_fileService)
|
||||||
{
|
{
|
||||||
PRINT_LOG("Creating audio thread");
|
PRINT_LOG("Creating audio thread");
|
||||||
fileService = t_fileService;
|
// fileService = t_fileService;
|
||||||
extern void *_gp;
|
extern void *_gp;
|
||||||
thread.func = (void *)Audio::mainThread;
|
thread.func = (void *)Audio::mainThread;
|
||||||
thread.stack = threadStack;
|
thread.stack = threadStack;
|
||||||
@@ -186,7 +187,7 @@ void Audio::threadLoop()
|
|||||||
{
|
{
|
||||||
printf("Running again.\n");
|
printf("Running again.\n");
|
||||||
for (u32 i = 0; i < getSongListenersCount(); i++)
|
for (u32 i = 0; i < getSongListenersCount(); i++)
|
||||||
songListeners[i].listener->onAudioFinish();
|
songListeners[i]->listener->onAudioFinish();
|
||||||
rewindSongToStart();
|
rewindSongToStart();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -202,7 +203,7 @@ void Audio::threadLoop()
|
|||||||
WaitSema(fillbufferSema); // wait until previous chunk wasn't finished
|
WaitSema(fillbufferSema); // wait until previous chunk wasn't finished
|
||||||
audsrv_play_audio(wavChunk, chunkReadStatus);
|
audsrv_play_audio(wavChunk, chunkReadStatus);
|
||||||
for (u32 i = 0; i < getSongListenersCount(); i++)
|
for (u32 i = 0; i < getSongListenersCount(); i++)
|
||||||
songListeners[i].listener->onAudioTick();
|
songListeners[i]->listener->onAudioTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
chunkReadStatus = fread(wavChunk, 1, sizeof(wavChunk), wav);
|
chunkReadStatus = fread(wavChunk, 1, sizeof(wavChunk), wav);
|
||||||
|
|||||||
@@ -37,15 +37,15 @@ Floors::~Floors()
|
|||||||
|
|
||||||
void Floors::onInit()
|
void Floors::onInit()
|
||||||
{
|
{
|
||||||
|
texRepo = engine->renderer->getTextureRepository();
|
||||||
setBgColorAndAmbientColor();
|
setBgColorAndAmbientColor();
|
||||||
engine->renderer->setCameraDefinitions(&camera.view, &camera.unitCirclePosition, camera.planes);
|
engine->renderer->setCameraDefinitions(&camera.view, &camera.unitCirclePosition, camera.planes);
|
||||||
|
enemy = new Enemy(texRepo); // I know that here is bug with PNG loading
|
||||||
|
ui = new Ui(texRepo); // Will be resolved in December version
|
||||||
engine->audio.addSongListener(this);
|
engine->audio.addSongListener(this);
|
||||||
engine->audio.loadSong("sounds/mafikizolo-loot.wav");
|
engine->audio.loadSong("sounds/mafikizolo-loot.wav");
|
||||||
engine->audio.playSong();
|
engine->audio.playSong();
|
||||||
engine->audio.setSongVolume(80);
|
engine->audio.setSongVolume(80);
|
||||||
texRepo = engine->renderer->getTextureRepository();
|
|
||||||
enemy = new Enemy(texRepo);
|
|
||||||
ui = new Ui(texRepo);
|
|
||||||
floorManager = new FloorManager(FLOORS_COUNT, texRepo);
|
floorManager = new FloorManager(FLOORS_COUNT, texRepo);
|
||||||
player = new Player(&engine->audio, texRepo);
|
player = new Player(&engine->audio, texRepo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user