vitasdk
Documentation of the vitasdk
voice.h
Go to the documentation of this file.
1
6#ifndef _PSP2_VOICE_H_
7#define _PSP2_VOICE_H_
8
9#include <psp2/types.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#define SCE_VOICE_VERSION 100
16#define SCE_VOICE_WORKING_MEMORY_SIZE 0x40000
17#define SCE_VOICE_MAX_EVENT_PORTS 7
18
30
42
51
59
68
72
76
80
85
87
93
99
108VITASDK_BUILD_ASSERT_EQ(0x18, SceVoiceEvent); // size is from FW 3.60
109
120typedef void (*SceVoiceEventCallback)(const SceVoiceEvent *event);
121
128VITASDK_BUILD_ASSERT_EQ(0x20, SceVoiceInitParam); // size is from FW 3.60
129
134VITASDK_BUILD_ASSERT_EQ(0x20, SceVoiceStartParam); // size is from FW 3.60
135
148VITASDK_BUILD_ASSERT_EQ(0x18, SceVoicePortParam); // size is from FW 3.60
149
157VITASDK_BUILD_ASSERT_EQ(0xA, SceVoiceResourceInfo); // size is from FW 3.60
158
167VITASDK_BUILD_ASSERT_EQ(0x18, SceVoicePortInfo); // size is from FW 3.60
168
178
188int sceVoiceEnd(void);
189
208
221int sceVoiceStop(void);
222
235
250
264
274
288
300int sceVoiceSetVolume(SceVoicePortId port_id, float volume);
301
310int sceVoiceGetVolume(SceVoicePortId port_id, float *volume);
311
324
335
351
366
391
412
426
436
445
467int sceVoiceWriteToIPort(SceVoicePortId port_id, const void *data, SceSize *size, SceInt16 frame_gap);
468
487
502
515
530
539
551
558
559#ifdef __cplusplus
560}
561#endif
562
563#endif /* _PSP2_VOICE_H_ */
#define VITASDK_BUILD_ASSERT_EQ(__size__, __name__)
Definition build_utils.h:13
uint16_t version
Definition kbl.h:0
SceSize size
Definition lsdb.h:11
int16_t SceInt16
Definition types.h:41
int SceBool
Definition types.h:59
int32_t SceInt32
Definition types.h:44
unsigned int SceSize
Definition types.h:56
uint16_t SceUInt16
Definition types.h:42
int SceUID
UIDs are used to describe many different kernel objects.
Definition types.h:90
uint32_t SceUInt32
Definition types.h:45
uint8_t SceUInt8
Definition types.h:36
int sceVoiceSetBitRate(SceVoicePortId port_id, SceUInt32 bit_rate)
Change the bitrate of an encoded input or output port.
SceSize data_size
Free bytes in the input ring buffer or queued bytes in the output ring buffer.
Definition voice.h:163
SceUInt32 reserved1
Not written on FW 3.60.
Definition voice.h:165
SceVoiceEventType
Definition voice.h:81
int sceVoicePausePort(SceVoicePortId port_id)
Pause processing for one port.
void * user_data
Value supplied to sceVoiceInit.
Definition voice.h:102
SceVoicePcmDataType
Definition voice.h:69
SceVoiceBitRate
8 kHz CELP bitrates supported by the FW 3.60 Voice codec.
Definition voice.h:61
int sceVoiceWriteToIPort(SceVoicePortId port_id, const void *data, SceSize *size, SceInt16 frame_gap)
Write application data to a PCM or encoded input port.
int sceVoicePausePortAll(void)
Pause processing for every Voice port in the calling process.
SceUInt8 reserved[0xF]
Definition voice.h:96
SceUInt32 port_type
One of SceVoicePortType.
Definition voice.h:160
SceVoiceErrorCode
Definition voice.h:19
int sceVoiceGetPortAttr(SceVoicePortId port_id, SceVoicePortAttr attr, SceInt32 *value)
Get a port attribute.
int sceVoiceUpdatePort(SceVoicePortId port_id, const SceVoicePortParam *param)
Update an existing port's configuration.
SceUInt32 reserved0
Not written on FW 3.60.
Definition voice.h:162
SceVoiceEventPortDataReady port_data_ready
Definition voice.h:104
int sceVoiceStart(const SceVoiceStartParam *param)
Attach the Voice instance to its working-memory block and start processing.
SceUInt16 port_ids[SCE_VOICE_MAX_EVENT_PORTS]
Output-voice ports with encoded data available.
Definition voice.h:90
int sceVoiceResetPort(SceVoicePortId port_id)
Clear one port's buffered data and reset its processing state.
int sceVoiceConnectIPortToOPort(SceVoicePortId input_port_id, SceVoicePortId output_port_id)
Connect an input port to an output port.
SceVoiceApplicationType
Voice application profiles accepted by sceVoiceInit.
Definition voice.h:38
SceUInt16 max_voice_output_ports
Maximum number of OUT_VOICE ports.
Definition voice.h:152
int sceVoiceInit(const SceVoiceInitParam *param, SceUInt32 version)
Initialize Voice for the calling process.
SceInt16 port_count
Number of valid entries in port_ids.
Definition voice.h:89
SceUInt16 max_voice_input_ports
Maximum number of IN_VOICE ports.
Definition voice.h:151
int sceVoiceSetVolume(SceVoicePortId port_id, float volume)
Set one port's linear volume.
SceUInt32 state
One of SceVoicePortState.
Definition voice.h:161
float volume
Linear volume; 1.0 is unity gain.
Definition voice.h:140
int sceVoiceCheckTopology(void)
Check whether the current port connections are valid.
int sceVoiceSetPortAttr(SceVoicePortId port_id, SceVoicePortAttr attr, const SceInt32 *value)
Set a port attribute.
int sceVoiceReadFromOPort(SceVoicePortId port_id, void *data, SceSize *size)
Read application data from a PCM or encoded output port.
int sceVoiceSetMuteFlagAll(SceBool mute)
Set the process-wide mute-reporting override.
SceUInt16 max_device_input_ports
Maximum number of IN_DEVICE ports.
Definition voice.h:153
int sceVoiceGetResourceInfo(SceVoiceResourceInfo *info)
Get the port limits assigned to this Voice instance.
SceVoicePortAttr
Definition voice.h:77
SceUInt32 event_type
One of SceVoiceEventType.
Definition voice.h:101
SceVoiceEventAudioInputOwnershipChanged audio_input_ownership_changed
Definition voice.h:105
SceUInt16 threshold
Buffering threshold for application input, in milliseconds; at least two frame durations are used.
Definition voice.h:138
union SceVoiceEvent::@11 event_payload
int sceVoiceDisconnectIPortFromOPort(SceVoicePortId input_port_id, SceVoicePortId output_port_id)
Disconnect an input port from an output port.
int sceVoiceGetPortInfo(SceVoicePortId port_id, SceVoicePortInfo *info)
Get one port's type, processing state, available data, and frame size.
int sceVoiceStop(void)
Stop Voice processing and detach the working-memory block.
SceUInt32 pcm_data_type
One of SceVoicePcmDataType for PCMAUDIO ports.
Definition voice.h:145
SceUInt32 sampling_rate
One of SceVoiceSamplingRate for PCMAUDIO ports.
Definition voice.h:146
int sceVoiceResumePort(SceVoicePortId port_id)
Resume processing for one port.
SceVoiceSamplingRate
Definition voice.h:73
SceUInt16 mute_flag
Nonzero to create the port muted.
Definition voice.h:139
SceUInt32 port_type
One of SceVoicePortType.
Definition voice.h:137
SceVoiceEventCallback event_callback
Optional event callback, or NULL to disable events.
Definition voice.h:124
int sceVoiceSetMuteFlag(SceVoicePortId port_id, SceBool mute)
Set one port's mute flag.
SceVoicePortState
Port processing states reported by sceVoiceGetPortInfo on FW 3.60.
Definition voice.h:53
int sceVoiceGetMuteFlag(SceVoicePortId port_id, SceUInt16 *mute)
Get one port's reported mute flag.
SceUInt32 reserved[5]
Ignored on FW 3.60.
Definition voice.h:126
int sceVoiceEnd(void)
Shut down Voice for the calling process and release its ports.
#define SCE_VOICE_MAX_EVENT_PORTS
Definition voice.h:17
SceUInt8 owned
Nonzero when this process owns the adopted audio-input port.
Definition voice.h:95
int sceVoiceDeletePort(SceVoicePortId port_id)
Delete a Voice port and remove its connections.
SceUInt32 reserved[7]
Ignored on FW 3.60.
Definition voice.h:132
SceUInt16 max_ports
Maximum number of ports of all types.
Definition voice.h:155
SceUInt16 max_device_output_ports
Maximum number of OUT_DEVICE ports.
Definition voice.h:154
void(* SceVoiceEventCallback)(const SceVoiceEvent *event)
Voice event callback.
Definition voice.h:120
SceVoicePortType
Definition voice.h:43
union SceVoicePortParam::@12 data
int sceVoiceCreatePort(SceVoicePortId *port_id, const SceVoicePortParam *param)
Create a Voice port.
SceUInt32 SceVoicePortId
Definition voice.h:86
SceUInt32 application_type
One of SceVoiceApplicationType.
Definition voice.h:123
SceSize frame_size
Encoded or PCM processing-frame size in bytes.
Definition voice.h:164
int sceVoiceGetVolume(SceVoicePortId port_id, float *volume)
Get one port's linear volume.
void * user_data
Copied to SceVoiceEvent::user_data.
Definition voice.h:125
SceUID mem_block_id
Memory block providing at least SCE_VOICE_WORKING_MEMORY_SIZE bytes.
Definition voice.h:131
SceUInt32 bit_rate
One of SceVoiceBitRate for VOICE ports.
Definition voice.h:143
int sceVoiceGetBitRate(SceVoicePortId port_id, SceUInt32 *bit_rate)
Get the bitrate of an encoded input or output port.
int sceVoiceResumePortAll(void)
Resume processing for every Voice port in the calling process.
SceSize buffer_size
PCM byte capacity for PCMAUDIO ports.
Definition voice.h:142
@ SCE_VOICE_EVENT_TYPE_AUDIO_INPUT_OWNERSHIP_CHANGED
Audio-input ownership was acquired or lost.
Definition voice.h:83
@ SCE_VOICE_EVENT_TYPE_PORT_DATA_READY
One or more OUT_VOICE ports contain encoded data.
Definition voice.h:82
@ SCE_VOICE_PCM_DATA_TYPE_S16LE
Signed 16-bit little-endian PCM.
Definition voice.h:70
@ SCE_VOICE_BIT_RATE_7300
19 encoded bytes and 160 decoded samples per 20-ms frame.
Definition voice.h:65
@ SCE_VOICE_BIT_RATE_5700
15 encoded bytes and 160 decoded samples per 20-ms frame.
Definition voice.h:64
@ SCE_VOICE_BIT_RATE_3850
20 encoded bytes and 320 decoded samples per 40-ms frame.
Definition voice.h:62
@ SCE_VOICE_BIT_RATE_12200
16 encoded bytes and 80 decoded samples per 10-ms frame.
Definition voice.h:66
@ SCE_VOICE_BIT_RATE_4650
24 encoded bytes and 320 decoded samples per 40-ms frame.
Definition voice.h:63
@ SCE_VOICE_ERROR_INVALID_MEMBLOCK
The working-memory UID could not be resolved to a memory block.
Definition voice.h:25
@ SCE_VOICE_ERROR_INVALID_PORT_ID
The port ID is out of range or not allocated for the operation.
Definition voice.h:23
@ SCE_VOICE_ERROR_NOT_INITIALIZED
sceVoiceInit has not succeeded.
Definition voice.h:20
@ SCE_VOICE_ERROR_INTERNAL
An internal backend operation failed.
Definition voice.h:22
@ SCE_VOICE_ERROR_NOT_STARTED
sceVoiceStart has not attached working memory.
Definition voice.h:28
@ SCE_VOICE_ERROR_ALREADY_INITIALIZED
Voice is already initialized for this process.
Definition voice.h:21
@ SCE_VOICE_ERROR_RESOURCE_LIMIT
A port, connection, codec, or memory limit was reached.
Definition voice.h:27
@ SCE_VOICE_ERROR_INVALID_ARGUMENT
An argument, format, or port type is invalid.
Definition voice.h:24
@ SCE_VOICE_ERROR_INVALID_PORT
The port does not exist or is unsuitable for the operation.
Definition voice.h:26
@ SCE_VOICE_APPLICATION_TYPE_UNK_0x80000000
Definition voice.h:40
@ SCE_VOICE_APPLICATION_TYPE_UNK_0x20000000
Definition voice.h:39
@ SCE_VOICE_PORT_ATTR_AUDIO_INPUT_OWNERSHIP
Audio-input adoption state of a device-input port.
Definition voice.h:78
@ SCE_VOICE_SAMPLING_RATE_16000
Definition voice.h:74
@ SCE_VOICE_PORT_STATE_ACTIVE
The port is processing audio after enough data became available.
Definition voice.h:57
@ SCE_VOICE_PORT_STATE_INACTIVE
The port is not currently processing audio.
Definition voice.h:54
@ SCE_VOICE_PORT_STATE_IDLE
The port is ready to process audio but is waiting for data.
Definition voice.h:55
@ SCE_VOICE_PORT_STATE_BUFFERING
Buffering or rebuffering application input to the port's effective threshold.
Definition voice.h:56
@ SCE_VOICE_PORT_TYPE_OUT_DEVICE
Speaker/headset output.
Definition voice.h:49
@ SCE_VOICE_PORT_TYPE_IN_VOICE
Encoded voice supplied by the application.
Definition voice.h:46
@ SCE_VOICE_PORT_TYPE_OUT_VOICE
Encoded voice read by the application.
Definition voice.h:48
@ SCE_VOICE_PORT_TYPE_IN_PCMAUDIO
Signed 16-bit PCM supplied by the application.
Definition voice.h:45
@ SCE_VOICE_PORT_TYPE_OUT_PCMAUDIO
Signed 16-bit PCM read by the application.
Definition voice.h:47
@ SCE_VOICE_PORT_TYPE_IN_DEVICE
Microphone/device input.
Definition voice.h:44
Definition voice.h:100
Definition voice.h:88
Definition voice.h:122
Definition voice.h:159
Definition voice.h:136
Definition voice.h:150
Definition voice.h:130