Ejemplo n.º 1
0
        // AppendAudioInBuffer(u64 tag, buffer<nn::audio::AudioInBuffer, 5>)
        public ResultCode AppendAudioInBuffer(ServiceCtx context)
        {
            long position = context.Request.SendBuff[0].Position;

            ulong bufferTag = context.RequestData.ReadUInt64();

            AudioUserBuffer data = MemoryHelper.Read <AudioUserBuffer>(context.Memory, position);

            return(_impl.AppendBuffer(bufferTag, ref data));
        }
Ejemplo n.º 2
0
        [CommandHipc(8)] // 3.0.0+
        // AppendAudioInBufferAuto(u64 tag, buffer<nn::audio::AudioInBuffer, 0x21>)
        public ResultCode AppendAudioInBufferAuto(ServiceCtx context)
        {
            (long position, _) = context.Request.GetBufferType0x21();

            ulong bufferTag = context.RequestData.ReadUInt64();

            AudioUserBuffer data = MemoryHelper.Read <AudioUserBuffer>(context.Memory, position);

            return(_impl.AppendBuffer(bufferTag, ref data));
        }
Ejemplo n.º 3
0
        [CommandHipc(10)] // 3.0.0+
        // AppendUacInBufferAuto(u64 tag, handle<copy, event>, buffer<nn::audio::AudioInBuffer, 0x21>)
        public ResultCode AppendUacInBufferAuto(ServiceCtx context)
        {
            (long position, _) = context.Request.GetBufferType0x21();

            ulong bufferTag = context.RequestData.ReadUInt64();
            uint  handle    = (uint)context.Request.HandleDesc.ToCopy[0];

            AudioUserBuffer data = MemoryHelper.Read <AudioUserBuffer>(context.Memory, position);

            return(_impl.AppendUacBuffer(bufferTag, ref data, handle));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Append a new audio buffer to the audio output.
        /// </summary>
        /// <param name="bufferTag">The unique tag of this buffer.</param>
        /// <param name="userBuffer">The buffer informations.</param>
        /// <returns>A <see cref="ResultCode"/> reporting an error or a success.</returns>
        public ResultCode AppendBuffer(ulong bufferTag, ref AudioUserBuffer userBuffer)
        {
            lock (_parentLock)
            {
                AudioBuffer buffer = new AudioBuffer
                {
                    BufferTag   = bufferTag,
                    DataPointer = userBuffer.Data,
                    DataSize    = userBuffer.DataSize
                };

                if (_session.AppendBuffer(buffer))
                {
                    return(ResultCode.Success);
                }

                return(ResultCode.BufferRingFull);
            }
        }
Ejemplo n.º 5
0
 public ResultCode AppendBuffer(ulong bufferTag, ref AudioUserBuffer buffer)
 {
     return((ResultCode)_system.AppendBuffer(bufferTag, ref buffer));
 }
Ejemplo n.º 6
0
 public ResultCode AppendUacBuffer(ulong bufferTag, ref AudioUserBuffer buffer, uint handle)
 {
     return((ResultCode)_system.AppendUacBuffer(bufferTag, ref buffer, handle));
 }