PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
ahx_rpc.c File Reference
#include <tamtypes.h>
#include <kernel.h>
#include <sifrpc.h>
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include "ahx_rpc.h"
+ Include dependency graph for ahx_rpc.c:

Go to the source code of this file.

Macros

#define IOP_MEM   0xbc000000
 

Functions

static unsigned sbuff[64] __attribute__ ((aligned(64)))
 
void iop_readwrite (void *addr, void *buf, u32 size, u32 read)
 
int AHX_Init ()
 
int AHX_Play ()
 
int AHX_Pause ()
 
int AHX_SubSong (int songNo)
 
int AHX_SetVolume (int volumePercentage)
 
int AHX_SetBoost (int boostValue)
 
int AHX_ToggleOversampling ()
 
int AHX_Quit ()
 
int AHX_LoadSongBuffer (char *songdata, int songsize)
 
int AHX_LoadSong (char *filename)
 

Variables

static struct t_SifRpcClientData cd0
 
char * songbuffer_addr
 
int ahx_init_done = 0
 

Detailed Description

AHX EE-side RPC code.

Definition in file ahx_rpc.c.

Macro Definition Documentation

◆ IOP_MEM

#define IOP_MEM   0xbc000000

EE mapped IOP mem

Definition at line 30 of file ahx_rpc.c.

Function Documentation

◆ iop_readwrite()

void iop_readwrite ( void *  addr,
void *  buf,
u32  size,
u32  read 
)

Read/Write IOP Mem

This is an internal function used to read and write directly to IOP memory (write songdata to iop etc)

Definition at line 39 of file ahx_rpc.c.

References IOP_MEM.

Referenced by AHX_LoadSongBuffer().

◆ AHX_Init()

int AHX_Init ( )

AHX Init

Sends a call the the loaded AHX IRX, telling it to set things up ready for loading a song.

Definition at line 48 of file ahx_rpc.c.

◆ AHX_Play()

int AHX_Play ( )

AHX Play

Sends a call the the loaded AHX IRX, telling it to play the currently loaded song.

Definition at line 74 of file ahx_rpc.c.

◆ AHX_Pause()

int AHX_Pause ( )

AHX Pause

Sends a call the the loaded AHX IRX, telling it to pause the currently loaded song.

Definition at line 88 of file ahx_rpc.c.

◆ AHX_SubSong()

int AHX_SubSong ( int  songNo)

AHX Play Subsong

Sends a call the the loaded AHX IRX, telling it to load subsong (songNo). You can determine the number of subsongs by checking the values returned by AHX_LoadSong() and AHX_LoadSongBuffer();

Definition at line 102 of file ahx_rpc.c.

◆ AHX_SetVolume()

int AHX_SetVolume ( int  volumePercentage)

AHX Set Volume

Sends a call the the loaded AHX IRX, telling it to change the output volume of the SPU2. volumePercentage argument can range from 0 (0% silence) to 100 (100% full volume)

Definition at line 117 of file ahx_rpc.c.

◆ AHX_SetBoost()

int AHX_SetBoost ( int  boostValue)

AHX Set Boost

Sends a call the the loaded AHX IRX, telling it to change the output boost value. Boost value multiplies the level of the output for the AHX Mixer. A boost value of 1 is twice as load as a boost value of 0. A boost value of 3 is twice as load as 2 etc etc (ala DB)

Definition at line 132 of file ahx_rpc.c.

◆ AHX_ToggleOversampling()

int AHX_ToggleOversampling ( )

AHX Toggle Oversampling

Switches oversampling on/off. Oversampling produces a smoother output sound but uses a lot more CPU power. It sounds nasty/slows down for a lot of songs - use with caution (or not at all)

Definition at line 147 of file ahx_rpc.c.

◆ AHX_Quit()

int AHX_Quit ( )

AHX Quit

Sends a call the the loaded AHX IRX, telling it to quit. This frees up IOP mem, quites threads, deletes semaphores and all that jazz....

Definition at line 161 of file ahx_rpc.c.

◆ AHX_LoadSongBuffer()

int AHX_LoadSongBuffer ( char *  songdata,
int  songsize 
)

AHX LongSongBuffer

This loads a song from a buffer in memory. It copies [songsize] bytes from [songdata] to the IOP memory song buffer.

Returns
number of subsongs.

Definition at line 175 of file ahx_rpc.c.

References iop_readwrite().

Referenced by AHX_LoadSong().

◆ AHX_LoadSong()

int AHX_LoadSong ( char *  filename)

AHX LongSongBuffer

This loads a song from disk etc. It loads the songdata into memory and passes it to LongSongBuffer.

Returns
number of subsongs.

Definition at line 199 of file ahx_rpc.c.

References AHX_LoadSongBuffer().

Variable Documentation

◆ cd0

struct t_SifRpcClientData cd0
static

Definition at line 28 of file ahx_rpc.c.

◆ songbuffer_addr

char* songbuffer_addr

Definition at line 31 of file ahx_rpc.c.

◆ ahx_init_done

int ahx_init_done = 0

Definition at line 32 of file ahx_rpc.c.