forked from organicmaps/organicmaps
Remove video timer
This commit is contained in:
parent
e8ebcca6b5
commit
19600faf61
7 changed files with 0 additions and 523 deletions
|
@ -1,81 +0,0 @@
|
|||
#include "platform/video_timer.hpp"
|
||||
|
||||
#include "std/target_os.hpp"
|
||||
|
||||
#include <CoreVideo/CVDisplayLink.h>
|
||||
|
||||
class AppleVideoTimer : public VideoTimer
|
||||
{
|
||||
|
||||
CVDisplayLinkRef m_displayLink;
|
||||
|
||||
public:
|
||||
|
||||
AppleVideoTimer(VideoTimer::TFrameFn frameFn)
|
||||
: VideoTimer(frameFn), m_displayLink(0)
|
||||
{}
|
||||
|
||||
~AppleVideoTimer()
|
||||
{
|
||||
stop();
|
||||
}
|
||||
|
||||
static CVReturn displayLinkCallback(
|
||||
CVDisplayLinkRef /*displayLink*/,
|
||||
const CVTimeStamp * /*inNow*/,
|
||||
const CVTimeStamp * /*inOutputTime*/,
|
||||
CVOptionFlags /*flagsIn*/,
|
||||
CVOptionFlags * /*flagsOut*/,
|
||||
void * displayLinkContext
|
||||
)
|
||||
{
|
||||
AppleVideoTimer * t = reinterpret_cast<AppleVideoTimer*>(displayLinkContext);
|
||||
t->perform();
|
||||
|
||||
return kCVReturnSuccess;
|
||||
}
|
||||
|
||||
void start()
|
||||
{
|
||||
if (m_displayLink == 0)
|
||||
{
|
||||
CVDisplayLinkCreateWithActiveCGDisplays(&m_displayLink);
|
||||
CVDisplayLinkSetOutputCallback(m_displayLink, &displayLinkCallback, (void*)this);
|
||||
resume();
|
||||
}
|
||||
}
|
||||
|
||||
void resume()
|
||||
{
|
||||
CVDisplayLinkStart(m_displayLink);
|
||||
m_state = ERunning;
|
||||
}
|
||||
|
||||
void pause()
|
||||
{
|
||||
CVDisplayLinkStop(m_displayLink);
|
||||
m_state = EPaused;
|
||||
}
|
||||
|
||||
void stop()
|
||||
{
|
||||
if (m_displayLink)
|
||||
{
|
||||
if (state() == ERunning)
|
||||
pause();
|
||||
CVDisplayLinkRelease(m_displayLink);
|
||||
m_displayLink = 0;
|
||||
m_state = EStopped;
|
||||
}
|
||||
}
|
||||
|
||||
void perform()
|
||||
{
|
||||
m_frameFn();
|
||||
}
|
||||
};
|
||||
|
||||
VideoTimer * CreateAppleVideoTimer(VideoTimer::TFrameFn frameFn)
|
||||
{
|
||||
return new AppleVideoTimer(frameFn);
|
||||
}
|
|
@ -1,103 +0,0 @@
|
|||
#include "platform/video_timer.hpp"
|
||||
|
||||
#include "std/target_os.hpp"
|
||||
|
||||
#import <QuartzCore/CADisplayLink.h>
|
||||
#import <Foundation/NSRunLoop.h>
|
||||
|
||||
class IOSVideoTimer;
|
||||
|
||||
@interface VideoTimerWrapper : NSObject {
|
||||
@private
|
||||
IOSVideoTimer * m_timer;
|
||||
}
|
||||
- (id)initWithTimer:(IOSVideoTimer *) timer;
|
||||
- (void)perform;
|
||||
@end
|
||||
|
||||
class IOSVideoTimer : public VideoTimer
|
||||
{
|
||||
|
||||
VideoTimerWrapper * m_objCppWrapper;
|
||||
CADisplayLink * m_displayLink;
|
||||
|
||||
public:
|
||||
|
||||
IOSVideoTimer(VideoTimer::TFrameFn frameFn) : VideoTimer(frameFn), m_objCppWrapper(0), m_displayLink(0)
|
||||
{}
|
||||
|
||||
~IOSVideoTimer()
|
||||
{
|
||||
stop();
|
||||
}
|
||||
|
||||
void start()
|
||||
{
|
||||
if (m_displayLink == 0)
|
||||
{
|
||||
m_objCppWrapper = [[VideoTimerWrapper alloc] initWithTimer:this];
|
||||
m_displayLink = [CADisplayLink displayLinkWithTarget:m_objCppWrapper selector:@selector(perform)];
|
||||
m_displayLink.frameInterval = 1;
|
||||
m_displayLink.paused = true;
|
||||
[m_displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
|
||||
resume();
|
||||
}
|
||||
}
|
||||
|
||||
void stop()
|
||||
{
|
||||
if (m_displayLink)
|
||||
{
|
||||
// Set EStopped flag first. It seems like 'CADisplayLink::invalidate' can invoke pending 'perform'.
|
||||
// So we should check EStopped flag in 'perform' to skip pending call.
|
||||
m_state = EStopped;
|
||||
[m_displayLink invalidate];
|
||||
m_displayLink = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void pause()
|
||||
{
|
||||
m_displayLink.paused = true;
|
||||
m_state = EPaused;
|
||||
}
|
||||
|
||||
void resume()
|
||||
{
|
||||
m_displayLink.paused = false;
|
||||
m_state = ERunning;
|
||||
}
|
||||
|
||||
void perform()
|
||||
{
|
||||
// In case when we stopped and have pending perform at the same time.
|
||||
// It's not allowed to call m_frameFn after stopping (see WindowHandle::~WindowHandle).
|
||||
if (m_state != EStopped)
|
||||
m_frameFn();
|
||||
}
|
||||
};
|
||||
|
||||
@implementation VideoTimerWrapper
|
||||
|
||||
- (id)initWithTimer:(IOSVideoTimer*) timer
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
m_timer = timer;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)perform
|
||||
{
|
||||
m_timer->perform();
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
VideoTimer * CreateIOSVideoTimer(VideoTimer::TFrameFn frameFn)
|
||||
{
|
||||
return new IOSVideoTimer(frameFn);
|
||||
}
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
#include "testing/testing.hpp"
|
||||
|
||||
#include "platform/video_timer.hpp"
|
||||
|
||||
#include "base/thread.hpp"
|
||||
#include "base/logging.hpp"
|
||||
|
||||
#include "std/bind.hpp"
|
||||
|
||||
|
||||
void incrementValue(int & i)
|
||||
{
|
||||
++i;
|
||||
}
|
||||
|
||||
#ifdef OMIM_OS_MAC
|
||||
|
||||
UNIT_TEST(TimerTest)
|
||||
{
|
||||
/*
|
||||
int i = 0;
|
||||
|
||||
VideoTimer * videoTimer = CreatePThreadVideoTimer(bind(&incrementValue, ref(i)));
|
||||
|
||||
LOG(LINFO, ("checking for approximately 60 cycles in second"));
|
||||
|
||||
videoTimer->start();
|
||||
|
||||
threads::Sleep(1000);
|
||||
|
||||
videoTimer->pause();
|
||||
|
||||
TEST((i >= 57) && (i <= 61), ("timer doesn't work, i=", i));
|
||||
|
||||
videoTimer->resume();
|
||||
|
||||
threads::Sleep(200);
|
||||
|
||||
videoTimer->stop();
|
||||
|
||||
videoTimer->start();
|
||||
|
||||
threads::Sleep(200);
|
||||
|
||||
videoTimer->stop();
|
||||
*/
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,141 +0,0 @@
|
|||
#include "std/target_os.hpp"
|
||||
|
||||
#ifndef OMIM_OS_WINDOWS_NATIVE
|
||||
|
||||
#include "platform/video_timer.hpp"
|
||||
|
||||
#include "base/logging.hpp"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/errno.h>
|
||||
|
||||
|
||||
class PThreadVideoTimer : public VideoTimer
|
||||
{
|
||||
private:
|
||||
|
||||
pthread_t m_handle;
|
||||
pthread_mutex_t m_mutex;
|
||||
pthread_cond_t m_cond;
|
||||
int m_frameRate;
|
||||
|
||||
public:
|
||||
PThreadVideoTimer(VideoTimer::TFrameFn frameFn)
|
||||
: VideoTimer(frameFn), m_frameRate(60)
|
||||
{
|
||||
::pthread_mutex_init(&m_mutex, 0);
|
||||
::pthread_cond_init(&m_cond, 0);
|
||||
}
|
||||
|
||||
~PThreadVideoTimer()
|
||||
{
|
||||
stop();
|
||||
|
||||
::pthread_mutex_destroy(&m_mutex);
|
||||
::pthread_cond_destroy(&m_cond);
|
||||
}
|
||||
|
||||
static void * TimerProc(void * p)
|
||||
{
|
||||
PThreadVideoTimer * t = reinterpret_cast<PThreadVideoTimer*>(p);
|
||||
|
||||
::timeval prevtv;
|
||||
::gettimeofday(&prevtv, 0);
|
||||
|
||||
::timeval curtv;
|
||||
|
||||
int64_t interval = 1000000000 / t->m_frameRate;
|
||||
int64_t halfInterval = interval / 2;
|
||||
|
||||
while (true)
|
||||
{
|
||||
::pthread_mutex_lock(&t->m_mutex);
|
||||
|
||||
t->perform();
|
||||
|
||||
::gettimeofday(&curtv, 0);
|
||||
|
||||
int64_t sec = (int64_t)curtv.tv_sec - (int64_t)prevtv.tv_sec;
|
||||
int64_t nsec = ((int64_t)curtv.tv_usec - (int64_t)prevtv.tv_usec) * 1000;
|
||||
|
||||
int64_t nsecDiff = sec * (int64_t)1000000000 + nsec;
|
||||
int64_t ceiledDiff = ((nsecDiff + interval - 1) / interval) * interval;
|
||||
|
||||
/// how much we should wait
|
||||
|
||||
if ((ceiledDiff - nsecDiff) < halfInterval)
|
||||
/// less than a half-frame left, should wait till next frame
|
||||
ceiledDiff += interval;
|
||||
|
||||
::timespec ts;
|
||||
|
||||
ts.tv_sec = prevtv.tv_sec + (prevtv.tv_usec * 1000 + ceiledDiff) / 1000000000;
|
||||
ts.tv_nsec = (prevtv.tv_usec * 1000 + ceiledDiff) % 1000000000;
|
||||
|
||||
::pthread_cond_timedwait(&t->m_cond, &t->m_mutex, &ts);
|
||||
|
||||
::gettimeofday(&prevtv, 0);
|
||||
|
||||
if (t->m_state == EStopped)
|
||||
{
|
||||
::pthread_mutex_unlock(&t->m_mutex);
|
||||
break;
|
||||
}
|
||||
|
||||
::pthread_mutex_unlock(&t->m_mutex);
|
||||
}
|
||||
|
||||
::pthread_exit(0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void start()
|
||||
{
|
||||
if (m_state == EStopped)
|
||||
{
|
||||
::pthread_create(&m_handle, 0, &TimerProc, reinterpret_cast<void*>(this));
|
||||
m_state = ERunning;
|
||||
}
|
||||
}
|
||||
|
||||
void resume()
|
||||
{
|
||||
if (m_state == EPaused)
|
||||
{
|
||||
m_state = EStopped;
|
||||
start();
|
||||
}
|
||||
}
|
||||
|
||||
void pause()
|
||||
{
|
||||
stop();
|
||||
m_state = EPaused;
|
||||
}
|
||||
|
||||
void stop()
|
||||
{
|
||||
if (m_state == ERunning)
|
||||
{
|
||||
::pthread_mutex_lock(&m_mutex);
|
||||
m_state = EStopped;
|
||||
::pthread_cond_signal(&m_cond);
|
||||
::pthread_mutex_unlock(&m_mutex);
|
||||
::pthread_join(m_handle, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void perform()
|
||||
{
|
||||
m_frameFn();
|
||||
}
|
||||
};
|
||||
|
||||
VideoTimer * CreatePThreadVideoTimer(VideoTimer::TFrameFn frameFn)
|
||||
{
|
||||
return new PThreadVideoTimer(frameFn);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -1,70 +0,0 @@
|
|||
#include "platform/video_timer.hpp"
|
||||
|
||||
#include "std/bind.hpp"
|
||||
|
||||
VideoTimer::VideoTimer(TFrameFn fn) : m_frameFn(fn), m_state(EStopped)
|
||||
{}
|
||||
|
||||
VideoTimer::EState VideoTimer::state() const
|
||||
{
|
||||
return m_state;
|
||||
}
|
||||
|
||||
VideoTimer::~VideoTimer()
|
||||
{}
|
||||
|
||||
VideoTimer::TFrameFn VideoTimer::frameFn() const
|
||||
{
|
||||
return m_frameFn;
|
||||
}
|
||||
|
||||
void VideoTimer::setFrameFn(TFrameFn fn)
|
||||
{
|
||||
m_frameFn = fn;
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
void empty() {}
|
||||
}
|
||||
|
||||
EmptyVideoTimer::EmptyVideoTimer()
|
||||
: base_t(bind(&empty))
|
||||
{
|
||||
}
|
||||
|
||||
EmptyVideoTimer::~EmptyVideoTimer()
|
||||
{
|
||||
stop();
|
||||
}
|
||||
|
||||
void EmptyVideoTimer::start()
|
||||
{
|
||||
if (m_state == EStopped)
|
||||
m_state = ERunning;
|
||||
}
|
||||
|
||||
void EmptyVideoTimer::resume()
|
||||
{
|
||||
if (m_state == EPaused)
|
||||
{
|
||||
m_state = EStopped;
|
||||
start();
|
||||
}
|
||||
}
|
||||
|
||||
void EmptyVideoTimer::pause()
|
||||
{
|
||||
stop();
|
||||
m_state = EPaused;
|
||||
}
|
||||
|
||||
void EmptyVideoTimer::stop()
|
||||
{
|
||||
if (m_state == ERunning)
|
||||
m_state = EStopped;
|
||||
}
|
||||
|
||||
void EmptyVideoTimer::perform()
|
||||
{
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "std/function.hpp"
|
||||
|
||||
/// Timer, synchronized to Vertical Sync
|
||||
class VideoTimer
|
||||
{
|
||||
public:
|
||||
|
||||
typedef function<void()> TFrameFn;
|
||||
|
||||
enum EState
|
||||
{
|
||||
EStopped,
|
||||
EPaused,
|
||||
ERunning
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
TFrameFn m_frameFn;
|
||||
EState m_state;
|
||||
|
||||
public:
|
||||
VideoTimer(TFrameFn fn);
|
||||
virtual ~VideoTimer();
|
||||
|
||||
TFrameFn frameFn() const;
|
||||
void setFrameFn(TFrameFn fn);
|
||||
|
||||
EState state() const;
|
||||
|
||||
virtual void resume() = 0;
|
||||
virtual void pause() = 0;
|
||||
|
||||
virtual void start() = 0;
|
||||
virtual void stop() = 0;
|
||||
};
|
||||
|
||||
class EmptyVideoTimer : public VideoTimer
|
||||
{
|
||||
typedef VideoTimer base_t;
|
||||
public:
|
||||
EmptyVideoTimer();
|
||||
~EmptyVideoTimer();
|
||||
|
||||
void start();
|
||||
void resume();
|
||||
void pause();
|
||||
void stop();
|
||||
void perform();
|
||||
};
|
||||
|
||||
extern "C" VideoTimer * CreateIOSVideoTimer(VideoTimer::TFrameFn frameFn);
|
||||
extern "C" VideoTimer * CreateAppleVideoTimer(VideoTimer::TFrameFn frameFn);
|
||||
extern "C" VideoTimer * CreateWin32VideoTimer(VideoTimer::TFrameFn frameFn);
|
||||
extern "C" VideoTimer * CreatePThreadVideoTimer(VideoTimer::TFrameFn frameFn);
|
|
@ -21,7 +21,6 @@
|
|||
56EB1EDE1C6B6E6C0022D831 /* mwm_traits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 56EB1EDA1C6B6E6C0022D831 /* mwm_traits.cpp */; };
|
||||
56EB1EDF1C6B6E6C0022D831 /* mwm_traits.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 56EB1EDB1C6B6E6C0022D831 /* mwm_traits.hpp */; };
|
||||
670E8C761BB318AB00094197 /* platform_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 670E8C741BB318AB00094197 /* platform_ios.mm */; };
|
||||
670E8C911BB31A2F00094197 /* ios_video_timer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 670E8C901BB31A2F00094197 /* ios_video_timer.mm */; };
|
||||
671182F31C80AC4200CB8177 /* WorldCoasts_obsolete.mwm in Resources */ = {isa = PBXBuildFile; fileRef = 671182F21C80AC3D00CB8177 /* WorldCoasts_obsolete.mwm */; };
|
||||
671C62061AE9014C00076BD0 /* measurement_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 671C62041AE9014C00076BD0 /* measurement_utils.cpp */; };
|
||||
671C62071AE9014C00076BD0 /* measurement_utils.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 671C62051AE9014C00076BD0 /* measurement_utils.hpp */; };
|
||||
|
@ -59,13 +58,10 @@
|
|||
675343CD1A3F5D5A00A0A8C3 /* platform.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343A21A3F5D5A00A0A8C3 /* platform.hpp */; };
|
||||
675343CE1A3F5D5A00A0A8C3 /* preferred_languages.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343A31A3F5D5A00A0A8C3 /* preferred_languages.cpp */; };
|
||||
675343CF1A3F5D5A00A0A8C3 /* preferred_languages.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343A41A3F5D5A00A0A8C3 /* preferred_languages.hpp */; };
|
||||
675343D01A3F5D5A00A0A8C3 /* pthread_video_timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343A51A3F5D5A00A0A8C3 /* pthread_video_timer.cpp */; };
|
||||
675343D11A3F5D5A00A0A8C3 /* servers_list.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343A61A3F5D5A00A0A8C3 /* servers_list.cpp */; };
|
||||
675343D21A3F5D5A00A0A8C3 /* servers_list.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343A71A3F5D5A00A0A8C3 /* servers_list.hpp */; };
|
||||
675343D31A3F5D5A00A0A8C3 /* settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343A81A3F5D5A00A0A8C3 /* settings.cpp */; };
|
||||
675343D41A3F5D5A00A0A8C3 /* settings.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343A91A3F5D5A00A0A8C3 /* settings.hpp */; };
|
||||
675343D71A3F5D5A00A0A8C3 /* video_timer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343AC1A3F5D5A00A0A8C3 /* video_timer.cpp */; };
|
||||
675343D81A3F5D5A00A0A8C3 /* video_timer.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343AD1A3F5D5A00A0A8C3 /* video_timer.hpp */; };
|
||||
675343D91A3F5D5A00A0A8C3 /* wifi_info_windows.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343AE1A3F5D5A00A0A8C3 /* wifi_info_windows.cpp */; };
|
||||
675343DA1A3F5D5A00A0A8C3 /* wifi_info.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 675343AF1A3F5D5A00A0A8C3 /* wifi_info.hpp */; };
|
||||
675343DB1A3F5D5A00A0A8C3 /* wifi_location_service.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675343B01A3F5D5A00A0A8C3 /* wifi_location_service.cpp */; };
|
||||
|
@ -82,7 +78,6 @@
|
|||
6783389C1C6DE59200FD6263 /* location_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675341061C58C4C9002CF0D9 /* location_test.cpp */; };
|
||||
6783389D1C6DE59200FD6263 /* measurement_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675341071C58C4C9002CF0D9 /* measurement_tests.cpp */; };
|
||||
6783389E1C6DE59200FD6263 /* platform_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675341081C58C4C9002CF0D9 /* platform_test.cpp */; };
|
||||
6783389F1C6DE59200FD6263 /* video_timer_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 675341091C58C4C9002CF0D9 /* video_timer_test.cpp */; };
|
||||
678338A01C6DE5BA00FD6263 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 6753413B1C58C79C002CF0D9 /* libz.tbd */; };
|
||||
678338A11C6DE5BA00FD6263 /* libbase.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 675341311C58C786002CF0D9 /* libbase.a */; };
|
||||
678338A21C6DE5BA00FD6263 /* libcoding.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 675341321C58C786002CF0D9 /* libcoding.a */; };
|
||||
|
@ -122,7 +117,6 @@
|
|||
56EB1EDA1C6B6E6C0022D831 /* mwm_traits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mwm_traits.cpp; sourceTree = "<group>"; };
|
||||
56EB1EDB1C6B6E6C0022D831 /* mwm_traits.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = mwm_traits.hpp; sourceTree = "<group>"; };
|
||||
670E8C741BB318AB00094197 /* platform_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = platform_ios.mm; sourceTree = "<group>"; };
|
||||
670E8C901BB31A2F00094197 /* ios_video_timer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ios_video_timer.mm; sourceTree = "<group>"; };
|
||||
671182F21C80AC3D00CB8177 /* WorldCoasts_obsolete.mwm */ = {isa = PBXFileReference; lastKnownFileType = file; path = WorldCoasts_obsolete.mwm; sourceTree = "<group>"; };
|
||||
671C62041AE9014C00076BD0 /* measurement_utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = measurement_utils.cpp; sourceTree = "<group>"; };
|
||||
671C62051AE9014C00076BD0 /* measurement_utils.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = measurement_utils.hpp; sourceTree = "<group>"; };
|
||||
|
@ -152,7 +146,6 @@
|
|||
675341061C58C4C9002CF0D9 /* location_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = location_test.cpp; sourceTree = "<group>"; };
|
||||
675341071C58C4C9002CF0D9 /* measurement_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = measurement_tests.cpp; sourceTree = "<group>"; };
|
||||
675341081C58C4C9002CF0D9 /* platform_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = platform_test.cpp; sourceTree = "<group>"; };
|
||||
675341091C58C4C9002CF0D9 /* video_timer_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = video_timer_test.cpp; sourceTree = "<group>"; };
|
||||
675341141C58C4D8002CF0D9 /* testingmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testingmain.cpp; path = ../../testing/testingmain.cpp; sourceTree = "<group>"; };
|
||||
6753412F1C58C70C002CF0D9 /* libindexer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libindexer.a; path = "../../../omim-xcode-build/Debug/libindexer.a"; sourceTree = "<group>"; };
|
||||
675341311C58C786002CF0D9 /* libbase.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbase.a; path = "../../../omim-xcode-build/Debug/libbase.a"; sourceTree = "<group>"; };
|
||||
|
@ -163,7 +156,6 @@
|
|||
6753413B1C58C79C002CF0D9 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
675343781A3F5CF500A0A8C3 /* libplatform.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libplatform.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
675343861A3F5D5900A0A8C3 /* apple_location_service.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = apple_location_service.mm; sourceTree = "<group>"; };
|
||||
675343871A3F5D5900A0A8C3 /* apple_video_timer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = apple_video_timer.mm; sourceTree = "<group>"; };
|
||||
675343881A3F5D5900A0A8C3 /* chunks_download_strategy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = chunks_download_strategy.cpp; sourceTree = "<group>"; };
|
||||
675343891A3F5D5900A0A8C3 /* chunks_download_strategy.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = chunks_download_strategy.hpp; sourceTree = "<group>"; };
|
||||
6753438A1A3F5D5900A0A8C3 /* constants.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = constants.hpp; sourceTree = "<group>"; };
|
||||
|
@ -185,13 +177,10 @@
|
|||
675343A21A3F5D5A00A0A8C3 /* platform.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = platform.hpp; sourceTree = "<group>"; };
|
||||
675343A31A3F5D5A00A0A8C3 /* preferred_languages.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = preferred_languages.cpp; sourceTree = "<group>"; };
|
||||
675343A41A3F5D5A00A0A8C3 /* preferred_languages.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = preferred_languages.hpp; sourceTree = "<group>"; };
|
||||
675343A51A3F5D5A00A0A8C3 /* pthread_video_timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pthread_video_timer.cpp; sourceTree = "<group>"; };
|
||||
675343A61A3F5D5A00A0A8C3 /* servers_list.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = servers_list.cpp; sourceTree = "<group>"; };
|
||||
675343A71A3F5D5A00A0A8C3 /* servers_list.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = servers_list.hpp; sourceTree = "<group>"; };
|
||||
675343A81A3F5D5A00A0A8C3 /* settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = settings.cpp; sourceTree = "<group>"; };
|
||||
675343A91A3F5D5A00A0A8C3 /* settings.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = settings.hpp; sourceTree = "<group>"; };
|
||||
675343AC1A3F5D5A00A0A8C3 /* video_timer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = video_timer.cpp; sourceTree = "<group>"; };
|
||||
675343AD1A3F5D5A00A0A8C3 /* video_timer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = video_timer.hpp; sourceTree = "<group>"; };
|
||||
675343AE1A3F5D5A00A0A8C3 /* wifi_info_windows.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wifi_info_windows.cpp; sourceTree = "<group>"; };
|
||||
675343AF1A3F5D5A00A0A8C3 /* wifi_info.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = wifi_info.hpp; sourceTree = "<group>"; };
|
||||
675343B01A3F5D5A00A0A8C3 /* wifi_location_service.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = wifi_location_service.cpp; sourceTree = "<group>"; };
|
||||
|
@ -266,7 +255,6 @@
|
|||
675341061C58C4C9002CF0D9 /* location_test.cpp */,
|
||||
675341071C58C4C9002CF0D9 /* measurement_tests.cpp */,
|
||||
675341081C58C4C9002CF0D9 /* platform_test.cpp */,
|
||||
675341091C58C4C9002CF0D9 /* video_timer_test.cpp */,
|
||||
);
|
||||
name = platform_tests;
|
||||
path = ../../platform/platform_tests;
|
||||
|
@ -344,7 +332,6 @@
|
|||
56EB1ED91C6B6E6C0022D831 /* file_logging.hpp */,
|
||||
56EB1EDA1C6B6E6C0022D831 /* mwm_traits.cpp */,
|
||||
56EB1EDB1C6B6E6C0022D831 /* mwm_traits.hpp */,
|
||||
670E8C901BB31A2F00094197 /* ios_video_timer.mm */,
|
||||
67AB92E81B7B3E9100AB5194 /* get_text_by_id.cpp */,
|
||||
67AB92E91B7B3E9100AB5194 /* get_text_by_id.hpp */,
|
||||
67AB92DA1B7B3D7300AB5194 /* mwm_version.cpp */,
|
||||
|
@ -360,7 +347,6 @@
|
|||
671C62041AE9014C00076BD0 /* measurement_utils.cpp */,
|
||||
671C62051AE9014C00076BD0 /* measurement_utils.hpp */,
|
||||
675343861A3F5D5900A0A8C3 /* apple_location_service.mm */,
|
||||
675343871A3F5D5900A0A8C3 /* apple_video_timer.mm */,
|
||||
675343881A3F5D5900A0A8C3 /* chunks_download_strategy.cpp */,
|
||||
675343891A3F5D5900A0A8C3 /* chunks_download_strategy.hpp */,
|
||||
6753438A1A3F5D5900A0A8C3 /* constants.hpp */,
|
||||
|
@ -383,13 +369,10 @@
|
|||
675343A21A3F5D5A00A0A8C3 /* platform.hpp */,
|
||||
675343A31A3F5D5A00A0A8C3 /* preferred_languages.cpp */,
|
||||
675343A41A3F5D5A00A0A8C3 /* preferred_languages.hpp */,
|
||||
675343A51A3F5D5A00A0A8C3 /* pthread_video_timer.cpp */,
|
||||
675343A61A3F5D5A00A0A8C3 /* servers_list.cpp */,
|
||||
675343A71A3F5D5A00A0A8C3 /* servers_list.hpp */,
|
||||
675343A81A3F5D5A00A0A8C3 /* settings.cpp */,
|
||||
675343A91A3F5D5A00A0A8C3 /* settings.hpp */,
|
||||
675343AC1A3F5D5A00A0A8C3 /* video_timer.cpp */,
|
||||
675343AD1A3F5D5A00A0A8C3 /* video_timer.hpp */,
|
||||
675343AE1A3F5D5A00A0A8C3 /* wifi_info_windows.cpp */,
|
||||
675343AF1A3F5D5A00A0A8C3 /* wifi_info.hpp */,
|
||||
675343B01A3F5D5A00A0A8C3 /* wifi_location_service.cpp */,
|
||||
|
@ -449,7 +432,6 @@
|
|||
67247FFE1C60BD6500EDE56A /* writable_dir_changer.hpp in Headers */,
|
||||
674125091B4C00CC00A3E828 /* country_defines.hpp in Headers */,
|
||||
675343CD1A3F5D5A00A0A8C3 /* platform.hpp in Headers */,
|
||||
675343D81A3F5D5A00A0A8C3 /* video_timer.hpp in Headers */,
|
||||
6741250F1B4C00CC00A3E828 /* local_country_file.hpp in Headers */,
|
||||
675E88A11DB7B0F200F8EBDA /* test_socket.hpp in Headers */,
|
||||
675343CF1A3F5D5A00A0A8C3 /* preferred_languages.hpp in Headers */,
|
||||
|
@ -610,12 +592,9 @@
|
|||
675343CC1A3F5D5A00A0A8C3 /* platform.cpp in Sources */,
|
||||
675343DB1A3F5D5A00A0A8C3 /* wifi_location_service.cpp in Sources */,
|
||||
56EB1EDC1C6B6E6C0022D831 /* file_logging.cpp in Sources */,
|
||||
675343D01A3F5D5A00A0A8C3 /* pthread_video_timer.cpp in Sources */,
|
||||
675343B11A3F5D5A00A0A8C3 /* apple_location_service.mm in Sources */,
|
||||
675343B31A3F5D5A00A0A8C3 /* chunks_download_strategy.cpp in Sources */,
|
||||
34513AFA1DCB37C100471BDA /* marketing_service_ios.mm in Sources */,
|
||||
670E8C911BB31A2F00094197 /* ios_video_timer.mm in Sources */,
|
||||
675343D71A3F5D5A00A0A8C3 /* video_timer.cpp in Sources */,
|
||||
675343C01A3F5D5A00A0A8C3 /* location_service.cpp in Sources */,
|
||||
675343D31A3F5D5A00A0A8C3 /* settings.cpp in Sources */,
|
||||
675343CE1A3F5D5A00A0A8C3 /* preferred_languages.cpp in Sources */,
|
||||
|
@ -629,7 +608,6 @@
|
|||
files = (
|
||||
6783389E1C6DE59200FD6263 /* platform_test.cpp in Sources */,
|
||||
678338961C6DE59200FD6263 /* apk_test.cpp in Sources */,
|
||||
6783389F1C6DE59200FD6263 /* video_timer_test.cpp in Sources */,
|
||||
678338991C6DE59200FD6263 /* jansson_test.cpp in Sources */,
|
||||
6783389C1C6DE59200FD6263 /* location_test.cpp in Sources */,
|
||||
678338981C6DE59200FD6263 /* get_text_by_id_tests.cpp in Sources */,
|
||||
|
|
Loading…
Add table
Reference in a new issue