~noskcaj/ubuntu/vivid/brasero/3.12

« back to all changes in this revision

Viewing changes to src/burn-cdrecord.c

  • Committer: Bazaar Package Importer
  • Author(s): Mario Danic
  • Date: 2007-06-04 14:06:16 UTC
  • mto: (1.4.1 experimental)
  • mto: This revision was merged to the branch mainline in revision 10.
  • Revision ID: james.westby@ubuntu.com-20070604140616-gtp1vsiuqr5grutk
Tags: upstream-0.5.90
ImportĀ upstreamĀ versionĀ 0.5.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
#include <glib/gi18n-lib.h>
42
42
#include <glib/gstdio.h>
43
43
 
 
44
#include <gconf/gconf-client.h>
 
45
 
44
46
#include <nautilus-burn-drive.h>
45
47
 
46
48
#include "burn-basics.h"
132
134
 
133
135
static GObjectClass *parent_class = NULL;
134
136
 
 
137
#define GCONF_KEY_IMMEDIATE_FLAG        "/apps/brasero/config/immed_flag"
 
138
#define GCONF_KEY_MINBUF_VALUE          "/apps/brasero/config/minbuf_value"
 
139
 
135
140
GType
136
141
brasero_cdrecord_get_type ()
137
142
{
200
205
static void
201
206
brasero_cdrecord_init (BraseroCDRecord *obj)
202
207
{
 
208
        GConfClient *client;
 
209
 
203
210
        obj->priv = g_new0 (BraseroCDRecordPrivate, 1);
 
211
 
 
212
        /* load our "configuration" */
 
213
        client = gconf_client_get_default ();
 
214
        obj->priv->immediate = gconf_client_get_bool (client,
 
215
                                                      GCONF_KEY_IMMEDIATE_FLAG,
 
216
                                                      NULL);
 
217
        obj->priv->minbuf = gconf_client_get_int (client,
 
218
                                                  GCONF_KEY_MINBUF_VALUE,
 
219
                                                  NULL);
 
220
        if (obj->priv->minbuf > 95 || obj->priv->minbuf < 25)
 
221
                obj->priv->minbuf = 30;
 
222
 
 
223
        g_object_unref (client);
204
224
}
205
225
 
206
226
static void
889
909
                        if ((format & BRASERO_IMAGE_FORMAT_ISO)) {
890
910
                                g_ptr_array_add (argv, g_strdup_printf ("tsize=%Lis", sectors));
891
911
 
 
912
                                /* DAO can't be used if we're appending to a 
 
913
                                 * disc with audio track(s) on it */
892
914
                                if (cdrecord->priv->dao)
893
915
                                        g_ptr_array_add (argv, g_strdup ("-dao"));
894
916
 
905
927
                                g_ptr_array_add (argv, g_strdup ("-"));
906
928
 
907
929
                                /* we need to generate the toc first */
908
 
 
909
930
                                if (result != BRASERO_BURN_OK)
910
931
                                        return result;
911
932
                        } 
944
965
                                              (cdrecord->priv->rate + 1) * CDR_SPEED);
945
966
 
946
967
                        /* now set the rest of the arguments */
947
 
                        g_ptr_array_add (argv, g_strdup ("-dao"));
 
968
                        if (cdrecord->priv->dao)
 
969
                                g_ptr_array_add (argv, g_strdup ("-dao"));
 
970
 
948
971
                        g_ptr_array_add (argv, g_strdup ("-swab"));
949
972
                        g_ptr_array_add (argv, g_strdup ("-audio"));
950
973
                        g_ptr_array_add (argv, g_strdup ("-useinfo"));
1092
1115
{
1093
1116
        BraseroCDRecord *cdrecord;
1094
1117
        BraseroBurnResult result;
 
1118
        gchar *prog_name;
1095
1119
        gchar *dev_str;
1096
1120
 
1097
1121
        cdrecord = BRASERO_CD_RECORD (process);
1102
1126
        if (!cdrecord->priv->drive)
1103
1127
                BRASERO_JOB_NOT_READY (cdrecord);
1104
1128
 
1105
 
        g_ptr_array_add (argv, g_strdup ("cdrecord"));
 
1129
        /* This is to support cdrkit. We give it the priority. */
 
1130
        prog_name = g_find_program_in_path ("wodim");
 
1131
        if (prog_name && g_file_test (prog_name, G_FILE_TEST_IS_EXECUTABLE))
 
1132
                g_ptr_array_add (argv, prog_name);
 
1133
        else
 
1134
                g_ptr_array_add (argv, g_strdup ("cdrecord"));
 
1135
 
1106
1136
        g_ptr_array_add (argv, g_strdup ("-v"));
1107
1137
 
1108
1138
        dev_str = g_strdup_printf ("dev=%s",
1145
1175
                            GError **error)
1146
1176
{
1147
1177
        BraseroCDRecord *cdrecord;
1148
 
        NautilusBurnMediaType media;
 
1178
        BraseroMediumInfo media;
1149
1179
 
1150
1180
        cdrecord = BRASERO_CD_RECORD (recorder);
1151
1181
 
1152
 
        media = nautilus_burn_drive_get_media_type (drive);
1153
 
        if (media > NAUTILUS_BURN_MEDIA_TYPE_CDRW)
 
1182
        media = NCB_MEDIA_GET_STATUS (drive);
 
1183
        if (media & BRASERO_MEDIUM_DVD)
1154
1184
                BRASERO_JOB_NOT_SUPPORTED (cdrecord);
1155
1185
 
1156
1186
        if (cdrecord->priv->drive) {
1274
1304
 
1275
1305
        return result;                          
1276
1306
}
1277
 
 
1278
 
void
1279
 
brasero_cdrecord_set_immediate (BraseroCDRecord *cdrecord, gint minbuf)
1280
 
{
1281
 
        g_return_if_fail (BRASERO_IS_CD_RECORD (cdrecord));
1282
 
 
1283
 
        if (minbuf > 95 || minbuf < 25)
1284
 
                minbuf = 30;
1285
 
 
1286
 
        cdrecord->priv->immediate = 1;
1287
 
        cdrecord->priv->minbuf = minbuf;
1288
 
}