changeset 2253:e253d4b1849b

branch merge
author Cristi Magherusan <majeru@atheme-project.org>
date Wed, 19 Dec 2007 17:25:55 +0200
parents a95b6a94682d
children 27fe97a846a4
files src/OSS4/audio.c src/aosd/aosd_osd.c src/aosd/aosd_style.c
diffstat 3 files changed, 40 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/OSS4/audio.c	Mon Dec 17 19:45:15 2007 -0600
+++ b/src/OSS4/audio.c	Wed Dec 19 17:25:55 2007 +0200
@@ -502,7 +502,7 @@
              * soundcard, but not yet played.  I don't
              * think this is worth fixing.
              */
-            ioctl(fd, SNDCTL_DSP_RESET, 0);
+            ioctl(fd, SNDCTL_DSP_SYNC, 0);
         }
         else if (unpause && paused) {
             unpause = FALSE;
@@ -519,7 +519,7 @@
              * the driver to get fucked up by a reset
              */
 
-            ioctl(fd, SNDCTL_DSP_RESET, 0);
+            ioctl(fd, SNDCTL_DSP_SYNC, 0);
             close(fd);
             fd = open(device_name, O_WRONLY);
             oss_set_audio_params();
@@ -532,7 +532,7 @@
 
     }
 
-    ioctl(fd, SNDCTL_DSP_RESET, 0);
+    ioctl(fd, SNDCTL_DSP_SYNC, 0);
     close(fd);
     g_free(buffer);
     return NULL;
@@ -545,7 +545,7 @@
     struct timeval tv;
     fd_set set;
 
-    ioctl(fd, SNDCTL_DSP_RESET, 0);
+    ioctl(fd, SNDCTL_DSP_SYNC, 0);
     frag = (NFRAGS << 16) | fragsize;
     ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &frag);
     /*
--- a/src/aosd/aosd_osd.c	Mon Dec 17 19:45:15 2007 -0600
+++ b/src/aosd/aosd_osd.c	Wed Dec 19 17:25:55 2007 +0200
@@ -179,7 +179,7 @@
 aosd_osd_create ( void )
 {
   gint max_width, layout_width, layout_height;
-  PangoRectangle ink;
+  PangoRectangle ink, log;
   GdkScreen *screen = gdk_screen_get_default();
   gint pos_x = 0, pos_y = 0;
   gint pad_left = 0 , pad_right = 0 , pad_top = 0 , pad_bottom = 0;
@@ -229,9 +229,9 @@
   pango_layout_set_ellipsize( osd_data->pango_layout , PANGO_ELLIPSIZE_NONE );
   pango_layout_set_justify( osd_data->pango_layout , FALSE );
   pango_layout_set_width( osd_data->pango_layout , PANGO_SCALE * max_width );
-  pango_layout_get_pixel_extents( osd_data->pango_layout , &ink , NULL );
-  layout_width = ink.x + ink.width;
-  layout_height = ink.y + ink.height;
+  pango_layout_get_pixel_extents( osd_data->pango_layout , &ink , &log );
+  layout_width = ink.width;
+  layout_height = log.height;
 
   /* osd position */
   switch ( osd_data->cfg_osd->position.placement )
--- a/src/aosd/aosd_style.c	Mon Dec 17 19:45:15 2007 -0600
+++ b/src/aosd/aosd_style.c	Wed Dec 19 17:25:55 2007 +0200
@@ -161,6 +161,22 @@
 }
 
 
+// sizing helper
+static void
+aosd_layout_size( PangoLayout * layout , gint * width , gint * height , gint * bearing )
+{
+  PangoRectangle ink, log;
+
+  pango_layout_get_pixel_extents( layout , &ink , &log );
+
+  if ( width != NULL )
+    *width = ink.width;
+  if ( height != NULL )
+    *height = log.height;
+  if ( bearing != NULL )
+    *bearing = -ink.x;
+}
+
 
 /* RENDER FUNCTIONS */
 
@@ -178,9 +194,9 @@
   aosd_color_t textcolor0 = data->text->fonts_color[0];
   aosd_color_t shadowcolor0 = data->text->fonts_shadow_color[0];
   gboolean draw_shadow = data->text->fonts_draw_shadow[0];
-  gint width = 0, height = 0;
+  gint width = 0, height = 0, bearing = 0;
 
-  pango_layout_get_pixel_size( osd_layout , &width , &height );
+  aosd_layout_size( osd_layout , &width , &height , &bearing );
 
   /* draw rectangle container */
   cairo_set_source_rgba( cr , (gdouble)color0.red / 65535 , (gdouble)color0.green / 65535 ,
@@ -201,7 +217,7 @@
     cairo_set_source_rgba( cr , (gdouble)shadowcolor0.red / 65535 , (gdouble)shadowcolor0.green / 65535 ,
       (gdouble)shadowcolor0.blue / 65535 , (gdouble)shadowcolor0.alpha / 65535 );
     cairo_move_to( cr,
-      aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.left + 2 ,
+      aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.left + bearing + 2 ,
       aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.top + 2 );
     pango_cairo_show_layout( cr , osd_layout );
   }
@@ -210,7 +226,7 @@
   cairo_set_source_rgba( cr , (gdouble)textcolor0.red / 65535 , (gdouble)textcolor0.green / 65535 ,
     (gdouble)textcolor0.blue / 65535 , (gdouble)textcolor0.alpha / 65535 );
   cairo_move_to( cr,
-    aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.left ,
+    aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.left + bearing ,
     aosd_deco_styles[AOSD_DECO_STYLE_RECT].padding.top );
   pango_cairo_show_layout( cr , osd_layout );
 }
@@ -230,9 +246,9 @@
   aosd_color_t textcolor0 = data->text->fonts_color[0];
   aosd_color_t shadowcolor0 = data->text->fonts_shadow_color[0];
   gboolean draw_shadow = data->text->fonts_draw_shadow[0];
-  gint width = 0, height = 0;
+  gint width = 0, height = 0, bearing = 0;
 
-  pango_layout_get_pixel_size( osd_layout , &width , &height );
+  aosd_layout_size( osd_layout , &width , &height , &bearing );
 
   /* draw rounded-rectangle container */
   cairo_set_source_rgba( cr , (gdouble)color0.red / 65535 , (gdouble)color0.green / 65535 ,
@@ -262,7 +278,7 @@
     cairo_set_source_rgba( cr , (gdouble)shadowcolor0.red / 65535 , (gdouble)shadowcolor0.green / 65535 ,
       (gdouble)shadowcolor0.blue / 65535 , (gdouble)shadowcolor0.alpha / 65535 );
     cairo_move_to( cr ,
-      aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.left + 2 ,
+      aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.left + bearing + 2 ,
       aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.top + 2 );
     pango_cairo_show_layout( cr , osd_layout );
   }
@@ -271,7 +287,7 @@
   cairo_set_source_rgba( cr , (gdouble)textcolor0.red / 65535 , (gdouble)textcolor0.green / 65535 ,
     (gdouble)textcolor0.blue / 65535 , (gdouble)textcolor0.alpha / 65535 );
   cairo_move_to( cr ,
-    aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.left ,
+    aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.left + bearing ,
     aosd_deco_styles[AOSD_DECO_STYLE_ROUNDRECT].padding.top );
   pango_cairo_show_layout( cr , osd_layout );
 }
@@ -291,9 +307,9 @@
   aosd_color_t textcolor0 = data->text->fonts_color[0];
   aosd_color_t shadowcolor0 = data->text->fonts_shadow_color[0];
   gboolean draw_shadow = data->text->fonts_draw_shadow[0];
-  gint width = 0, height = 0;
+  gint width = 0, height = 0, bearing = 0;
 
-  pango_layout_get_pixel_size( osd_layout , &width , &height );
+  aosd_layout_size( osd_layout , &width , &height , &bearing );
 
   /* draw jigsaw-piece-like container */
   cairo_set_source_rgba( cr , (gdouble)color0.red / 65535 , (gdouble)color0.green / 65535 ,
@@ -323,7 +339,7 @@
     cairo_set_source_rgba( cr , (gdouble)shadowcolor0.red / 65535 , (gdouble)shadowcolor0.green / 65535 ,
       (gdouble)shadowcolor0.blue / 65535 , (gdouble)shadowcolor0.alpha / 65535 );
     cairo_move_to( cr ,
-      aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.left + 2 ,
+      aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.left + bearing + 2 ,
       aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.top + 2 );
     pango_cairo_show_layout( cr , osd_layout );
   }
@@ -332,7 +348,7 @@
   cairo_set_source_rgba( cr , (gdouble)textcolor0.red / 65535 , (gdouble)textcolor0.green / 65535 ,
     (gdouble)textcolor0.blue / 65535 , (gdouble)textcolor0.alpha / 65535 );
   cairo_move_to( cr ,
-    aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.left ,
+    aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.left + bearing ,
     aosd_deco_styles[AOSD_DECO_STYLE_CONCAVERECT].padding.top );
   pango_cairo_show_layout( cr , osd_layout );
 }
@@ -350,9 +366,9 @@
   aosd_color_t textcolor0 = data->text->fonts_color[0];
   aosd_color_t shadowcolor0 = data->text->fonts_shadow_color[0];
   gboolean draw_shadow = data->text->fonts_draw_shadow[0];
-  gint width = 0, height = 0;
+  gint width = 0, height = 0, bearing = 0;
 
-  pango_layout_get_pixel_size( osd_layout , &width , &height );
+  aosd_layout_size( osd_layout , &width , &height , &bearing );
 
   if ( draw_shadow == TRUE )
   {
@@ -360,7 +376,7 @@
     cairo_set_source_rgba( cr , (gdouble)shadowcolor0.red / 65535 , (gdouble)shadowcolor0.green / 65535 ,
       (gdouble)shadowcolor0.blue / 65535 , (gdouble)shadowcolor0.alpha / 65535 );
     cairo_move_to( cr ,
-      aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.left + 2 ,
+      aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.left + bearing + 2 ,
       aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.top + 2 );
     pango_cairo_show_layout( cr , osd_layout );
   }
@@ -369,7 +385,7 @@
   cairo_set_source_rgba( cr , (gdouble)textcolor0.red / 65535 , (gdouble)textcolor0.green / 65535 ,
     (gdouble)textcolor0.blue / 65535 , (gdouble)textcolor0.alpha / 65535 );
   cairo_move_to( cr ,
-    aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.left ,
+    aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.left + bearing ,
     aosd_deco_styles[AOSD_DECO_STYLE_NONE].padding.top );
   pango_cairo_show_layout( cr , osd_layout );
 }