/**
 * @license
 * Visual Blocks Language
 *
 * Copyright 2012 Google Inc.
 * https://developers.google.com/blockly/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * @fileoverview Generating Python for colour blocks.
 * @author fraser@google.com (Neil Fraser)
 */
'use strict';

goog.provide('Blockly.Python.AIYBoard');

goog.require('Blockly.Python');


Blockly.Python['AIYBoard_from'] = function(block) {
  var input = Blockly.Python.valueToCode(block,"INPUT",Blockly.Python.ORDER_NONE) || '__'
  var code = 'from aiy.board '+ input+'\n';
  return code
};


Blockly.Python['AIYBoard_import'] = function(block) {
  var board = block.getFieldValue("BOARD")
  var code = "import "+ board
  return [code,Blockly.Python.ORDER_ATOMIC]
};

Blockly.Python['AIYBoard_Board'] = function(block) {
  var code = "Board()"
  return [code,Blockly.Python.ORDER_ATOMIC]; 
}

Blockly.Python['AIYBoard_LED_state'] = function(block) {
  var input = Blockly.Python.valueToCode(block,"INPUT",Blockly.Python.ORDER_ATOMIC) || '__'
  var code = input+ ".led.state";
  return [code,Blockly.Python.ORDER_ATOMIC];
}

Blockly.Python['AIYBoard_LED_status'] = function(block) {
  var input = Blockly.Python.valueToCode(block,"INPUT",Blockly.Python.ORDER_ATOMIC) || '__'
  var code = input+ ".led.status";
  return [code,Blockly.Python.ORDER_ATOMIC];
}

Blockly.Python['AIYBoard_LED_setting'] = function(block) {
  var setting = block.getFieldValue("SETTING")
  var code = "Led."+ setting;
return [code,Blockly.Python.ORDER_ATOMIC];
}

Blockly.Python['AIYBoard_board'] = function(block) {
  var code = "board";
  return [code, Blockly.Python.ORDER_ATOMIC]
}

Blockly.Python['AIYBoard_button'] = function(block) {
  var code = "button";
  return [code, Blockly.Python.ORDER_ATOMIC]
}

Blockly.Python['AIYBoard_button_press'] = function(block) {
  var input_a = Blockly.Python.statementToCode(block,"STACK");
  var code = "def _on_button_pressed(self):\n"+
      input_a;
  return code;
}

Blockly.Python['AIYBoard_board_led_status'] = function(block) {
  var input_a = Blockly.Python.valueToCode(block,"INPUT",Blockly.Python.ORDER_ATOMIC);
  var code =  "self._board.led.status = "+ input_a +"\n";
  return code;
}

Blockly.Python['AIYBoard_board_led_state'] = function(block) {
  var input_a = Blockly.Python.valueToCode(block,"INPUT",Blockly.Python.ORDER_ATOMIC);
  var code =  "self._board.led.state = "+ input_a +"\n";
  return code;
}