Remove video timer

This commit is contained in:
Sergey Yershov 2016-11-16 16:05:37 +03:00
parent e8ebcca6b5
commit 19600faf61
7 changed files with 0 additions and 523 deletions

View file

@ -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);
}

View file

@ -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);
}

View file

@ -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

View file

@ -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

View file

@ -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()
{
}

View file

@ -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);

View file

@ -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 */,