1*c33452fbSAndroid Build Coastguard Worker#! /usr/bin/env python 2*c33452fbSAndroid Build Coastguard Worker# Copyright (c) 2015, Intel Corporation 3*c33452fbSAndroid Build Coastguard Worker# All rights reserved. 4*c33452fbSAndroid Build Coastguard Worker# 5*c33452fbSAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without modification, 6*c33452fbSAndroid Build Coastguard Worker# are permitted provided that the following conditions are met: 7*c33452fbSAndroid Build Coastguard Worker# 8*c33452fbSAndroid Build Coastguard Worker# 1. Redistributions of source code must retain the above copyright notice, this 9*c33452fbSAndroid Build Coastguard Worker# list of conditions and the following disclaimer. 10*c33452fbSAndroid Build Coastguard Worker# 11*c33452fbSAndroid Build Coastguard Worker# 2. Redistributions in binary form must reproduce the above copyright notice, 12*c33452fbSAndroid Build Coastguard Worker# this list of conditions and the following disclaimer in the documentation and/or 13*c33452fbSAndroid Build Coastguard Worker# other materials provided with the distribution. 14*c33452fbSAndroid Build Coastguard Worker# 15*c33452fbSAndroid Build Coastguard Worker# 3. Neither the name of the copyright holder nor the names of its contributors 16*c33452fbSAndroid Build Coastguard Worker# may be used to endorse or promote products derived from this software without 17*c33452fbSAndroid Build Coastguard Worker# specific prior written permission. 18*c33452fbSAndroid Build Coastguard Worker# 19*c33452fbSAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 20*c33452fbSAndroid Build Coastguard Worker# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 21*c33452fbSAndroid Build Coastguard Worker# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 22*c33452fbSAndroid Build Coastguard Worker# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 23*c33452fbSAndroid Build Coastguard Worker# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24*c33452fbSAndroid Build Coastguard Worker# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25*c33452fbSAndroid Build Coastguard Worker# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 26*c33452fbSAndroid Build Coastguard Worker# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27*c33452fbSAndroid Build Coastguard Worker# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28*c33452fbSAndroid Build Coastguard Worker# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29*c33452fbSAndroid Build Coastguard Worker 30*c33452fbSAndroid Build Coastguard Workerimport PyPfw 31*c33452fbSAndroid Build Coastguard Workerimport sys 32*c33452fbSAndroid Build Coastguard Workerimport logging 33*c33452fbSAndroid Build Coastguard Worker 34*c33452fbSAndroid Build Coastguard Workerclass MyLogger(PyPfw.ILogger): 35*c33452fbSAndroid Build Coastguard Worker def __init__(self): 36*c33452fbSAndroid Build Coastguard Worker # Calling the base constructor is necessary: if you don't, MyLogger 37*c33452fbSAndroid Build Coastguard Worker # won't be recognised as a derived class of PyPfw.ILogger 38*c33452fbSAndroid Build Coastguard Worker super(MyLogger, self).__init__() 39*c33452fbSAndroid Build Coastguard Worker 40*c33452fbSAndroid Build Coastguard Worker def info(self, msg): 41*c33452fbSAndroid Build Coastguard Worker logging.info(msg) 42*c33452fbSAndroid Build Coastguard Worker def warning(self, msg): 43*c33452fbSAndroid Build Coastguard Worker logging.warning(msg) 44*c33452fbSAndroid Build Coastguard Worker 45*c33452fbSAndroid Build Coastguard Worker 46*c33452fbSAndroid Build Coastguard Workerlogging.root.setLevel(logging.INFO) 47*c33452fbSAndroid Build Coastguard Worker 48*c33452fbSAndroid Build Coastguard Workerpfw = PyPfw.ParameterFramework(sys.argv[1]) 49*c33452fbSAndroid Build Coastguard Worker 50*c33452fbSAndroid Build Coastguard Worker# warning: don't pass MyLogger() directly as argument to setLogger() or it will 51*c33452fbSAndroid Build Coastguard Worker# be garbage collected 52*c33452fbSAndroid Build Coastguard Workermylogger = MyLogger() 53*c33452fbSAndroid Build Coastguard Workerpfw.setLogger(mylogger); 54*c33452fbSAndroid Build Coastguard Worker 55*c33452fbSAndroid Build Coastguard WorkermoodType = pfw.createSelectionCriterionType(False) 56*c33452fbSAndroid Build Coastguard Workerfor numerical, literal in enumerate(["mad", "sad", "glad"]): 57*c33452fbSAndroid Build Coastguard Worker moodType.addValuePair(numerical, literal) 58*c33452fbSAndroid Build Coastguard Worker 59*c33452fbSAndroid Build Coastguard Workermood = pfw.createSelectionCriterion("Mood", moodType) 60*c33452fbSAndroid Build Coastguard Worker 61*c33452fbSAndroid Build Coastguard Workerok, error = pfw.start() 62*c33452fbSAndroid Build Coastguard Workerif not ok: 63*c33452fbSAndroid Build Coastguard Worker print("Error while starting the pfw: '{}'".format(error)) 64*c33452fbSAndroid Build Coastguard Worker 65*c33452fbSAndroid Build Coastguard Workerraw_input("[Press enter to exit]") 66