-#define FILE_LONGTEXT N_("File to which the audio samples will be written to.")
-
-vlc_module_begin();
- set_description( _("File audio output") );
- set_shortname( _("File") );
- set_category( CAT_AUDIO );
- set_subcategory( SUBCAT_AUDIO_AOUT );
-
- add_string( "audiofile-format", "s16", NULL,
- FORMAT_TEXT, FORMAT_LONGTEXT, VLC_TRUE );
- change_string_list( format_list, 0, 0 );
- add_integer( "audiofile-channels", 0, NULL,
- CHANNELS_TEXT, CHANNELS_LONGTEXT, VLC_TRUE );
- add_file( "audiofile-file", "audiofile.wav", NULL, FILE_TEXT,
- FILE_LONGTEXT, VLC_FALSE );
- add_bool( "audiofile-wav", 1, NULL, WAV_TEXT, WAV_LONGTEXT, VLC_TRUE );
-
- set_capability( "audio output", 0 );
- add_shortcut( "file" );
- add_shortcut( "audiofile" );
- set_callbacks( Open, Close );
-vlc_module_end();
-
-/*****************************************************************************
- * Open: open a dummy audio device
- *****************************************************************************/
-static int Open( vlc_object_t * p_this )
+#define FILE_LONGTEXT N_("File to which the audio samples will be written to. (\"-\" for stdout")
+
+vlc_module_begin ()
+ set_description( N_("File audio output") )
+ set_shortname( N_("File") )
+ set_category( CAT_AUDIO )
+ set_subcategory( SUBCAT_AUDIO_AOUT )
+
+ add_savefile( "audiofile-file", "audiofile.wav", FILE_TEXT,
+ FILE_LONGTEXT, false )
+ add_string( "audiofile-format", "s16",
+ FORMAT_TEXT, FORMAT_TEXT, true )
+ change_string_list( format_list, format_list )
+ add_integer( "audiofile-channels", 0,
+ CHANNELS_TEXT, CHANNELS_LONGTEXT, true )
+ change_integer_range( 0, 6 )
+ add_bool( "audiofile-wav", true, WAV_TEXT, WAV_LONGTEXT, true )
+
+ set_capability( "audio output", 0 )
+ add_shortcut( "file", "audiofile" )
+ set_callbacks( Open, NULL )
+vlc_module_end ()
+
+static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )