15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* From ppb_console.idl modified Fri Nov 16 15:28:43 2012. */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PPAPI_C_PPB_CONSOLE_H_
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPAPI_C_PPB_CONSOLE_H_
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_var.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPB_CONSOLE_INTERFACE_1_0 "PPB_Console;1.0"
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPB_CONSOLE_INTERFACE PPB_CONSOLE_INTERFACE_1_0
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * This file defines the <code>PPB_Console</code> interface.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_LOGLEVEL_TIP = 0,
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_LOGLEVEL_LOG = 1,
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_LOGLEVEL_WARNING = 2,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PP_LOGLEVEL_ERROR = 3
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} PP_LogLevel;
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_LogLevel, 4);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PPB_Console_1_0 {
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Logs the given message to the JavaScript console associated with the
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * given plugin instance with the given logging level. The name of the plugin
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * issuing the log message will be automatically prepended to the message.
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The value may be any type of Var.
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void (*Log)(PP_Instance instance, PP_LogLevel level, struct PP_Var value);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /**
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * Logs a message to the console with the given source information rather
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * than using the internal PPAPI plugin name. The name must be a string var.
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   *
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * The regular log function will automatically prepend the name of your
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * plugin to the message as the "source" of the message. Some plugins may
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * wish to override this. For example, if your plugin is a Python
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * interpreter, you would want log messages to contain the source .py file
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   * doing the log statement rather than have "python" show up in the console.
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   */
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void (*LogWithSource)(PP_Instance instance,
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                        PP_LogLevel level,
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        struct PP_Var source,
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                        struct PP_Var value);
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct PPB_Console_1_0 PPB_Console;
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/**
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @}
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  /* PPAPI_C_PPB_CONSOLE_H_ */
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
76