liblinphone_tester_ios.m 2.14 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/*
 linphone library - modular sound and video processing and streaming
 Copyright (C) 2006-2014 Belledonne Communications, Grenoble

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version 2
 of the License, or (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
17
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18 19
 */

Benjamin REIS's avatar
Benjamin REIS committed
20
#include "TargetConditionals.h"
21 22 23 24 25 26 27
#if TARGET_OS_IPHONE

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#include <AudioToolbox/AudioToolbox.h>
#include <CoreFoundation/CFRunLoop.h>
#include "liblinphone_tester.h"
Benjamin REIS's avatar
Benjamin REIS committed
28
#include "tester_utils.h"
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

int g_argc;
char** g_argv;
void stop_handler(int sig) {
    return;
}

static void* _apple_main(void* data) {
    NSString *bundlePath = [[[NSBundle mainBundle] bundlePath] retain];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = [[paths objectAtIndex:0] retain];

    NSLog(@"Bundle path: %@", bundlePath);
	NSLog(@"Document path: %@", documentPath);

    bc_tester_set_resource_dir_prefix(bundlePath.UTF8String);
    bc_tester_set_writable_dir_prefix(documentPath.UTF8String);

	liblinphone_tester_init(NULL);
48
	bc_tester_start(NULL);
49 50 51 52 53 54 55 56 57 58 59 60
	liblinphone_tester_uninit();

    [bundlePath release];
    [documentPath release];
    return NULL;
}
int main(int argc, char * argv[]) {
    pthread_t main_thread;
    g_argc=argc;
    g_argv=argv;
    pthread_create(&main_thread,NULL,_apple_main,NULL);
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
61
    int value = UIApplicationMain(argc, argv, nil, nil);
62 63 64 65 66 67 68
    [pool release];
    return value;
    pthread_join(main_thread,NULL);
    return 0;
}

#endif // target IPHONE