Advertisement
artemmarchenko

FlashTesting for Jolla

Nov 13th, 2013
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.   Copyright (C) 2013 Jolla Ltd.
  3.   Contact: Thomas Perl <thomas.perl@jollamobile.com>
  4.   All rights reserved.
  5.  
  6.   You may use this file under the terms of BSD license as follows:
  7.  
  8.   Redistribution and use in source and binary forms, with or without
  9.   modification, are permitted provided that the following conditions are met:
  10.     * Redistributions of source code must retain the above copyright
  11.       notice, this list of conditions and the following disclaimer.
  12.     * Redistributions in binary form must reproduce the above copyright
  13.       notice, this list of conditions and the following disclaimer in the
  14.       documentation and/or other materials provided with the distribution.
  15.     * Neither the name of the Jolla Ltd nor the
  16.       names of its contributors may be used to endorse or promote products
  17.       derived from this software without specific prior written permission.
  18.  
  19.   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  20.   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  21.   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  22.   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
  23.   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  24.   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  25.   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  26.   ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  27.   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  28.   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  29. */
  30.  
  31. import QtQuick 2.0
  32. import Sailfish.Silica 1.0
  33. import QtMultimedia 5.0
  34.  
  35. Page {
  36.     id: page
  37.  
  38.     // To enable PullDownMenu, place our content in a SilicaFlickable
  39.     SilicaFlickable {
  40.         anchors.fill: parent
  41.  
  42.         // PullDownMenu and PushUpMenu must be declared in SilicaFlickable, SilicaListView or SilicaGridView
  43.         PullDownMenu {
  44.             MenuItem {
  45.                 text: "Show Page 2"
  46.                 onClicked: pageStack.push(Qt.resolvedUrl("SecondPage.qml"))
  47.             }
  48.         }
  49.  
  50.         Camera {
  51.             id: camera
  52.  
  53.             flash.mode: Camera.FlashOff
  54.             flash.onReadyChanged: {
  55.                 log("cam ready changed to " + flash.ready)
  56.             }
  57.  
  58.             flash.onModeChanged: {
  59.                 log("cam mode changed to " + flash.mode)
  60.             }
  61.         }
  62.  
  63.         Torch {
  64.             id: realTorch
  65.             enabled: false // app starting state
  66.             power: powerSlider.value
  67.             onEnabledChanged: {
  68.                 log("rT enabled changed to " + enabled)
  69.             }
  70.             onPowerChanged: {
  71.                 log("rT power changed to " + power)
  72.             }
  73.         }
  74.  
  75.         // Tell SilicaFlickable the height of its content.
  76.         contentHeight: column.height
  77.  
  78.         // Place our content in a Column.  The PageHeader is always placed at the top
  79.         // of the page, followed by our content.
  80.         Column {
  81.             id: column
  82.  
  83.             width: page.width
  84.             spacing: Theme.paddingLarge
  85.             PageHeader {
  86.                 title: "Test flashlight control APIs"
  87.             }
  88.             TextArea {
  89.                 id: logArea
  90.                 height: 200
  91.                 width: parent.width
  92.             }
  93.             Button {
  94.                 text: "On via Torch!"
  95.                 onClicked: {
  96.                     realTorch.enabled = true
  97.                 }
  98.             }
  99.             Button {
  100.                 text: "Off via Torch!"
  101.                 onClicked: {
  102.                     realTorch.enabled = false
  103.                 }
  104.             }
  105.  
  106.             Button {
  107.                 text: "On via Camera!"
  108.                 onClicked: {
  109.                     camera.flash.mode = Camera.FlashTorch
  110.                 }
  111.             }
  112.             Button {
  113.                 text: "Off via Camera!"
  114.                 onClicked: {
  115.                     camera.flash.mode = Camera.FlashOff
  116.                 }
  117.             }
  118.             Slider {
  119.                 id: powerSlider
  120.                 minimumValue: 0
  121.                 maximumValue: 100
  122.                 value: 50
  123.                 height: 150
  124.                 width: 300
  125.             }
  126.  
  127.         }
  128.     }
  129.  
  130.     Component.onCompleted: {
  131.         log("cam mode is " + camera.flash.mode)
  132.     }
  133.  
  134.     function log(msg) {
  135.         console.log(msg)
  136.         logArea.text = msg + "\n" + logArea.text
  137.     }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement