/*
* Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
namespace Tizen.Multimedia
{
///
/// Provides functionality to read and write the media buffer.
///
public interface IMediaBuffer
{
///
/// Gets or sets a value at the specified index.
///
/// The index of the value to get or set.
///
/// is less than zero.\n
/// -or-\n
/// is equal to or greater than .
///
/// The object that owns the current buffer has already been disposed of.
/// The buffer is not available, i.e. not writable state.
byte this[int index]
{
get;
set;
}
///
/// Gets the size of the buffer, in bytes.
///
int Length { get; }
///
/// Gets the value indicating whether the is read-only.
///
/// true if the is read-only; otherwise, false.
bool IsReadOnly { get; }
///
/// Copies data from a byte array to the buffer.
///
/// The array to copy to.
/// The zero-based index in the source array where copying should start.
/// The number of array elements to copy.
/// is null.
/// or is not valid.
/// The object that owns the current buffer has already been disposed of.
void CopyTo(byte[] dest, int startIndex, int length);
///
/// Copies data from a byte array to the buffer.
///
/// The array to copy to.
/// The zero-based index in the source array where copying should start.
/// The number of array elements to copy.
/// The zero-based index in the buffer where copying should start.
/// is null.
/// , ,
/// or is not valid.
/// The object that owns the current buffer has already been disposed of.
void CopyTo(byte[] dest, int startIndex, int length, int offset);
///
/// Copies data from the buffer to a byte array.
///
/// The array to copy from.
/// The zero-based index in the destination array where copying should start.
/// The number of elements to copy.
/// is null.
/// or is not valid.
/// The object that owns the current buffer has already been disposed of.
/// The buffer is not available. i.e. not writable state.
void CopyFrom(byte[] source, int startIndex, int length);
///
/// Copies data from the buffer to a byte array.
///
/// The array to copy from.
/// The zero-based index in the destination array where copying should start.
/// The number of elements to copy.
/// The zero-based index in the buffer where copying should start.
/// is null.
/// , ,
/// or is not valid.
/// The object that owns the current buffer has already been disposed of.
/// The buffer is not available. i.e. not writable state.
void CopyFrom(byte[] source, int startIndex, int length, int offset);
}
}