/*
* Copyright 2012 ZXing.Net authors
*
* 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;
using System.Collections.Generic;
using ZXing.Common;
namespace ZXing
{
///
/// Interface for a smart class to decode the barcode inside a bitmap object
///
/// gives the type of the input data
public interface IBarcodeReaderGeneric
{
///
/// event is executed when a result point was found
///
event Action ResultPointFound;
///
/// event is executed when a result was found via decode
///
event Action ResultFound;
///
/// Gets or sets a flag which cause a deeper look into the bitmap
///
///
/// true if [try harder]; otherwise, false.
///
[Obsolete("Please use the Options.TryHarder property instead.")]
bool TryHarder { get; set; }
///
/// Image is a pure monochrome image of a barcode.
///
///
/// true if monochrome image of a barcode; otherwise, false.
///
[Obsolete("Please use the Options.PureBarcode property instead.")]
bool PureBarcode { get; set; }
///
/// Specifies what character encoding to use when decoding, where applicable (type String)
///
///
/// The character set.
///
[Obsolete("Please use the Options.CharacterSet property instead.")]
string CharacterSet { get; set; }
///
/// Image is known to be of one of a few possible formats.
/// Maps to a {@link java.util.List} of {@link BarcodeFormat}s.
///
///
/// The possible formats.
///
[Obsolete("Please use the Options.PossibleFormats property instead.")]
IList PossibleFormats { get; set; }
///
/// Specifies some options which influence the decoding process
///
DecodingOptions Options { get; set; }
///
/// Decodes the specified barcode bitmap which is given by a generic byte array.
///
/// The barcode bitmap.
/// The width.
/// The height.
/// The format.
///
/// the result data or null
///
Result Decode(byte[] rawRGB, int width, int height, RGBLuminanceSource.BitmapFormat format);
///
/// Tries to decode a barcode within an image which is given by a luminance source.
/// That method gives a chance to prepare a luminance source completely before calling
/// the time consuming decoding method. On the other hand there is a chance to create
/// a luminance source which is independent from external resources (like Bitmap objects)
/// and the decoding call can be made in a background thread.
///
/// The luminance source.
///
Result Decode(LuminanceSource luminanceSource);
#if !PORTABLE
#if !UNITY
///
/// Decodes the specified barcode bitmap.
///
/// The barcode bitmap.
/// the result data or null
Result Decode(T barcodeBitmap);
#else
///
/// Decodes the specified barcode bitmap.
///
/// The barcode bitmap.
/// the result data or null
Result Decode(T rawRGB, int width, int height);
#endif
#endif
}
}