1#! /usr/bin/env python
2# Copyright (c) 2015, Intel Corporation
3# All rights reserved.
4#
5# Redistribution and use in source and binary forms, with or without modification,
6# are permitted provided that the following conditions are met:
7#
8# 1. Redistributions of source code must retain the above copyright notice, this
9# list of conditions and the following disclaimer.
10#
11# 2. Redistributions in binary form must reproduce the above copyright notice,
12# this list of conditions and the following disclaimer in the documentation and/or
13# other materials provided with the distribution.
14#
15# 3. Neither the name of the copyright holder nor the names of its contributors
16# may be used to endorse or promote products derived from this software without
17# 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 HOLDER 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 ON
26# 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
30import PyPfw
31import sys
32import logging
33
34class MyLogger(PyPfw.ILogger):
35    def __init__(self):
36        # Calling the base constructor is necessary: if you don't, MyLogger
37        # won't be recognised as a derived class of PyPfw.ILogger
38        super(MyLogger, self).__init__()
39
40    def info(self, msg):
41        logging.info(msg)
42    def warning(self, msg):
43        logging.warning(msg)
44
45
46logging.root.setLevel(logging.INFO)
47
48pfw = PyPfw.ParameterFramework(sys.argv[1])
49
50# warning: don't pass MyLogger() directly as argument to setLogger() or it will
51# be garbage collected
52mylogger = MyLogger()
53pfw.setLogger(mylogger);
54
55moodType = pfw.createSelectionCriterionType(False)
56for numerical, literal in enumerate(["mad", "sad", "glad"]):
57    moodType.addValuePair(numerical, literal)
58
59mood = pfw.createSelectionCriterion("Mood", moodType)
60
61ok, error = pfw.start()
62if not ok:
63    print("Error while starting the pfw: '{}'".format(error))
64
65raw_input("[Press enter to exit]")
66