# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# These are just headers.
source_set("c") {
  sources = [
    "pp_array_output.h",
    "pp_bool.h",
    "pp_codecs.h",
    "pp_completion_callback.h",
    "pp_directory_entry.h",
    "pp_errors.h",
    "pp_file_info.h",
    "pp_graphics_3d.h",
    "pp_input_event.h",
    "pp_instance.h",
    "pp_macros.h",
    "pp_module.h",
    "pp_point.h",
    "pp_rect.h",
    "pp_resource.h",
    "pp_size.h",
    "pp_stdint.h",
    "pp_time.h",
    "pp_touch_point.h",
    "pp_var.h",
    "ppb.h",
    "ppb_audio.h",
    "ppb_audio_buffer.h",
    "ppb_audio_config.h",
    "ppb_audio_encoder.h",
    "ppb_console.h",
    "ppb_core.h",
    "ppb_file_io.h",
    "ppb_file_ref.h",
    "ppb_file_system.h",
    "ppb_fullscreen.h",
    "ppb_gamepad.h",
    "ppb_graphics_2d.h",
    "ppb_graphics_3d.h",
    "ppb_host_resolver.h",
    "ppb_image_data.h",
    "ppb_input_event.h",
    "ppb_instance.h",
    "ppb_media_stream_audio_track.h",
    "ppb_media_stream_video_track.h",
    "ppb_message_loop.h",
    "ppb_messaging.h",
    "ppb_mouse_cursor.h",
    "ppb_mouse_lock.h",
    "ppb_net_address.h",
    "ppb_network_list.h",
    "ppb_network_monitor.h",
    "ppb_network_proxy.h",
    "ppb_opengles2.h",
    "ppb_tcp_socket.h",
    "ppb_text_input_controller.h",
    "ppb_udp_socket.h",
    "ppb_url_loader.h",
    "ppb_url_request_info.h",
    "ppb_url_response_info.h",
    "ppb_var.h",
    "ppb_var_array.h",
    "ppb_var_array_buffer.h",
    "ppb_var_dictionary.h",
    "ppb_video_decoder.h",
    "ppb_video_encoder.h",
    "ppb_video_frame.h",
    "ppb_view.h",
    "ppb_vpn_provider.h",
    "ppb_websocket.h",
    "ppp.h",
    "ppp_graphics_3d.h",
    "ppp_input_event.h",
    "ppp_instance.h",
    "ppp_message_handler.h",
    "ppp_messaging.h",
    "ppp_mouse_lock.h",

    # Dev interfaces.
    "dev/pp_cursor_type_dev.h",
    "dev/pp_print_settings_dev.h",
    "dev/pp_video_capture_dev.h",
    "dev/pp_video_dev.h",
    "dev/ppb_audio_input_dev.h",
    "dev/ppb_audio_output_dev.h",
    "dev/ppb_buffer_dev.h",
    "dev/ppb_char_set_dev.h",
    "dev/ppb_crypto_dev.h",
    "dev/ppb_cursor_control_dev.h",
    "dev/ppb_device_ref_dev.h",
    "dev/ppb_file_chooser_dev.h",
    "dev/ppb_gles_chromium_texture_mapping_dev.h",
    "dev/ppb_ime_input_event_dev.h",
    "dev/ppb_memory_dev.h",
    "dev/ppb_opengles2ext_dev.h",
    "dev/ppb_printing_dev.h",
    "dev/ppb_text_input_dev.h",
    "dev/ppb_trace_event_dev.h",
    "dev/ppb_truetype_font_dev.h",
    "dev/ppb_url_util_dev.h",
    "dev/ppb_video_capture_dev.h",
    "dev/ppb_video_decoder_dev.h",
    "dev/ppb_view_dev.h",
    "dev/ppp_network_state_dev.h",
    "dev/ppp_printing_dev.h",
    "dev/ppp_text_input_dev.h",
    "dev/ppp_video_capture_dev.h",
    "dev/ppp_video_decoder_dev.h",

    # Private interfaces.
    "private/pp_file_handle.h",
    "private/pp_private_font_charset.h",
    "private/pp_video_capture_format.h",
    "private/pp_video_frame_private.h",
    "private/ppb_camera_capabilities_private.h",
    "private/ppb_camera_device_private.h",
    "private/ppb_display_color_profile_private.h",
    "private/ppb_ext_crx_file_system_private.h",
    "private/ppb_file_io_private.h",
    "private/ppb_file_ref_private.h",
    "private/ppb_find_private.h",
    "private/ppb_flash.h",
    "private/ppb_flash_clipboard.h",
    "private/ppb_flash_drm.h",
    "private/ppb_flash_file.h",
    "private/ppb_flash_font_file.h",
    "private/ppb_flash_fullscreen.h",
    "private/ppb_flash_menu.h",
    "private/ppb_flash_message_loop.h",
    "private/ppb_flash_print.h",
    "private/ppb_host_resolver_private.h",
    "private/ppb_instance_private.h",
    "private/ppb_isolated_file_system_private.h",
    "private/ppb_net_address_private.h",
    "private/ppb_pdf.h",
    "private/ppb_proxy_private.h",
    "private/ppb_tcp_server_socket_private.h",
    "private/ppb_tcp_socket_private.h",
    "private/ppb_testing_private.h",
    "private/ppb_udp_socket_private.h",
    "private/ppb_uma_private.h",
    "private/ppb_x509_certificate_private.h",
    "private/ppp_find_private.h",
    "private/ppp_flash_browser_operations.h",
    "private/ppp_instance_private.h",
    "private/ppp_pdf.h",
    "private/ppp_pexe_stream_handler.h",

    # Deprecated interfaces.
    "dev/deprecated_bool.h",
    "dev/ppb_var_deprecated.h",
    "dev/ppp_class_deprecated.h",

    # Trusted interfaces.
    "trusted/ppb_broker_trusted.h",
    "trusted/ppb_browser_font_trusted.h",
    "trusted/ppb_char_set_trusted.h",
    "trusted/ppb_file_chooser_trusted.h",
    "trusted/ppb_url_loader_trusted.h",
    "trusted/ppp_broker.h",
  ]
}
