brasero r954 - in trunk: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r954 - in trunk: . src
- Date: Sun, 6 Jul 2008 16:33:24 +0000 (UTC)
Author: philippr
Date: Sun Jul 6 16:33:24 2008
New Revision: 954
URL: http://svn.gnome.org/viewvc/brasero?rev=954&view=rev
Log:
Check drive capabilities (Burn proof, just link only ATM)
fix name of model in previous patch
* src/burn-caps.c (brasero_burn_caps_flags_check_for_drive),
(brasero_burn_caps_new_task),
(brasero_burn_caps_is_input_supported),
(brasero_burn_caps_is_output_supported),
(brasero_burn_caps_is_session_supported),
(brasero_burn_caps_flags_update_for_drive),
(brasero_burn_caps_get_flags):
* src/burn-drive.c (brasero_drive_has_safe_burn):
* src/burn-drive.h:
* src/burn-medium.c (brasero_medium_check_old_drive):
Modified:
trunk/ChangeLog
trunk/src/burn-caps.c
trunk/src/burn-drive.c
trunk/src/burn-drive.h
trunk/src/burn-medium.c
Modified: trunk/src/burn-caps.c
==============================================================================
--- trunk/src/burn-caps.c (original)
+++ trunk/src/burn-caps.c Sun Jul 6 16:33:24 2008
@@ -90,6 +90,13 @@
return NULL; \
}
+#define BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG_RES(session) \
+{ \
+ brasero_burn_session_log (session, "Unsupported type of task operation"); \
+ BRASERO_BURN_LOG ("Unsupported type of task operation"); \
+ return BRASERO_BURN_NOT_SUPPORTED; \
+}
+
#define BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG_ERROR(session, error) \
{ \
if (error) \
@@ -1163,6 +1170,24 @@
return retval;
}
+static gboolean
+brasero_burn_caps_flags_check_for_drive (BraseroBurnSession *session)
+{
+ BraseroDrive *drive;
+ BraseroBurnFlag flags;
+
+ drive = brasero_burn_session_get_burner (session);
+ if (!drive)
+ return TRUE;
+
+ flags = brasero_burn_session_get_flags (session);
+ if (!brasero_drive_has_safe_burn (drive)
+ && !(flags & BRASERO_BURN_FLAG_BURNPROOF))
+ return FALSE;
+
+ return TRUE;
+}
+
GSList *
brasero_burn_caps_new_task (BraseroBurnCaps *self,
BraseroBurnSession *session,
@@ -1216,6 +1241,9 @@
"Input set =");
session_flags = brasero_burn_session_get_flags (session);
+ if (!brasero_burn_caps_flags_check_for_drive (session))
+ BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG (session);
+
list = brasero_caps_find_best_link (last_caps,
self->priv->group_id,
NULL,
@@ -1807,6 +1835,9 @@
BraseroTrackType output;
BraseroPluginIOFlag io_flags;
+ if (!brasero_burn_caps_flags_check_for_drive (session))
+ BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG_RES (session);
+
if (!brasero_burn_session_is_dest_file (session)) {
output.type = BRASERO_TRACK_TYPE_DISC;
output.subtype.media = brasero_burn_session_get_dest_media (session);
@@ -1851,6 +1882,9 @@
BraseroTrackType input;
BraseroPluginIOFlag io_flags;
+ if (!brasero_burn_caps_flags_check_for_drive (session))
+ BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG_RES (session);
+
/* Here flags don't matter as we don't record anything.
* Even the IOFlags since that can be checked later with
* brasero_burn_caps_get_flags.
@@ -1968,6 +2002,9 @@
if (brasero_burn_session_same_src_dest_drive (session))
return brasero_burn_caps_is_session_supported_same_src_dest (self, session);
+ if (!brasero_burn_caps_flags_check_for_drive (session))
+ BRASERO_BURN_CAPS_NOT_SUPPORTED_LOG_RES (session);
+
/* Here flags don't matter as we don't record anything.
* Even the IOFlags since that can be checked later with
* brasero_burn_caps_get_flags. */
@@ -2183,6 +2220,22 @@
return retval;
}
+static BraseroBurnFlag
+brasero_burn_caps_flags_update_for_drive (BraseroBurnFlag flags,
+ BraseroBurnSession *session)
+{
+ BraseroDrive *drive;
+
+ drive = brasero_burn_session_get_burner (session);
+ if (!drive)
+ return flags;
+
+ if (!brasero_drive_has_safe_burn (drive))
+ flags &= ~BRASERO_BURN_FLAG_BURNPROOF;
+
+ return flags;
+}
+
static BraseroBurnResult
brasero_caps_get_flags_for_disc (BraseroBurnFlag session_flags,
BraseroMedia media,
@@ -2285,6 +2338,11 @@
session_flags = brasero_burn_session_get_flags (session);
BRASERO_BURN_LOG_FLAGS (session_flags, "FLAGS (session):");
+ if (!brasero_burn_caps_flags_check_for_drive (session)) {
+ BRASERO_BURN_LOG ("Session flags not supported");
+ return BRASERO_BURN_ERR;
+ }
+
/* sanity check:
* - MERGE and BLANK are not possible together.
* MERGE wins (always)
@@ -2446,6 +2504,8 @@
compulsory_flags |= blank_compulsory;
}
+ supported_flags = brasero_burn_caps_flags_update_for_drive (supported_flags, session);
+
if (supported)
*supported = supported_flags;
Modified: trunk/src/burn-drive.c
==============================================================================
--- trunk/src/burn-drive.c (original)
+++ trunk/src/burn-drive.c Sun Jul 6 16:33:24 2008
@@ -360,6 +360,15 @@
BRASERO_DRIVE_CAPS_DVDRW_PLUS_DL));
}
+gboolean
+brasero_drive_has_safe_burn (BraseroDrive *self)
+{
+ BraseroDrivePrivate *priv;
+
+ priv = BRASERO_DRIVE_PRIVATE (self);
+ return TRUE;
+}
+
static void
brasero_drive_init (BraseroDrive *object)
{ }
Modified: trunk/src/burn-drive.h
==============================================================================
--- trunk/src/burn-drive.h (original)
+++ trunk/src/burn-drive.h Sun Jul 6 16:33:24 2008
@@ -104,6 +104,9 @@
brasero_drive_can_write (BraseroDrive *drive);
gboolean
+brasero_drive_has_safe_burn (BraseroDrive *drive);
+
+gboolean
brasero_drive_is_door_open (BraseroDrive *drive);
gboolean
Modified: trunk/src/burn-medium.c
==============================================================================
--- trunk/src/burn-medium.c (original)
+++ trunk/src/burn-medium.c Sun Jul 6 16:33:24 2008
@@ -886,7 +886,7 @@
if (!model)
return BRASERO_BURN_ERR;
- if (!strcmp (model, "TEAC R55S")) {
+ if (!strcmp (model, "CD-R55S")) {
g_free (model);
priv->max_rd = BRASERO_SPEED_TO_RATE_CD (12);
priv->max_wrt = BRASERO_SPEED_TO_RATE_CD (4);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]