static void brasero_normalize_export_caps (BraseroPlugin *plugin) { GSList *input; brasero_plugin_define (plugin, "normalize", N_("Normalization"), _("Sets consistent sound levels between tracks"), "Philippe Rouquier", 0); /* Add dts to make sure that when they are mixed with regular songs * this plugin will be called for the regular tracks */ input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED| BRASERO_AUDIO_FORMAT_DTS| BRASERO_METADATA_INFO); brasero_plugin_process_caps (plugin, input); g_slist_free (input); /* Add dts to make sure that when they are mixed with regular songs * this plugin will be called for the regular tracks */ input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED| BRASERO_AUDIO_FORMAT_DTS); brasero_plugin_process_caps (plugin, input); g_slist_free (input); /* We should run first */ brasero_plugin_set_process_flags (plugin, BRASERO_PLUGIN_RUN_PREPROCESSING); brasero_plugin_set_compulsory (plugin, FALSE); }
static void brasero_normalize_export_caps (BraseroPlugin *plugin) { GSList *input; brasero_plugin_define (plugin, "normalize", N_("Normalization"), _("Sets consistent sound levels between tracks"), "Philippe Rouquier", 0); /* Add dts to make sure that when they are mixed with regular songs * this plugin will be called for the regular tracks */ input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED| BRASERO_AUDIO_FORMAT_DTS| BRASERO_METADATA_INFO); brasero_plugin_process_caps (plugin, input); g_slist_free (input); /* Add dts to make sure that when they are mixed with regular songs * this plugin will be called for the regular tracks */ input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED| BRASERO_AUDIO_FORMAT_DTS); brasero_plugin_process_caps (plugin, input); g_slist_free (input); /* We should run first... unfortunately since the gstreamer-1 port * we're unable to process more than a single track with rganalysis * and the GStreamer pipeline becomes stopped indefinitely. * Disable normalisation until this is resolved. * See https://bugzilla.gnome.org/show_bug.cgi?id=699599 */ brasero_plugin_set_process_flags (plugin, BRASERO_PLUGIN_RUN_NEVER); brasero_plugin_set_compulsory (plugin, FALSE); }
static void brasero_transcode_export_caps (BraseroPlugin *plugin) { GSList *input; GSList *output; brasero_plugin_define (plugin, "transcode", NULL, _("Converts any song file into a format suitable for audio CDs"), "Philippe Rouquier", 1); output = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE| BRASERO_PLUGIN_IO_ACCEPT_PIPE, BRASERO_AUDIO_FORMAT_RAW| BRASERO_AUDIO_FORMAT_RAW_LITTLE_ENDIAN| BRASERO_METADATA_INFO); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED| BRASERO_METADATA_INFO); brasero_plugin_link_caps (plugin, output, input); g_slist_free (input); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_DTS| BRASERO_METADATA_INFO); brasero_plugin_link_caps (plugin, output, input); g_slist_free (output); g_slist_free (input); output = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE| BRASERO_PLUGIN_IO_ACCEPT_PIPE, BRASERO_AUDIO_FORMAT_RAW| BRASERO_AUDIO_FORMAT_RAW_LITTLE_ENDIAN); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_UNDEFINED); brasero_plugin_link_caps (plugin, output, input); g_slist_free (input); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_DTS); brasero_plugin_link_caps (plugin, output, input); g_slist_free (output); g_slist_free (input); }
static void brasero_cdrecord_export_caps (BraseroPlugin *plugin) { BraseroPluginConfOption *immed, *minbuf; const BraseroMedia media = BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_AUDIO| BRASERO_MEDIUM_HAS_DATA; const BraseroMedia dvd_media = BRASERO_MEDIUM_DVD| BRASERO_MEDIUM_PLUS| BRASERO_MEDIUM_SEQUENTIAL| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK| BRASERO_MEDIUM_UNFORMATTED| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_DATA; const BraseroMedia media_rw = BRASERO_MEDIUM_CD| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_CLOSED| BRASERO_MEDIUM_HAS_AUDIO| BRASERO_MEDIUM_HAS_DATA| BRASERO_MEDIUM_BLANK; GSList *output; GSList *input; /* NOTE: it seems that cdrecord can burn cue files on the fly */ brasero_plugin_define (plugin, "cdrecord", NULL, _("Burns, blanks and formats CDs, DVDs and BDs"), "Philippe Rouquier", 1); /* for recording */ input = brasero_caps_image_new (BRASERO_PLUGIN_IO_ACCEPT_PIPE| BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_IMAGE_FORMAT_BIN); /* cdrecord can burn all DVDs (except restricted) when it's ISOs */ output = brasero_caps_disc_new (dvd_media); brasero_plugin_link_caps (plugin, output, input); g_slist_free (output); /* All CD-R(W) */ output = brasero_caps_disc_new (media); brasero_plugin_link_caps (plugin, output, input); g_slist_free (input); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_PIPE| BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_RAW| BRASERO_METADATA_INFO); brasero_plugin_link_caps (plugin, output, input); g_slist_free (input); input = brasero_caps_audio_new (BRASERO_PLUGIN_IO_ACCEPT_PIPE| BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_AUDIO_FORMAT_RAW); brasero_plugin_link_caps (plugin, output, input); g_slist_free (output); g_slist_free (input); /* for CLONE and CUE type images, we only want blank CD-R(W) */ output = brasero_caps_disc_new (BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK); input = brasero_caps_image_new (BRASERO_PLUGIN_IO_ACCEPT_FILE, BRASERO_IMAGE_FORMAT_CUE| BRASERO_IMAGE_FORMAT_CLONE); brasero_plugin_link_caps (plugin, output, input); g_slist_free (output); g_slist_free (input); /* Blank CD(R)W : don't use standard flags cdrecord fails consistently * to write a first track of a multisession disc with DAO mode. */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_DAO| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_OVERBURN| BRASERO_BURN_FLAG_DUMMY| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_MULTI| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_OVERBURN| BRASERO_BURN_FLAG_DUMMY| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* Apart from DAO it also supports RAW mode to burn CLONE images. This * is a special mode for which there isn't any DUMMY burn possible */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_RAW| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_OVERBURN| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* This is a CDR with data; data can be merged or at least appended */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_CD| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_AUDIO| BRASERO_MEDIUM_HAS_DATA, BRASERO_BURN_FLAG_APPEND| BRASERO_BURN_FLAG_MERGE| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_OVERBURN| BRASERO_BURN_FLAG_MULTI| BRASERO_BURN_FLAG_DUMMY| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_APPEND); /* It is a CDRW we want the CD to be either blanked before or appended * that's why we set MERGE as compulsory. That way if the CD is not * MERGED we force the blank before writing to avoid appending sessions * endlessly until there is no free space. */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_CD| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_AUDIO| BRASERO_MEDIUM_HAS_DATA, BRASERO_BURN_FLAG_APPEND| BRASERO_BURN_FLAG_MERGE| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_OVERBURN| BRASERO_BURN_FLAG_MULTI| BRASERO_BURN_FLAG_DUMMY| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_MERGE); /* DVD-RW cdrecord capabilites are limited to blank media. * It should not start a multisession disc. */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_DVD| BRASERO_MEDIUM_SEQUENTIAL| BRASERO_MEDIUM_WRITABLE| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_DAO| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_DUMMY| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* DVD+W cdrecord capabilities are limited to blank media */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_DVDR_PLUS| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_DAO| BRASERO_BURN_FLAG_BURNPROOF| BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* for DVD+RW cdrecord capabilities are limited no MERGE */ brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_DVDRW_PLUS| BRASERO_MEDIUM_UNFORMATTED| BRASERO_MEDIUM_BLANK, BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); brasero_plugin_set_flags (plugin, BRASERO_MEDIUM_DVDRW_PLUS| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_CLOSED| BRASERO_MEDIUM_HAS_DATA, BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* blanking/formatting caps and flags for +/sequential RW * NOTE: restricted overwrite DVD-RW can't be formatted. * moreover DVD+RW are formatted while DVD-RW sequential are blanked. */ output = brasero_caps_disc_new (BRASERO_MEDIUM_DVD| BRASERO_MEDIUM_PLUS| BRASERO_MEDIUM_REWRITABLE| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_SEQUENTIAL| BRASERO_MEDIUM_CLOSED| BRASERO_MEDIUM_HAS_DATA| BRASERO_MEDIUM_UNFORMATTED| BRASERO_MEDIUM_BLANK); brasero_plugin_blank_caps (plugin, output); g_slist_free (output); brasero_plugin_set_blank_flags (plugin, BRASERO_MEDIUM_DVDRW | BRASERO_MEDIUM_BLANK| BRASERO_MEDIUM_CLOSED | BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_DATA| BRASERO_MEDIUM_UNFORMATTED, BRASERO_BURN_FLAG_NOGRACE| BRASERO_BURN_FLAG_FAST_BLANK, BRASERO_BURN_FLAG_NONE); /* again DVD+RW don't support dummy */ brasero_plugin_set_blank_flags (plugin, BRASERO_MEDIUM_DVDRW_PLUS| BRASERO_MEDIUM_APPENDABLE| BRASERO_MEDIUM_HAS_DATA| BRASERO_MEDIUM_UNFORMATTED| BRASERO_MEDIUM_BLANK| BRASERO_MEDIUM_CLOSED, BRASERO_BURN_FLAG_NOGRACE, BRASERO_BURN_FLAG_NONE); /* for blanking (CDRWs) */ output = brasero_caps_disc_new (media_rw); brasero_plugin_blank_caps (plugin, output); g_slist_free (output); brasero_plugin_set_blank_flags (plugin, media_rw, BRASERO_BURN_FLAG_NOGRACE| BRASERO_BURN_FLAG_FAST_BLANK, BRASERO_BURN_FLAG_NONE); /* add some configure options */ immed = brasero_plugin_conf_option_new (BRASERO_KEY_IMMEDIATE_FLAG, _("Enable the \"-immed\" flag (see cdrecord manual)"), BRASERO_PLUGIN_OPTION_BOOL); minbuf = brasero_plugin_conf_option_new (BRASERO_KEY_MINBUF_VALUE, _("Minimum drive buffer fill ratio (in %%) (see cdrecord manual):"), BRASERO_PLUGIN_OPTION_INT); brasero_plugin_conf_option_int_set_range (minbuf, 25, 95); brasero_plugin_conf_option_bool_add_suboption (immed, minbuf); brasero_plugin_add_conf_option (plugin, immed); brasero_plugin_register_group (plugin, _(CDRTOOLS_DESCRIPTION)); }