Giter VIP home page Giter VIP logo

ti.barcode's Introduction

Titanium Barcode Module Build Status @titanium-sdk/ti.barcode

This is the Barcode Module for Titanium built on top of the ZXing library (Android) and AVFoundation (iOS).

Contributors

Interested in contributing? Read the contributors/committer's guide.

Legal

This module is Copyright (c) 2010-present by Appcelerator, Inc. All Rights Reserved. Usage of this module is subject to the Terms of Service agreement with Appcelerator, Inc.

ti.barcode's People

Contributors

akansha-maheshwari avatar caspahouzer avatar cb1kenobi avatar dependabot-preview[bot] avatar dependabot[bot] avatar ewanharris avatar garymathews avatar hansemannn avatar hazemkhaled avatar ingo avatar jawa9000 avatar jonalter avatar jquick-axway avatar jwogan5 avatar lokeshchdhry avatar m1ga avatar muhamadjawdat avatar muhammaddadu avatar sgtcoolguy avatar sriks avatar vijaysingh-axway avatar vikas-goyal-axway avatar ypbnv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ti.barcode's Issues

Android CAMERA permission issue on Android SDK23+ (Ti SDK 5+)

From https://developer.android.com/training/permissions/requesting.html#perm-check

If the device is running Android 6.0 or higher, and your app's target SDK is 23 or higher: The app has to list the permissions in the manifest, and it must request each dangerous permission it needs while the app is running.

CAMERA is a "dangerous" permission. I am uncertain, but my impression is that the intent, the bundled version of zxing should be making that requestPermissions() to prompt the user to allow access. Since this not happening the only way you can use this module appears to go into "Settings" and give the app explicit access to the camera.

I haven't used Java in a long time, but if somebody can point me in the right direction I'd be happy to attempt to fix this. Thanks!

Overlay dimensions in iOS?

Overlay looks good on Android however on iOS I'm getting this:

simulator screen shot - iphone 7 - 2017-11-03 at 09 52 41

With this code:

var overlay = Ti.UI.createView({
    backgroundColor: 'transparent',
    top: 0, left: 0, borderColor:'white', borderWidth:2,
    width:'100%', height:'100%'
});

var cancelButton = Ti.UI.createButton({
    title: 'Cancel', textAlign: 'center',
    color: '#000', backgroundColor: '#fff', style: 0,
    font: { fontWeight: 'bold', fontSize: 16 },
    borderColor: '#000', borderRadius: 2, borderWidth: 0,
    opacity: 0.5,
    width: 220, 
    height: 40,
    bottom: 20
});
cancelButton.addEventListener('click', function () {
    Barcode.cancel();
});
overlay.add(cancelButton);

It should take up the entire screen I would think unless I missed something... thoughts? Thanks!

Using of module overwrites app name on home screen

Hi,
using 2.3.0 of module in sdk3.5.1.GA shows on home screen of android "Barcode Scanner" (text from modules/../res/values/strings.xml) and not my name from tiapp.xml. If I have more then one apps with scanner all apps have this wrong name. In system configuration I can see under apps the right name.

Add support for arm7 & arm64

With the upgrade to iOS 9 I am no longer able to compile my app, because this module doesn't have support for the new architectures.

Cancel button not respond to click ios?

Cancel button not working in both cases on ios. Either i use overlay and add my own custom cancel button or use showCancel property with true value. Both cases not able to close Barcode scan view. Working just on simulator but not on device tested on iPod having iOS 8.3. I tested with latest code and module 1.10.0. As @hansemannn respond on issue #19.

Hey guys, please try #32 which should resolve this issue, too.

Android : What permissions are required to use the ti.barcode module?

On iOS i have no problem, i only ask the permission for the camera

if (Ti.Media.hasCameraPermissions()) {
   openQrcode();
} else {
   Ti.Media.requestCameraPermissions(function(e) {
       if (e.success) {
           openQrcode();
       } else {

           var tempmessage = "Hai negato l'accesso alla fotocamera del dispositivo inibendone la possibilità di scansionare i QR code.\n\n";
           if (isAndroid) {
               tempmessage += "Naviga in Impostazioni / App / " + Ti.App.name + " / Autorizzazioni e consenti l'accesso alla fotocamera.";
           } else {
               tempmessage += "Naviga in Impostazioni / Privacy / Fotocamera / " + Ti.App.name + " e consenti l'accesso alla fotocamera.";
           }

           var alertDialog = Ti.UI.createAlertDialog({
               title: "Attenzione",
               message: tempmessage,
               buttonNames: ["Ok"]
           });
           alertDialog.show();

       }
   });
}

function openQrcode() {
   Barcode.capture({
       animate: false,
       overlay: overlayQrcode,
       showCancel: false,
       showRectangle: true,
       keepOpen: false,
       acceptedFormats: [
           Barcode.FORMAT_QR_CODE
       ]
   });
}       

But now on Android i think i have some problems with the permission... For Android i use the same code above, plus this on the tiapp.xml

<android xmlns:android="http://schemas.android.com/apk/res/android">
        <manifest>
            <application android:theme="@style/Theme.AppCompat.Translucent.NoTitleBar.Fullscreen"/>
            <application android:debuggable="false"/>
            <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23"/>
            <uses-permission android:name="android.permission.CAMERA"/>  
        </manifest>
</android>   

On Android , when i have to open the camera, two permission requests are displayed

schermata 2018-07-20 alle 10 50 24
schermata 2018-07-20 alle 10 50 30

After the permissions are accepted, the function openQrcode() is called, and the app crashes.

schermata 2018-07-20 alle 10 50 35

Data Matrix unreliable

Whilte scanning of QR code is very fast and solid, the results for Data Matrix scans is unfortunately very unreliable. Some codes work, others not at all, especially with surrounding dark background. Does anyone face the same problem and has a proper solution? Tested with iOS.

android: Unexpected error initializing camera

I'm having errors trying to use the barcode scanner v. 3.0.0
I'm using Titanium 6.0.2.GA, node 4.6.2 and targeting Android SDK API: 23

Is this a known issue? anything i could try to make it work?

[WARN] :   CaptureActivity: Unexpected error initializing camera
[WARN] :   CaptureActivity: java.lang.RuntimeException: Fail to connect to camera service
[WARN] :   CaptureActivity: 	at android.hardware.Camera.<init>(Camera.java:496)
[WARN] :   CaptureActivity: 	at android.hardware.Camera.open(Camera.java:360)
[WARN] :   CaptureActivity: 	at com.google.zxing.client.android.camera.CameraManager.openDriver(CameraManager.java:166)
[WARN] :   CaptureActivity: 	at com.google.zxing.client.android.CaptureActivity.initCamera(CaptureActivity.java:772)
[WARN] :   CaptureActivity: 	at com.google.zxing.client.android.CaptureActivity.surfaceCreated(CaptureActivity.java:477)
[WARN] :   CaptureActivity: 	at android.view.SurfaceView.updateWindow(SurfaceView.java:618)
[WARN] :   CaptureActivity: 	at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:247)
[WARN] :   CaptureActivity: 	at android.view.View.dispatchWindowVisibilityChanged(View.java:10357)
[WARN] :   CaptureActivity: 	at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1290)
[WARN] :   CaptureActivity: 	at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1290)
[WARN] :   CaptureActivity: 	at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1290)
[WARN] :   CaptureActivity: 	at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1290)
[WARN] :   CaptureActivity: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1544)
[WARN] :   CaptureActivity: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
[WARN] :   CaptureActivity: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
[WARN] :   CaptureActivity: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
[WARN] :   CaptureActivity: 	at android.view.Choreographer.doCallbacks(Choreographer.java:686)
[WARN] :   CaptureActivity: 	at android.view.Choreographer.doFrame(Choreographer.java:621)
[WARN] :   CaptureActivity: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
[WARN] :   CaptureActivity: 	at android.os.Handler.handleCallback(Handler.java:751)
[WARN] :   CaptureActivity: 	at android.os.Handler.dispatchMessage(Handler.java:95)
[WARN] :   CaptureActivity: 	at android.os.Looper.loop(Looper.java:154)
[WARN] :   CaptureActivity: 	at android.app.ActivityThread.main(ActivityThread.java:6119)
[WARN] :   CaptureActivity: 	at java.lang.reflect.Method.invoke(Native Method)
[WARN] :   CaptureActivity: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
[WARN] :   CaptureActivity: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
[WARN] :   BarcodeModule: (main) [13051,18561] Result for scan was CANCELED
[ERROR] :  WindowManager:
[ERROR] :  WindowManager: android.view.WindowLeaked: Activity com.google.zxing.client.android.CaptureActivity has leaked window DecorView@5dc52a1[] that was originally added here
[ERROR] :  WindowManager: 	at android.view.ViewRootImpl.<init>(ViewRootImpl.java:418)
[ERROR] :  WindowManager: 	at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:331)
[ERROR] :  WindowManager: 	at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
[ERROR] :  WindowManager: 	at android.app.Dialog.show(Dialog.java:322)
[ERROR] :  WindowManager: 	at android.app.AlertDialog$Builder.show(AlertDialog.java:1112)
[ERROR] :  WindowManager: 	at com.google.zxing.client.android.CaptureActivity.displayFrameworkBugMessageAndExit(CaptureActivity.java:795)
[ERROR] :  WindowManager: 	at com.google.zxing.client.android.CaptureActivity.initCamera(CaptureActivity.java:785)
[ERROR] :  WindowManager: 	at com.google.zxing.client.android.CaptureActivity.surfaceCreated(CaptureActivity.java:477)
[ERROR] :  WindowManager: 	at android.view.SurfaceView.updateWindow(SurfaceView.java:618)
[ERROR] :  WindowManager: 	at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:161)
[ERROR] :  WindowManager: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
[ERROR] :  WindowManager: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2205)
[ERROR] :  WindowManager: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
[ERROR] :  WindowManager: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337)
[ERROR] :  WindowManager: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
[ERROR] :  WindowManager: 	at android.view.Choreographer.doCallbacks(Choreographer.java:686)
[ERROR] :  WindowManager: 	at android.view.Choreographer.doFrame(Choreographer.java:621)
[ERROR] :  WindowManager: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
[ERROR] :  WindowManager: 	at android.os.Handler.handleCallback(Handler.java:751)
[ERROR] :  WindowManager: 	at android.os.Handler.dispatchMessage(Handler.java:95)
[ERROR] :  WindowManager: 	at android.os.Looper.loop(Looper.java:154)
[ERROR] :  WindowManager: 	at android.app.ActivityThread.main(ActivityThread.java:6119)
[ERROR] :  WindowManager: 	at java.lang.reflect.Method.invoke(Native Method)
[ERROR] :  WindowManager: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
[ERROR] :  WindowManager: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)```

How to support both orientations landscape and portrait for Android?

How can I support both orientations for Android app? As current version only scans barcode in landscape mode. What changes I have to make to work it in both orientations. I want it to relayout scan view when user change it's device orientation. Can somebody help me out how to achieve this?

Cannot compile module with android 23 API : BookmarkColumns is not found

I got some errors connected with not found BookmarkColumns symbol:

[javac] /Users/kio21/git/ti.barcode/android/src/com/google/zxing/client/android/share/AppPickerActivity.java:49: error: cannot find symbol
[javac]       intent.putExtra(Browser.BookmarkColumns.URL, url);
[javac]                              ^
[javac]   symbol:   variable BookmarkColumns
[javac]   location: class Browser

[iOS 11.4] app.js on device crash when press "Scan Code"

I tried the version ios-1.10.2.

I tested this code (find on the documentation folder) on my device

/**
 * In this example, we'll use the Barcode module to display some information about
 * the scanned barcode.
 */
var Barcode = require('ti.barcode');
Barcode.allowRotation = true;
Barcode.displayedMessage = '';
Barcode.useLED = true;

var window = Ti.UI.createWindow({
    backgroundColor: 'white'
});
var scrollView = Ti.UI.createScrollView({
    contentWidth: 'auto',
    contentHeight: 'auto',
    top: 0,
    showVerticalScrollIndicator: true,
    layout: 'vertical'
});

/**
 * Create a chrome for the barcode scanner.
 */
var overlay = Ti.UI.createView({
    backgroundColor: 'transparent',
    top: 0, right: 0, bottom: 0, left: 0
});
var switchButton = Ti.UI.createButton({
    title: Barcode.useFrontCamera ? 'Back Camera' : 'Front Camera',
    textAlign: 'center',
    color: '#000', backgroundColor: '#fff', style: 0,
    font: { fontWeight: 'bold', fontSize: 16 },
    borderColor: '#000', borderRadius: 10, borderWidth: 1,
    opacity: 0.5,
    width: 220, height: 30,
    bottom: 10
});
switchButton.addEventListener('click', function () {
    Barcode.useFrontCamera = !Barcode.useFrontCamera;
    switchButton.title = Barcode.useFrontCamera ? 'Back Camera' : 'Front Camera';
});
overlay.add(switchButton);

var toggleLEDButton = Ti.UI.createButton({
    title: Barcode.useLED ? 'LED is On' : 'LED is Off',
    textAlign: 'center',
    color: '#000', backgroundColor: '#fff', style: 0,
    font: { fontWeight: 'bold', fontSize: 16 },
    borderColor: '#000', borderRadius: 10, borderWidth: 1,
    opacity: 0.5,
    width: 220, height: 30,
    bottom: 40
});
toggleLEDButton.addEventListener('click', function () {
    Barcode.useLED = !Barcode.useLED;
    toggleLEDButton.title = Barcode.useLED ? 'LED is On' : 'LED is Off';
});
overlay.add(toggleLEDButton);

var cancelButton = Ti.UI.createButton({
    title: 'Cancel', textAlign: 'center',
    color: '#000', backgroundColor: '#fff', style: 0,
    font: { fontWeight: 'bold', fontSize: 16 },
    borderColor: '#000', borderRadius: 10, borderWidth: 1,
    opacity: 0.5,
    width: 220, height: 30,
    top: 20
});
cancelButton.addEventListener('click', function () {
    Barcode.cancel();
});
overlay.add(cancelButton);

/**
 * Create a button that will trigger the barcode scanner.
 */
var scanCode = Ti.UI.createButton({
    title: 'Scan Code',
    width: 200,
    height: 60,
    top: 20
});
scanCode.addEventListener('click', function () {
    reset();
    // Note: while the simulator will NOT show a camera stream in the simulator, you may still call "Barcode.capture"
    // to test your barcode scanning overlay.
    Barcode.capture({
        animate: true,
        overlay: overlay,
        showCancel: false,
        showRectangle: false,
        keepOpen: true/*,
        acceptedFormats: [
            Barcode.FORMAT_QR_CODE
        ]*/
    });
});
scrollView.add(scanCode);

/**
 * Create a button that will show the gallery picker.
 */
var scanImage = Ti.UI.createButton({
    title: 'Scan Image from Gallery',
    width: 200, height: 60, top: 20
});
scanImage.addEventListener('click', function () {
    reset();
    Ti.Media.openPhotoGallery({
        success: function (evt) {
            Barcode.parse({
                image: evt.media/*,
                acceptedFormats: [
                    Barcode.FORMAT_QR_CODE
                ]*/
            });
        }
    });
});
scrollView.add(scanImage);

/**
 * Now listen for various events from the Barcode module. This is the module's way of communicating with us.
 */
var scannedBarcodes = {}, scannedBarcodesCount = 0;
function reset() {
    scannedBarcodes = {};
    scannedBarcodesCount = 0;
    cancelButton.title = 'Cancel';

    scanResult.text = ' ';
    scanContentType.text = ' ';
    scanParsed.text = ' ';
}
Barcode.addEventListener('error', function (e) {
    scanContentType.text = ' ';
    scanParsed.text = ' ';
    scanResult.text = e.message;
});
Barcode.addEventListener('cancel', function (e) {
    Ti.API.info('Cancel received');
});
Barcode.addEventListener('success', function (e) {
    Ti.API.info('Success called with barcode: ' + e.result);
    if (!scannedBarcodes['' + e.result]) {
        scannedBarcodes[e.result] = true;
        scannedBarcodesCount += 1;
        cancelButton.title = 'Finished (' + scannedBarcodesCount + ' Scanned)';

        scanResult.text += e.result + ' ';
        scanContentType.text += parseContentType(e.contentType) + ' ';
        scanParsed.text += parseResult(e) + ' ';
    }
});

/**
 * Finally, we'll add a couple labels to the window. When the user scans a barcode, we'll stick information about it in
 * to these labels.
 */
scrollView.add(Ti.UI.createLabel({
    text: 'You may need to rotate the device',
    top: 10,
    height: Ti.UI.SIZE || 'auto', width: Ti.UI.SIZE || 'auto'
}));

scrollView.add(Ti.UI.createLabel({
    text: 'Result: ', textAlign: 'left',
    top: 10, left: 10,
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
}));
var scanResult = Ti.UI.createLabel({
    text: ' ', textAlign: 'left',
    top: 10, left: 10,
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
});
scrollView.add(scanResult);

scrollView.add(Ti.UI.createLabel({
    text: 'Content Type: ',
    top: 10, left: 10,
    textAlign: 'left',
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
}));
var scanContentType = Ti.UI.createLabel({
    text: ' ', textAlign: 'left',
    top: 10, left: 10,
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
});
scrollView.add(scanContentType);

scrollView.add(Ti.UI.createLabel({
    text: 'Parsed: ', textAlign: 'left',
    top: 10, left: 10,
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
}));
var scanParsed = Ti.UI.createLabel({
    text: ' ', textAlign: 'left',
    top: 10, left: 10,
    color: 'black',
    height: Ti.UI.SIZE || 'auto'
});
scrollView.add(scanParsed);

function parseContentType(contentType) {
    switch (contentType) {
        case Barcode.URL:
            return 'URL';
        case Barcode.SMS:
            return 'SMS';
        case Barcode.TELEPHONE:
            return 'TELEPHONE';
        case Barcode.TEXT:
            return 'TEXT';
        case Barcode.CALENDAR:
            return 'CALENDAR';
        case Barcode.GEOLOCATION:
            return 'GEOLOCATION';
        case Barcode.EMAIL:
            return 'EMAIL';
        case Barcode.CONTACT:
            return 'CONTACT';
        case Barcode.BOOKMARK:
            return 'BOOKMARK';
        case Barcode.WIFI:
            return 'WIFI';
        default:
            return 'UNKNOWN';
    }
}

function parseResult(event) {
    var msg = '';
    switch (event.contentType) {
        case Barcode.URL:
            msg = 'URL = ' + event.result;
            break;
        case Barcode.SMS:
            msg = 'SMS = ' + JSON.stringify(event.data);
            break;
        case Barcode.TELEPHONE:
            msg = 'Telephone = ' + event.data.phonenumber;
            break;
        case Barcode.TEXT:
            msg = 'Text = ' + event.result;
            break;
        case Barcode.CALENDAR:
            msg = 'Calendar = ' + JSON.stringify(event.data);
            break;
        case Barcode.GEOLOCATION:
            msg = 'Latitude = ' + event.data.latitude + '\nLongitude = ' + event.data.longitude;
            break;
        case Barcode.EMAIL:
            msg = 'Email = ' + event.data.email + '\nSubject = ' + event.data.subject + '\nMessage = ' + event.data.message;
            break;
        case Barcode.CONTACT:
            msg = 'Contact = ' + JSON.stringify(event.data);
            break;
        case Barcode.BOOKMARK:
            msg = 'Bookmark = ' + JSON.stringify(event.data);
            break;
        case Barcode.WIFI:
            return 'WIFI = ' + JSON.stringify(event.data);
        default:
            msg = 'unknown content type';
            break;
    }
    return msg;
}

window.add(scrollView);
window.open();

When i tap on "Scan Code", the app crashes. Without a log.

If i tap "Scan Image from Gallery", and use an image with barcode/qrcode, the module seems to correctly recognize both.

Custom Rectangle SIZE

there is a method to customize the dimension of rectangle in overlay during barcode scanning?

now the dimension if the screen in not so higher is good, but with big monitor (S5,S6,NEXUS5) the rectangle is too little...

thank you

camara does not show up clearly

When the reader is activated , the camera does not focus properly clearly, it is not crisp as it should be to activate the camera. For example using Barcode Scanner does work fine, show up correctly! but for some reason with Ti.Barcode no. Any Idea?

I am using titanium 5.1.1.GA
On android 5.1.1

Thanks!.

Ti SDK 4.1.0.GA, Android 5.1.1 and CODE 128

Hi.
I got it working on my app and everything is wonderfully fine, all barcodes are read quickly, with the exception of CODE_128, 128C to be more precise, that unfortunately is the only one I really needed to work within this app I'm building.
This is the only Ti barcode module I was able to get working. So, I'm really out of options here.
There is something that can be done to make it work right with CODE 128?
Thank you.

Fail with 3.5.0.RC ios

unable to build app using this module and sdk 3.5.0.rc

this is the error


[TRACE] Undefined symbols for architecture i386:
[TRACE]   "_iconv_open", referenced from:
[TRACE]       zxing::qrcode::DecodedBitStreamParser::append(std::string&, unsigned char const*, unsigned long, char const*) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]   "_iconv", referenced from:
[TRACE]       zxing::qrcode::DecodedBitStreamParser::append(std::string&, unsigned char const*, unsigned long, char const*) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]   "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decode(zxing::ArrayRef<unsigned char>) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]   "VTT for std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >", referenced from:
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeByteSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeNumericSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::Mode::forBits(int) in libti.barcode.a(Mode.o)
[TRACE]   "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(std::_Ios_Openmode)", referenced from:
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decode(zxing::ArrayRef<unsigned char>) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeByteSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeNumericSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::Mode::forBits(int) in libti.barcode.a(Mode.o)
[TRACE]   "std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()", referenced from:
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeByteSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeNumericSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::Mode::forBits(int) in libti.barcode.a(Mode.o)
[TRACE]   "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
[TRACE]       +[ProductResultParser parsedResultForString:format:] in libti.barcode.a(ProductResultParser.o)
[TRACE]       zxing::oned::Code39Reader::Code39Reader() in libti.barcode.a(Code39Reader.o)
[TRACE]       zxing::Exception::Exception(char const*) in libti.barcode.a(Exception.o)
[TRACE]   "std::ios_base::~ios_base()", referenced from:
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeByteSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeNumericSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::Mode::forBits(int) in libti.barcode.a(Mode.o)
[TRACE]   "std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::_Ios_Openmode)", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]   "std::string::erase(unsigned long, unsigned long)", referenced from:
[TRACE]       zxing::oned::Code39Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code39Reader.o)
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]   "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str(std::string const&)", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]   "std::ostream::operator<<(int)", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeAsciiSegment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeC40Segment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeTextSegment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeEdifactSegment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       ...
[TRACE]   "std::string::substr(unsigned long, unsigned long) const", referenced from:
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::MultiFormatUPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(MultiFormatUPCEANReader-88FC752F78346B4D.o)
[TRACE]       zxing::oned::UPCAReader::maybeReturnResult(zxing::Ref<zxing::Result>) in libti.barcode.a(UPCAReader.o)
[TRACE]   "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, int)", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeAsciiSegment(zxing::Ref<zxing::BitS
[TRACE] ource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeC40Segment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeTextSegment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeAnsiX12Segment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decodeBase256Segment(zxing::Ref<zxing::BitSource>, std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       ...
[TRACE]   "std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_stringstream()", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]   "_iconv_close", referenced from:
[TRACE]       zxing::qrcode::DecodedBitStreamParser::append(std::string&, unsigned char const*, unsigned long, char const*) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]   "std::string::insert(unsigned long, unsigned long, char)", referenced from:
[TRACE]       zxing::oned::UPCEReader::determineNumSysAndCheckDigit(std::string&, int) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::EAN13Reader::determineFirstDigit(std::string&, int) in libti.barcode.a(EAN13Reader.o)
[TRACE]   "std::string::append(char const*, unsigned long)", referenced from:
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::append(std::string&, unsigned char const*, unsigned long, char const*) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]   "std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const", referenced from:
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]       zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libti.barcode.a(Detector-B8B28E953F840D47.o)
[TRACE]       zxing::datamatrix::DecodedBitStreamParser::decode(zxing::ArrayRef<unsigned char>) in libti.barcode.a(DecodedBitStreamParser-2DFDD4AF2EC4BE61.o)
[TRACE]       zxing::GridSampler::checkAndNudgePoints(zxing::Ref<zxing::BitMatrix>, std::vector<float, std::allocator<float> >&) in libti.barcode.a(GridSampler.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeByteSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::DecodedBitStreamParser::decodeNumericSegment(zxing::Ref<zxing::BitSource>, std::string&, int) in libti.barcode.a(DecodedBitStreamParser-64E27B33E79CBC52.o)
[TRACE]       zxing::qrcode::Mode::forBits(int) in libti.barcode.a(Mode.o)
[TRACE]       ...
[TRACE]   "std::string::append(std::string const&)", referenced from:
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::Code128Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code128Reader.o)
[TRACE]   "std::string::_Rep::_S_empty_rep_storage", referenced from:
[TRACE]       +[ProductResultParser parsedResultForString:format:] in libti.barcode.a(ProductResultParser.o)
[TRACE]       zxing::oned::UPCEReader::checkChecksum(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::MultiFormatUPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(MultiFormatUPCEANReader-88FC752F78346B4D.o)
[TRACE]       zxing::String::~String() in libti.barcode.a(Str.o)
[TRACE]       zxing::String::~String() in libti.barcode.a(Str.o)
[TRACE]       zxing::datamatrix::Decoder::decode(zxing::Ref<zxing::BitMatrix>) in libti.barcode.a(Decoder-1F00930391B4DE63.o)
[TRACE]       ...
[TRACE]   "std::string::_M_leak_hard()", referenced from:
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::Code39Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code39Reader.o)
[TRACE]       zxing::oned::Code39Reader::decodeExtended(std::string) in libti.barcode.a(Code39Reader.o)
[TRACE]       zxing::oned::UPCEANReader::checkStandardUPCEANChecksum(std::string) in libti.barcode.a(UPCEANReader.o)
[TRACE]   "std::string::append(unsigned long, char)", referenced from:
[TRACE]       zxing::oned::UPCEReader::decodeMiddle(zxing::Ref<zxing::BitArray>, int, int, std::string&) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::UPCEReader::determineNumSysAndCheckDigit(std::string&, int) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::EAN8Reader::decodeMiddle(zxing::Ref<zxing::BitArray>, int, int, std::string&) in libti.barcode.a(EAN8Reader.o)
[TRACE]       zxing::oned::EAN13Reader::decodeMiddle(zxing::Ref<zxing::BitArray>, int, int, std::string&) in libti.barcode.a(EAN13Reader.o)
[TRACE]       zxing::oned::Code39Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code39Reader.o)
[TRACE]       zxing::oned::Code39Reader::decodeExtended(std::string) in libti.barcode.a(Code39Reader.o)
[TRACE]       ...
[TRACE]   "std::__throw_length_error(char const*)", referenced from:
[TRACE]       std::vector<zxing::Ref<zxing::Reader>, std::allocator<zxing::Ref<zxing::Reader> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::Ref<zxing::Reader>*, std::vector<zxing::Ref<zxing::Reader>, std::allocator<zxing::Ref<zxing::Reader> > > >, zxing::Ref<zxing::Reader> const&) in libti.barcode.a(MultiFormatReader-A05FBD3509C4DF63.o)
[TRACE]       std::vector<zxing::Ref<zxing::oned::OneDReader>, std::allocator<zxing::Ref<zxing::oned::OneDReader> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::Ref<zxing::oned::OneDReader>*, std::vector<zxing::Ref<zxing::oned::OneDReader>, std::allocator<zxing::Ref<zxing::oned::OneDReader> > > >, zxing::Ref<zxing::oned::OneDReader> const&) in libti.barcode.a(MultiFormatOneDReader-4C701CB3BAFBDB44.o)
[TRACE]       std::vector<zxing::Ref<zxing::qrcode::FinderPattern>, std::allocator<zxing::Ref<zxing::qrcode::FinderPattern> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::Ref<zxing::qrcode::FinderPattern>*, std::vector<zxing::Ref<zxing::qrcode::FinderPattern>, std::allocator<zxing::Ref<zxing::qrcode::FinderPattern> > > >, zxing::Ref<zxing::qrcode::FinderPattern> const&) in libti.barcode.a(FinderPatternFinder.o)
[TRACE]       std::vector<zxing::qrcode::AlignmentPattern*, std::allocator<zxing::qrcode::AlignmentPattern*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::qrcode::AlignmentPattern**, std::vector<zxing::qrcode::AlignmentPattern*, std::allocator<zxing::qrcode::AlignmentPattern*> > >, zxing::qrcode::AlignmentPattern* const&) in libti.barcode.a(AlignmentPatternFinder.o)
[TRACE]       std::vector<zxing::Ref<zxing::qrcode::Version>, std::allocator<zxing::Ref<zxing::qrcode::Version> > >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::Ref<zxing::qrcode::Version>*, std::vector<zxing::Ref<zxing::qrcode::Version>, std::allocator<zxing::Ref<zxing::qrcode::Version> > > >, zxing::Ref<zxing::qrcode::Version> const&) in libti.barcode.a(Version-B29317F0E90C1E48.o)
[TRACE]       std::vector<zxing::qrcode::ECB*, std::allocator<zxing::qrcode::ECB*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<zxing::qrcode::ECB**, std::vector<zxing::qrcode::ECB*, std::allocator<zxing::qrcode::ECB*> > >, zxing::qrcode::ECB* const&) in libti.barcode.a(Version-B29317F0E90C1E48.o)
[TRACE]       std::vector<zxing::Ref<zxing::datamatrix::Version>, std::allocator<zxing::Ref<zxing::datamatrix::Version> > >::_M_insert_aux
[TRACE] (__gnu_cxx::__normal_iterator<zxing::Ref<zxing::datamatrix::Version>*, std::vector<zxing::Ref<zxing::datamatrix::Version>, std::allocator<zxing::Ref<zxing::datamatrix::Version> > > >, zxing::Ref<zxing::datamatrix::Version> const&) in libti.barcode.a(Version-81CDE81086AC0F56.o)
[TRACE]       ...
[TRACE]   "std::string::find(char, unsigned long) const", referenced from:
[TRACE]       zxing::oned::Code39Reader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(Code39Reader.o)
[TRACE]   "std::ios_base::Init::Init()", referenced from:
[TRACE]       __GLOBAL__I_a in libti.barcode.a(TiBarcodeModule.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(MultiFormatReader-10FFACF133676F94.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(FormatReader.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(Decoder-3DF771F40A970F8E.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(DataMatrixReader-646EB32A749E4354.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(ProductResultParser.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(MultiFormatUPCEANReader-91FDC9FA94C6F35F.o)
[TRACE]       ...
[TRACE]   "std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)", referenced from:
[TRACE]       +[ProductResultParser parsedResultForString:format:] in libti.barcode.a(ProductResultParser.o)
[TRACE]       zxing::MultiFormatReader::decodeInternal(zxing::Ref<zxing::BinaryBitmap>) in libti.barcode.a(MultiFormatReader-A05FBD3509C4DF63.o)
[TRACE]       zxing::oned::UPCEReader::checkChecksum(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::String::String(std::string const&) in libti.barcode.a(Str.o)
[TRACE]       zxing::datamatrix::Decoder::correctErrors(zxing::ArrayRef<unsigned char>, int) in libti.barcode.a(Decoder-1F00930391B4DE63.o)
[TRACE]       zxing::GlobalHistogramBinarizer::getBlackRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(GlobalHistogramBinarizer.o)
[TRACE]       zxing::oned::OneDReader::doDecode(zxing::Ref<zxing::BinaryBitmap>, zxing::DecodeHints) in libti.barcode.a(OneDReader.o)
[TRACE]       ...
[TRACE]   "std::string::_Rep::_M_destroy(std::allocator<char> const&)", referenced from:
[TRACE]       +[ProductResultParser parsedResultForString:format:] in libti.barcode.a(ProductResultParser.o)
[TRACE]       zxing::oned::UPCEReader::checkChecksum(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::UPCEReader::convertUPCEtoUPCA(std::string) in libti.barcode.a(UPCEReader.o)
[TRACE]       zxing::oned::MultiFormatUPCEANReader::decodeRow(int, zxing::Ref<zxing::BitArray>) in libti.barcode.a(MultiFormatUPCEANReader-88FC752F78346B4D.o)
[TRACE]       zxing::String::~String() in libti.barcode.a(Str.o)
[TRACE]       zxing::String::~String() in libti.barcode.a(Str.o)
[TRACE]       zxing::datamatrix::Decoder::decode(zxing::Ref<zxing::BitMatrix>) in libti.barcode.a(Decoder-1F00930391B4DE63.o)
[TRACE]       ...
[TRACE]   "std::ios_base::Init::~Init()", referenced from:
[TRACE]       __GLOBAL__I_a in libti.barcode.a(TiBarcodeModule.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(MultiFormatReader-10FFACF133676F94.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(FormatReader.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(Decoder-3DF771F40A970F8E.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(DataMatrixReader-646EB32A749E4354.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(ProductResultParser.o)
[TRACE]       __GLOBAL__I_a in libti.barcode.a(MultiFormatUPCEANReader-91FDC9FA94C6F35F.o)
[TRACE]       ...
[TRACE] ld: symbol(s) not found for architecture i386
[TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] 2015-01-08 10:53:03.179 xcodebuild[43382:565110]  DeveloperPortal: Using pre-existing current store at URL (file:///Users/francesco/Library/Developer/Xcode/DeveloperPortal%206.1.1.db).
[ERROR] ** BUILD FAILED **
[ERROR] The following build commands failed:
[ERROR]         Ld build/Debug-iphonesimulator/SeaTec.app/SeaTec normal i386
[ERROR] (1 failure)

Barcode.allowInstructions=false crashes the app after the second scan attempt (android)

Hello friends,

First of all thank you for the library, it's very useful. And I was happy with it until I tried to set Barcode.allowInstructions = false;. First time it works great, instructions are not showing and the scanner works as expected. But after second scan attempt the app crashes with the following error.

Here is the stack trace (android):

[WARN] :   W/System.err: java.lang.NullPointerException
[WARN] :   W/System.err:    at ti.barcode.BarcodeModule.disableInstructions(BarcodeModule.java:317)
[WARN] :   W/System.err:    at ti.barcode.BarcodeModule.capture(BarcodeModule.java:297)
[WARN] :   W/System.err:    at org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)
[WARN] :   W/System.err:    at org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:62)
[WARN] :   W/System.err:    at org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:884)
[WARN] :   W/System.err:    at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1107)
[WARN] :   W/System.err:    at org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:347)
[WARN] :   W/System.err:    at android.os.Handler.dispatchMessage(Handler.java:98)
[WARN] :   W/System.err:    at android.os.Looper.loop(Looper.java:136)
[WARN] :   W/System.err:    at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112)
[ERROR] :  TiExceptionHandler: (main) [114,14624] ----- Titanium Javascript Runtime Error -----
[ERROR] :  TiExceptionHandler: (main) [1,14625] - In alloy/controllers/input/input.js:1,69
[ERROR] :  TiExceptionHandler: (main) [1,14626] - Message: Uncaught Error: Java Exception occurred
[ERROR] :  TiExceptionHandler: (main) [1,14627] - Source: lert("addEvList cancelButton"),t.add(i),alert("cancelButton add"),a.capture({a
[ERROR] :  V8Exception: Exception occurred at alloy/controllers/input/input.js:1: Uncaught Error: Java Exception occurred

Environment:
OS Ubuntu 14.04
Titanium Studio, build: 3.4.1.201410281727
Titanium SDK 3.5.0.GA
Ti.barcode 2.3.5
Tested on devices LG-D690 (android 4.4.2) and Samsung GT-S7562 (android 4.0.4).

Thank you in advance

Is there a way to scan inside personal view ?

I would like to know if it's possible to start scanning inside my tabbed app.
Actually, the camera launch in full screen, and bars are disappearing :/

I see there is "SurfaceView" in android that allow to do this, do you think it's hard to implement ?

Thanks for the answer.

[Request] Add a delay before active the scan

I'm testing the module on iOS. It works very well (to well). I have enabled only the Barcode.FORMAT_QR_CODE.
In fact, very often if i start scanning with the camera in front of a qrcode, this is recognized immediately, not even allowing the view-overlay to open (or the view-overlay opens for a few milliseconds).

Would not it be useful to add a delay (in milliseconds?) before activating the scan? That is, open the camera, but enable scanning after the set delay.

Thank you

Update zxing to 3.2.1

Why not update this module to the new version of zxing?
It have a lot of new features and bug fixes!

Installation guide

Hello. Can you please tell me how to install this module within my app? I followed the link you gave for the titanium module installation but it isnt getting installed.
Sorry for a simple query.

ti.barcode and SDK 5.1.2 GA

Hello everybody!

Is possible to use ti.barcode module with the SDK 5.1.2 Titanium version?

Thanks in advance.
Best regards,
Mirco

1D is impossible since OneDMode is set to NO

The project description "QR and Barcode Scanner " is missleading.

It's not possible to scan 1d Barcodes with this module,
because "OneDMode" ist set to NO.
Only minor changes are required to enable 1d Barcode scanning.

TiBarcodeModule.mm->line 233 change OneDMode:NO to OneDMode: YES
ZXingWidgetController.m->line 498 if (oneDMode) to if (NO)

[Android] Camera screen is not showing.

The first time you use the bar code scan feature instead of seeing the camera image a black screen is shown.
Pressing back seems to not do anything, putting the app in background and then bring forward still showed the black screen, closing the app and reopening still shows the black screen when scan bar code is selected again. I can’t be sure but I think rotating the screen or swiping down the top menu when the black screen was shown caused it to then show the what’s “New in version 4.0:” screen for the bar code scanner. Once you press DONE button at the bottom the camera image is shown and you can scan. After then selecting scan code always brings up the camera. So it looks like the display of the scanner “whats new” screen is causing issues.

Doesn't work in API23

Hello,

I can compile the app (linking of ti.barcode successful), but at runtime comes:

02-11 19:01:08.630 24966 24994 E AndroidRuntime: FATAL EXCEPTION: KrollRuntimeThread
02-11 19:01:08.630 24966 24994 E AndroidRuntime: Process: com.eppendorf.appmain, PID: 24966
02-11 19:01:08.630 24966 24994 E AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.eppendorf.appmain-1/lib/arm/libti.barcode.so: has text relocations
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at java.lang.Runtime.loadLibrary(Runtime.java:372)
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at java.lang.System.loadLibrary(System.java:1076)
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:185)
02-11 19:01:08.630 24966 24994 E AndroidRuntime:    at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:109)
02-11 19:01:08.632 18536 19224 W ActivityManager:   Force finishing activity com.eppendorf.appmain/.EppendorfActivity
02-11 

This issue kills the app.

How to improve Barcode.parse results?

I am using the Barcode.parse method to parse QR-Codes on Image (receipts) from the gallery. Most times I get no result from the parsing. Can you please tell me how to improve the results? Does it maybe depend on the image size or the position of the QR-Code?

try { Barcode.parse({ image: blob, acceptedFormats: [ Barcode.FORMAT_QR_CODE ] }); } catch(e) { Ti.API.info(e); } }

Android Menu Button / iOS Overlay Layout

When pressing the Android menu button on an Android device, the host app crashes. allowMenu seems to have no effect.

In iOS, the overlay view, no matter what you do, is not able to be formatted for width and other view layout properties. No matter what you do, the view (via createView) always aligns upper left and it is impossible to have it's width or height fill the parent window. Everything in this regard works as expected in Android.

Run module 1.9.0

hi man now i have a problem while using the module in ios when i run the module 1.9.0 on titanium sdk 3.5.0 RC it give me this bug
[ERROR] : ** BUILD FAILED **
[ERROR] : The following build commands failed:
[ERROR] : Ld build/Debug-iphoneos/qr\ reader.app/qr\ reader normal armv7
[ERROR] : (1 failure)

can u help me to fix this bug

PDF417 Support

Any plans to include PDF417 support to scan id's? Thanks so much

Camera Overlay disappearing randomly

@hansemannn On latest iOS version, we're seeing the camera overlay view randomly disappear after a period of time if you leave the scanner open but don't scan a code.

Sometimes 5 seconds after opening, other times up to a minute, very random. Thought it might have been to do with touch or orientation, but have been unable to reproduce it reliably.

It's just a simple view with a label or two on it. We've tried setting a zIndex on the overlay too, but that didn't make a difference.

Any ideas?

Android with 6.3.X targetSdkVersion=25 classic project is crashing on build

Error log:

[ERROR]
[ERROR] warning: string 'CANCELAccBtSubmit' has no default translation.
[ERROR] warning: string 'REPORTLISTReasonDescRankingG' has no default translation.
[ERROR] warning: string 'REPORTLISTReasonTitleRankingG' has no default translation.
[ERROR] res/raw/beep.wav:0: error: Resource entry beep is already defined.
[ERROR] res/raw/beep.ogg:0: Originally defined here.

Android : Camera is distorted

I have tested the module on a simple app witn an Android device

  • Model : Wiko - Jerry
  • Version : Android 6.0

Image from phone camera
phone

Image from app-module camera
app

The image is distorted vertically, and this obviously negatively affects the recognition of the qr-code.

Issue with use ti.barcode in two separated windows

Hi,

I just want to tell you something about the module, I´m working with an application in order to scan a QR code in 2 separated profiles, the second Barcode.addEventListener('success', call at the first option even when I tell to the application "I´m in window 1" so you need to fire this function and not of the Window #2.

Android 6 not working

On a device running Android 6, when the app tries to use the camera to scan the message "Sorry, the Android camera encountered a problem. You may need to restart the device." is shown and the camera cannot be used.

statusBarStyle of ti.barcode view is always black

The status bar text of the Barcode.capture call is always black. I have UIStatusBarStyle in tiapp.xml set to UIStatusBarStyleLightContent but it's still black text when opening the Barcode.capture.

Is there something I can do to get LIGHT_CONTENT on the Barcode.capture window?

Overlay is under camera view

Hi guys,
i´ve an issue with the overlay(Imageview). When i add a cancel button on it, it doesn´t react. It´s only responding on the button, when i lay down the phone on the table.
Seems to be the overlay is under the camera view or something like that.
The Parameter "showCancel" doesn´t work at all with an overlay.
I use your latest version, 1.9.1, project build with Titanium SDK 3.5.1 on an IPhone 5 with IOS 8.3

Hope it can be fixed soon.
Thanks for your help :)

iOS Orientation Error

Hy,

I'm using your module for my app, but at iOS it's not changing orientation correctly. See screenshots.

Using iPhone 6 iOS 8.2.
Ti 4.0.0.v20150323131014
Xcode 6.2
ti.barcode 1.9.1

img_4624
img_4625

ios-1.9.1 - doesn't work

I wanted to implement iOS version in my app and I tried the sample app it doesn't work at all. This has a issue when rotating the screen. The main issue what I find here is it doesn't scan at all. Could you please help me on this?

Please find the attached pics.
portrait-200x300
landscape-300x200

What is "animated"?

Hi good day I hope Someone can help please. In the Barcode.capture function there is a parameter: animated, but I don't know what it does.
I put it false, i put it true but I don't notice a difference.
In the documentation says: "animate[boolean]: Indicates if the device should animate between the current activity and the camera activity when the current activity is in a different orientation than the camera. Default is true". But I don't understand what it does. Can You help me please! I'm from Mexico and my native language is Español.
Thanks

Orientation incorrect

Compiling the latest source and making an app with the example app.js, the camera view is rotated 90 degrees on iPad, when using landscape mode. Is this a case of the example being outdated, or something else?

Barcode callback response does not include the format key in IOS

Hello,

Used this module's android version and worked as per my requirement. Needed the attribute named as "format" in my app. But currently facing problem with IOS version as it doesn't include the "format" in its callback response while returning from scanning barcode.

Barcode.setUseLED crashes with NullPointerException on Android

[WARN] : W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
[WARN] : W/System.err: at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:498)
[WARN] : W/System.err: at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:487)
[WARN] : W/System.err: at com.google.zxing.client.android.camera.CameraConfigurationManager.setTorch(CameraConfigurationManager.java:239)
[WARN] : W/System.err: at ti.barcode.BarcodeModule.setUseLED(BarcodeModule.java:155)
[WARN] : W/System.err: at org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method)
[WARN] : W/System.err: at org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:63)
[WARN] : W/System.err: at org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:962)
[WARN] : W/System.err: at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1186)
[WARN] : W/System.err: at org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:394)
[WARN] : W/System.err: at android.os.Handler.dispatchMessage(Handler.java:98)
[WARN] : W/System.err: at android.os.Looper.loop(Looper.java:154)
[WARN] : W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6119)
[WARN] : W/System.err: at java.lang.reflect.Method.invoke(Native Method)
[WARN] : W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
[WARN] : W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

QR Code reading on iOS suboptimal

If i am trying to scan a QR code on iOS it is very hard to find the correct distance with the camera. Also it takes quite long before the QR Code is detected. I have found out that you have to come very close before the code is detected - this on the other hand causes problems with the auto focus of the camera. If have tested this with an iphone 5c and an iphone 7.

Looking forward to your feedback!

Android 7 support

I have developed android application in appcelerator studio which is based on android-5. Now i have to give support on android-7 for same app then how can i give support same app andoid-5 to android-7.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.