Antidote/local_pod_repo/objcTox/Classes/Public/Wrapper/OCTToxAVDelegate.h
2024-02-22 21:43:11 +02:00

96 lines
3.9 KiB
Objective-C

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#import <Foundation/Foundation.h>
#import "OCTToxAVConstants.h"
#import "OCTToxConstants.h"
@class OCTToxAV;
/**
* All delegate methods will be called on main thread.
*/
@protocol OCTToxAVDelegate <NSObject>
@optional
/**
* Receiving call from friend.
* @param audio YES audio is enabled. NO otherwise.
* @param video YES video is enabled. NO otherwise.
* @param friendNumber Friend number who is calling.
*/
- (void)toxAV:(OCTToxAV *)toxAV receiveCallAudioEnabled:(BOOL)audio videoEnabled:(BOOL)video friendNumber:(OCTToxFriendNumber)friendNumber;
/**
* Call state has changed.
* @param state The new state.
* @param friendNumber Friend number whose state has changed.
*/
- (void)toxAV:(OCTToxAV *)toxAV callStateChanged:(OCTToxAVCallState)state friendNumber:(OCTToxFriendNumber)friendNumber;
/**
* The event is triggered when the network becomes too saturated for
* current bit rates at which point core suggests new bit rates.
* @param audioBitRate Suggested maximum audio bit rate in Kb/sec.
* @param friendNumber The friend number of the friend for which to set the bit rate.
*/
- (void)toxAV:(OCTToxAV *)toxAV audioBitRateStatus:(OCTToxAVAudioBitRate)audioBitRate forFriendNumber:(OCTToxFriendNumber)friendNumber;
/**
* The event is triggered when the network becomes too saturated for
* current bit rates at which point core suggests new bit rates.
* @param videoBitRate Suggested maximum video bit rate in Kb/sec.
* @param friendNumber The friend number of the friend for which to set the bit rate.
*/
- (void)toxAV:(OCTToxAV *)toxAV videoBitRateStatus:(OCTToxAVVideoBitRate)videoBitRate forFriendNumber:(OCTToxFriendNumber)friendNumber;
/**
* Received audio frame from friend.
* @param pcm An array of audio samples (sample_count * channels elements).
* @param sampleCount The number of audio samples per channel in the PCM array.
* @param channels Number of audio channels.
* @param sampleRate Sampling rate used in this frame.
* @param friendNumber The friend number of the friend who sent an audio frame.
*/
- (void) toxAV:(OCTToxAV *)toxAV
receiveAudio:(OCTToxAVPCMData *)pcm
sampleCount:(OCTToxAVSampleCount)sampleCount
channels:(OCTToxAVChannels)channels
sampleRate:(OCTToxAVSampleRate)sampleRate
friendNumber:(OCTToxFriendNumber)friendNumber;
/**
* Received video frame from friend.
* @param width Width of the frame in pixels.
* @param height Height of the frame in pixels.
* @param yPlane
* @param uPlane
* @param vPlane Plane data.
* The size of plane data is derived from width and height where
* Y = MAX(width, abs(ystride)) * height,
* U = MAX(width/2, abs(ustride)) * (height/2) and
* V = MAX(width/2, abs(vstride)) * (height/2).
* @param yStride
* @param uStride
* @param vStride Strides data. Strides represent padding for each plane
* that may or may not be present. You must handle strides in
* your image processing code. Strides are negative if the
* image is bottom-up hence why you MUST abs() it when
* calculating plane buffer size.
* @param friendNumber The friend number of the friend who sent an audio frame.
*/
- (void) toxAV:(OCTToxAV *)toxAV
receiveVideoFrameWithWidth:(OCTToxAVVideoWidth)width height:(OCTToxAVVideoHeight)height
yPlane:(OCTToxAVPlaneData *)yPlane uPlane:(OCTToxAVPlaneData *)uPlane
vPlane:(OCTToxAVPlaneData *)vPlane
yStride:(OCTToxAVStrideData)yStride uStride:(OCTToxAVStrideData)uStride
vStride:(OCTToxAVStrideData)vStride
friendNumber:(OCTToxFriendNumber)friendNumber;
@end