input_entry Class Reference

#include <input.h>

Inheritance diagram for input_entry:

service_base input_entry_impl_t< I, t_flags > input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 > input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags > input_entry_impl_t< T, 0 > input_entry_impl_t< T, t_flags > service_impl_single_t< input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 > > service_impl_single_t< input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags > > service_impl_single_t< input_entry_impl_t< T, 0 > > service_impl_single_t< input_entry_impl_t< T, t_flags > >

List of all members.

Public Types

enum  { flag_redirect = 1, flag_parallel_reads_slow = 2 }
typedef input_entry t_interface_entrypoint
typedef input_entry t_interface
typedef service_base t_interface_parent

Public Member Functions

virtual bool is_our_content_type (const char *p_type)=0
virtual bool is_our_path (const char *p_full_path, const char *p_extension)=0
virtual void open_for_decoding (service_ptr_t< input_decoder > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort)=0
virtual void open_for_info_read (service_ptr_t< input_info_reader > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort)=0
virtual void open_for_info_write (service_ptr_t< input_info_writer > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort)=0
virtual void get_extended_data (service_ptr_t< file > p_filehint, const playable_location &p_location, const GUID &p_guid, mem_block_container &p_out, abort_callback &p_abort)=0
 Reserved for future use. Do nothing and return until specifications are finalized.
virtual unsigned get_flags ()=0
 See flag_* enums.
bool is_redirect ()
bool are_parallel_reads_slow ()
void open (service_ptr_t< input_decoder > &p_instance, service_ptr_t< file > const &p_filehint, const char *p_path, abort_callback &p_abort)
void open (service_ptr_t< input_info_reader > &p_instance, service_ptr_t< file > const &p_filehint, const char *p_path, abort_callback &p_abort)
void open (service_ptr_t< input_info_writer > &p_instance, service_ptr_t< file > const &p_filehint, const char *p_path, abort_callback &p_abort)

Static Public Member Functions

static bool g_find_service_by_path (service_ptr_t< input_entry > &p_out, const char *p_path)
static bool g_find_service_by_content_type (service_ptr_t< input_entry > &p_out, const char *p_content_type)
static void g_open_for_decoding (service_ptr_t< input_decoder > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort, bool p_from_redirect=false)
static void g_open_for_info_read (service_ptr_t< input_info_reader > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort, bool p_from_redirect=false)
static void g_open_for_info_write (service_ptr_t< input_info_writer > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort, bool p_from_redirect=false)
static void g_open_for_info_write_timeout (service_ptr_t< input_info_writer > &p_instance, service_ptr_t< file > p_filehint, const char *p_path, abort_callback &p_abort, double p_timeout, bool p_from_redirect=false)
static bool g_is_supported_path (const char *p_path)

Static Public Attributes

static const GUID class_guid


Member Typedef Documentation

Reimplemented from service_base.


Member Enumeration Documentation

anonymous enum

Enumerator:
flag_redirect  Indicates that this service implements some kind of redirector that opens another input for decoding, used to avoid circular call possibility.
flag_parallel_reads_slow  Indicates that multi-CPU optimizations should not be used.


Member Function Documentation

virtual bool input_entry::is_our_content_type ( const char *  p_type  )  [pure virtual]

virtual bool input_entry::is_our_path ( const char *  p_full_path,
const char *  p_extension 
) [pure virtual]

Determines whether specified file type can be handled by this input. This must not use any kind of file access; the result should be only based on file path / extension.

Parameters:
p_full_path Full URL of file being tested.
p_extension Extension of file being tested, provided by caller for performance reasons.

Implemented in input_entry_impl_t< I, t_flags >, input_entry_impl_t< cue_parser::input_wrapper_cue_t< t_input_impl >, 0 >, input_entry_impl_t< T, t_flags >, input_entry_impl_t< T, 0 >, input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags >, and input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 >.

virtual void input_entry::open_for_decoding ( service_ptr_t< input_decoder > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [pure virtual]

Opens specified resource for decoding.

Parameters:
p_instance Receives new input_decoder instance if successful.
p_filehint Optional; passes file object to use for the operation; if set to null, the service will handle opening file by itself. Note that not all inputs operate on physical files that can be reached through filesystem API, some of them require this parameter to be set to null (tone and silence generators for an example).
p_path URL of resource being opened.
p_abort abort_callback object signaling user aborting the operation.

Implemented in input_entry_impl_t< I, t_flags >, input_entry_impl_t< cue_parser::input_wrapper_cue_t< t_input_impl >, 0 >, input_entry_impl_t< T, t_flags >, input_entry_impl_t< T, 0 >, input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags >, and input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 >.

virtual void input_entry::open_for_info_read ( service_ptr_t< input_info_reader > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [pure virtual]

Opens specified file for reading info.

Parameters:
p_instance Receives new input_info_reader instance if successful.
p_filehint Optional; passes file object to use for the operation; if set to null, the service will handle opening file by itself. Note that not all inputs operate on physical files that can be reached through filesystem API, some of them require this parameter to be set to null (tone and silence generators for an example).
p_path URL of resource being opened.
p_abort abort_callback object signaling user aborting the operation.

Implemented in input_entry_impl_t< I, t_flags >, input_entry_impl_t< cue_parser::input_wrapper_cue_t< t_input_impl >, 0 >, input_entry_impl_t< T, t_flags >, input_entry_impl_t< T, 0 >, input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags >, and input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 >.

virtual void input_entry::open_for_info_write ( service_ptr_t< input_info_writer > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [pure virtual]

Opens specified file for writing info.

Parameters:
p_instance Receives new input_info_writer instance if successful.
p_filehint Optional; passes file object to use for the operation; if set to null, the service will handle opening file by itself. Note that not all inputs operate on physical files that can be reached through filesystem API, some of them require this parameter to be set to null (tone and silence generators for an example).
p_path URL of resource being opened.
p_abort abort_callback object signaling user aborting the operation.

Implemented in input_entry_impl_t< I, t_flags >, input_entry_impl_t< cue_parser::input_wrapper_cue_t< t_input_impl >, 0 >, input_entry_impl_t< T, t_flags >, input_entry_impl_t< T, 0 >, input_entry_impl_t< input_wrapper_singletrack_t< T >, t_flags >, and input_entry_impl_t< input_wrapper_singletrack_t< T >, 0 >.

virtual void input_entry::get_extended_data ( service_ptr_t< file >  p_filehint,
const playable_location p_location,
const GUID &  p_guid,
mem_block_container p_out,
abort_callback &  p_abort 
) [pure virtual]

virtual unsigned input_entry::get_flags (  )  [pure virtual]

bool input_entry::is_redirect (  )  [inline]

bool input_entry::are_parallel_reads_slow (  )  [inline]

static bool input_entry::g_find_service_by_path ( service_ptr_t< input_entry > &  p_out,
const char *  p_path 
) [static]

static bool input_entry::g_find_service_by_content_type ( service_ptr_t< input_entry > &  p_out,
const char *  p_content_type 
) [static]

static void input_entry::g_open_for_decoding ( service_ptr_t< input_decoder > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort,
bool  p_from_redirect = false 
) [static]

static void input_entry::g_open_for_info_read ( service_ptr_t< input_info_reader > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort,
bool  p_from_redirect = false 
) [static]

static void input_entry::g_open_for_info_write ( service_ptr_t< input_info_writer > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort,
bool  p_from_redirect = false 
) [static]

static void input_entry::g_open_for_info_write_timeout ( service_ptr_t< input_info_writer > &  p_instance,
service_ptr_t< file >  p_filehint,
const char *  p_path,
abort_callback &  p_abort,
double  p_timeout,
bool  p_from_redirect = false 
) [static]

static bool input_entry::g_is_supported_path ( const char *  p_path  )  [static]

void input_entry::open ( service_ptr_t< input_decoder > &  p_instance,
service_ptr_t< file > const &  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [inline]

void input_entry::open ( service_ptr_t< input_info_reader > &  p_instance,
service_ptr_t< file > const &  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [inline]

void input_entry::open ( service_ptr_t< input_info_writer > &  p_instance,
service_ptr_t< file > const &  p_filehint,
const char *  p_path,
abort_callback &  p_abort 
) [inline]


Member Data Documentation

const GUID input_entry::class_guid [static]

Initial value:

 
{ 0x436547fc, 0xc4ef, 0x4322, { 0xb5, 0x9e, 0xe6, 0x96, 0xa2, 0x5f, 0xab, 0x2c } }


The documentation for this class was generated from the following files:

Generated on Fri Apr 18 13:56:51 2008 for foobar2000 SDK by  doxygen 1.5.5