.. _pepper_beta_cpp_index:
.. _cpp-api-beta:

.. DO NOT EDIT! This document is auto-generated by doxygen/rst_index.py.

############################################
Pepper C++ API Reference (Beta)
############################################

This page lists the C++ API for Pepper 49. Apps that use this API can
run in Chrome 49 or higher.

`Classes <pepper_beta/cpp/inherits.html>`__
==================================================
  * `Audio <pepper_beta/cpp/classpp_1_1_audio.html>`__

  * `AudioBuffer <pepper_beta/cpp/classpp_1_1_audio_buffer.html>`__

  * `AudioConfig <pepper_beta/cpp/classpp_1_1_audio_config.html>`__

  * `AudioEncoder <pepper_beta/cpp/classpp_1_1_audio_encoder.html>`__

  * `CompletionCallback <pepper_beta/cpp/classpp_1_1_completion_callback.html>`__

  * `CompletionCallbackFactory <pepper_beta/cpp/classpp_1_1_completion_callback_factory.html>`__

  * `CompletionCallbackWithOutput <pepper_beta/cpp/classpp_1_1_completion_callback_with_output.html>`__

  * `Compositor <pepper_beta/cpp/classpp_1_1_compositor.html>`__

  * `CompositorLayer <pepper_beta/cpp/classpp_1_1_compositor_layer.html>`__

  * `Core <pepper_beta/cpp/classpp_1_1_core.html>`__

  * `DirectoryEntry <pepper_beta/cpp/classpp_1_1_directory_entry.html>`__

  * `FileIO <pepper_beta/cpp/classpp_1_1_file_i_o.html>`__

  * `FileRef <pepper_beta/cpp/classpp_1_1_file_ref.html>`__

  * `FileSystem <pepper_beta/cpp/classpp_1_1_file_system.html>`__

  * `FloatPoint <pepper_beta/cpp/classpp_1_1_float_point.html>`__

  * `FloatRect <pepper_beta/cpp/classpp_1_1_float_rect.html>`__

  * `FloatSize <pepper_beta/cpp/classpp_1_1_float_size.html>`__

  * `Fullscreen <pepper_beta/cpp/classpp_1_1_fullscreen.html>`__

  * `Graphics2D <pepper_beta/cpp/classpp_1_1_graphics2_d.html>`__

  * `Graphics3D <pepper_beta/cpp/classpp_1_1_graphics3_d.html>`__

  * `Graphics3DClient <pepper_beta/cpp/classpp_1_1_graphics3_d_client.html>`__

  * `HostResolver <pepper_beta/cpp/classpp_1_1_host_resolver.html>`__

  * `IMEInputEvent <pepper_beta/cpp/classpp_1_1_i_m_e_input_event.html>`__

  * `ImageData <pepper_beta/cpp/classpp_1_1_image_data.html>`__

  * `InputEvent <pepper_beta/cpp/classpp_1_1_input_event.html>`__

  * `Instance <pepper_beta/cpp/classpp_1_1_instance.html>`__

  * `InstanceHandle <pepper_beta/cpp/classpp_1_1_instance_handle.html>`__

  * `KeyboardInputEvent <pepper_beta/cpp/classpp_1_1_keyboard_input_event.html>`__

  * `MediaStreamAudioTrack <pepper_beta/cpp/classpp_1_1_media_stream_audio_track.html>`__

  * `MediaStreamVideoTrack <pepper_beta/cpp/classpp_1_1_media_stream_video_track.html>`__

  * `MessageHandler <pepper_beta/cpp/classpp_1_1_message_handler.html>`__

  * `MessageLoop <pepper_beta/cpp/classpp_1_1_message_loop.html>`__

  * `Module <pepper_beta/cpp/classpp_1_1_module.html>`__

  * `MouseCursor <pepper_beta/cpp/classpp_1_1_mouse_cursor.html>`__

  * `MouseInputEvent <pepper_beta/cpp/classpp_1_1_mouse_input_event.html>`__

  * `MouseLock <pepper_beta/cpp/classpp_1_1_mouse_lock.html>`__

  * `NetAddress <pepper_beta/cpp/classpp_1_1_net_address.html>`__

  * `NetworkList <pepper_beta/cpp/classpp_1_1_network_list.html>`__

  * `NetworkMonitor <pepper_beta/cpp/classpp_1_1_network_monitor.html>`__

  * `NetworkProxy <pepper_beta/cpp/classpp_1_1_network_proxy.html>`__

  * `Point <pepper_beta/cpp/classpp_1_1_point.html>`__

  * `Rect <pepper_beta/cpp/classpp_1_1_rect.html>`__

  * `Resource <pepper_beta/cpp/classpp_1_1_resource.html>`__

  * `Size <pepper_beta/cpp/classpp_1_1_size.html>`__

  * `TCPSocket <pepper_beta/cpp/classpp_1_1_t_c_p_socket.html>`__

  * `TextInputController <pepper_beta/cpp/classpp_1_1_text_input_controller.html>`__

  * `TouchInputEvent <pepper_beta/cpp/classpp_1_1_touch_input_event.html>`__

  * `TouchPoint <pepper_beta/cpp/classpp_1_1_touch_point.html>`__

  * `UDPSocket <pepper_beta/cpp/classpp_1_1_u_d_p_socket.html>`__

  * `URLLoader <pepper_beta/cpp/classpp_1_1_u_r_l_loader.html>`__

  * `URLRequestInfo <pepper_beta/cpp/classpp_1_1_u_r_l_request_info.html>`__

  * `URLResponseInfo <pepper_beta/cpp/classpp_1_1_u_r_l_response_info.html>`__

  * `Var <pepper_beta/cpp/classpp_1_1_var.html>`__

  * `Var11OutException <pepper_beta/cpp/classpp_1_1_var_1_1_out_exception.html>`__

  * `VarArray <pepper_beta/cpp/classpp_1_1_var_array.html>`__

  * `VarArrayBuffer <pepper_beta/cpp/classpp_1_1_var_array_buffer.html>`__

  * `VarDictionary <pepper_beta/cpp/classpp_1_1_var_dictionary.html>`__

  * `VideoDecoder <pepper_beta/cpp/classpp_1_1_video_decoder.html>`__

  * `VideoEncoder <pepper_beta/cpp/classpp_1_1_video_encoder.html>`__

  * `VideoFrame <pepper_beta/cpp/classpp_1_1_video_frame.html>`__

  * `View <pepper_beta/cpp/classpp_1_1_view.html>`__

  * `WebSocket <pepper_beta/cpp/classpp_1_1_web_socket.html>`__

  * `WheelInputEvent <pepper_beta/cpp/classpp_1_1_wheel_input_event.html>`__

  * `Internal::DirectoryEntryArrayOutputAdapterWithStorage <pepper_beta/cpp/classpp_1_1internal_1_1_directory_entry_array_output_adapter_with_storage.html>`__


Files
=====
  * `audio.h <pepper_beta/cpp/audio_8h.html>`__

  * `audio_buffer.h <pepper_beta/cpp/audio__buffer_8h.html>`__

  * `audio_config.h <pepper_beta/cpp/audio__config_8h.html>`__

  * `audio_encoder.h <pepper_beta/cpp/audio__encoder_8h.html>`__

  * `completion_callback.h <pepper_beta/cpp/completion__callback_8h.html>`__

  * `completion_callback_factory.h <pepper_beta/cpp/completion__callback__factory_8h.html>`__

  * `compositor.h <pepper_beta/cpp/compositor_8h.html>`__

  * `compositor_layer.h <pepper_beta/cpp/compositor__layer_8h.html>`__

  * `core.h <pepper_beta/cpp/core_8h.html>`__

  * `directory_entry.h <pepper_beta/cpp/directory__entry_8h.html>`__

  * `file_io.h <pepper_beta/cpp/file__io_8h.html>`__

  * `file_ref.h <pepper_beta/cpp/file__ref_8h.html>`__

  * `file_system.h <pepper_beta/cpp/file__system_8h.html>`__

  * `fullscreen.h <pepper_beta/cpp/fullscreen_8h.html>`__

  * `graphics_2d.h <pepper_beta/cpp/graphics__2d_8h.html>`__

  * `graphics_3d.h <pepper_beta/cpp/graphics__3d_8h.html>`__

  * `graphics_3d_client.h <pepper_beta/cpp/graphics__3d__client_8h.html>`__

  * `host_resolver.h <pepper_beta/cpp/host__resolver_8h.html>`__

  * `image_data.h <pepper_beta/cpp/image__data_8h.html>`__

  * `input_event.h <pepper_beta/cpp/input__event_8h.html>`__

  * `instance.h <pepper_beta/cpp/instance_8h.html>`__

  * `instance_handle.h <pepper_beta/cpp/instance__handle_8h.html>`__

  * `logging.h <pepper_beta/cpp/logging_8h.html>`__

  * `media_stream_audio_track.h <pepper_beta/cpp/media__stream__audio__track_8h.html>`__

  * `media_stream_video_track.h <pepper_beta/cpp/media__stream__video__track_8h.html>`__

  * `message_handler.h <pepper_beta/cpp/message__handler_8h.html>`__

  * `message_loop.h <pepper_beta/cpp/message__loop_8h.html>`__

  * `module.h <pepper_beta/cpp/module_8h.html>`__

  * `module_embedder.h <pepper_beta/cpp/module__embedder_8h.html>`__

  * `module_impl.h <pepper_beta/cpp/module__impl_8h.html>`__

  * `mouse_cursor.h <pepper_beta/cpp/mouse__cursor_8h.html>`__

  * `mouse_lock.h <pepper_beta/cpp/mouse__lock_8h.html>`__

  * `net_address.h <pepper_beta/cpp/net__address_8h.html>`__

  * `network_list.h <pepper_beta/cpp/network__list_8h.html>`__

  * `network_monitor.h <pepper_beta/cpp/network__monitor_8h.html>`__

  * `network_proxy.h <pepper_beta/cpp/network__proxy_8h.html>`__

  * `pass_ref.h <pepper_beta/cpp/pass__ref_8h.html>`__

  * `point.h <pepper_beta/cpp/point_8h.html>`__

  * `rect.h <pepper_beta/cpp/rect_8h.html>`__

  * `resource.h <pepper_beta/cpp/resource_8h.html>`__

  * `size.h <pepper_beta/cpp/size_8h.html>`__

  * `tcp_socket.h <pepper_beta/cpp/tcp__socket_8h.html>`__

  * `text_input_controller.h <pepper_beta/cpp/text__input__controller_8h.html>`__

  * `touch_point.h <pepper_beta/cpp/touch__point_8h.html>`__

  * `udp_socket.h <pepper_beta/cpp/udp__socket_8h.html>`__

  * `url_loader.h <pepper_beta/cpp/url__loader_8h.html>`__

  * `url_request_info.h <pepper_beta/cpp/url__request__info_8h.html>`__

  * `url_response_info.h <pepper_beta/cpp/url__response__info_8h.html>`__

  * `var.h <pepper_beta/cpp/var_8h.html>`__

  * `var_array.h <pepper_beta/cpp/var__array_8h.html>`__

  * `var_array_buffer.h <pepper_beta/cpp/var__array__buffer_8h.html>`__

  * `var_dictionary.h <pepper_beta/cpp/var__dictionary_8h.html>`__

  * `video_decoder.h <pepper_beta/cpp/video__decoder_8h.html>`__

  * `video_encoder.h <pepper_beta/cpp/video__encoder_8h.html>`__

  * `video_frame.h <pepper_beta/cpp/video__frame_8h.html>`__

  * `view.h <pepper_beta/cpp/view_8h.html>`__

  * `websocket.h <pepper_beta/cpp/websocket_8h.html>`__

