18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
25f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian * Copyright (C) 2009 Apple Inc. All Rights Reserved.
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met:
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer.
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    notice, this list of conditions and the following disclaimer in the
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *    documentation and/or other materials provided with the distribution.
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h"
275f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#include "JSCoordinates.h"
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
295f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian#include "Coordinates.h"
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
315f1ab04193ad0130ca8204aadaceae083aca9881Feng Qianusing namespace JSC;
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
335f1ab04193ad0130ca8204aadaceae083aca9881Feng Qiannamespace WebCore {
345f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian
35e14391e94c850b8bd03680c23b38978db68687a8John ReckJSValue JSCoordinates::altitude(ExecState*) const
36635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
375f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    Coordinates* imp = impl();
385f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    if (!imp->canProvideAltitude())
395f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        return jsNull();
40e14391e94c850b8bd03680c23b38978db68687a8John Reck    return jsNumber(imp->altitude());
41635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
42635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
43e14391e94c850b8bd03680c23b38978db68687a8John ReckJSValue JSCoordinates::altitudeAccuracy(ExecState*) const
44635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
455f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    Coordinates* imp = impl();
465f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    if (!imp->canProvideAltitudeAccuracy())
475f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        return jsNull();
48e14391e94c850b8bd03680c23b38978db68687a8John Reck    return jsNumber(imp->altitudeAccuracy());
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}
50635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
51e14391e94c850b8bd03680c23b38978db68687a8John ReckJSValue JSCoordinates::heading(ExecState*) const
52635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
535f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    Coordinates* imp = impl();
545f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    if (!imp->canProvideHeading())
555f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        return jsNull();
56e14391e94c850b8bd03680c23b38978db68687a8John Reck    return jsNumber(imp->heading());
57635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
58635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
59e14391e94c850b8bd03680c23b38978db68687a8John ReckJSValue JSCoordinates::speed(ExecState*) const
60635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project{
615f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    Coordinates* imp = impl();
625f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian    if (!imp->canProvideSpeed())
635f1ab04193ad0130ca8204aadaceae083aca9881Feng Qian        return jsNull();
64e14391e94c850b8bd03680c23b38978db68687a8John Reck    return jsNumber(imp->speed());
65635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project}
66635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project
67635860845790a19bf50bbc51ba8fb66a96dde068The Android Open Source Project} // namespace WebCore
68