Changeset 2076:13dee50aead2 in roaraudio for plugins/gstreamer0.10


Ignore:
Timestamp:
07/19/09 05:51:19 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

got the gnome mixer to display a dummy slider :)

Location:
plugins/gstreamer0.10
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • plugins/gstreamer0.10/roarmixer.c

    r2074 r2076  
    152152} 
    153153 
     154G_DEFINE_TYPE (GstRoarMixerTrack, gst_roarmixer_track, GST_TYPE_MIXER_TRACK); 
     155 
    154156GstRoarMixer*    gst_roarmixer_new                (const gchar *device, 
    155157                                                 GstRoarMixerDirection dir) { 
    156158  GstRoarMixer *ret = NULL; 
     159 
     160  ROAR_WARN("gst_roarmixer_new(device='%s', dir=0x%.4x) = ?", device, dir); 
    157161 
    158162  g_return_val_if_fail(device != NULL, NULL); 
     
    172176   goto error; 
    173177 
     178  ROAR_WARN("gst_roarmixer_new(device='%s', dir=0x%.4x) = %p", device, dir, ret); 
    174179  return ret; 
    175180 
     
    178183    gst_roarmixer_free (ret); 
    179184 
     185  ROAR_WARN("gst_roarmixer_new(device='%s', dir=0x%.4x) = NULL // Error?", device, dir); 
    180186  return NULL; 
    181187} 
     
    183189void            gst_roarmixer_free               (GstRoarMixer *mixer) { 
    184190  g_return_if_fail(mixer != NULL); 
     191 
     192  ROAR_WARN("gst_roarmixer_free(mixer=%p) = ?", mixer); 
    185193 
    186194  if (mixer->device) { 
     
    203211 
    204212  g_free (mixer); 
     213 
     214  ROAR_WARN("gst_roarmixer_free(mixer=%p) = (void)", mixer); 
    205215} 
    206216 
     
    217227} 
    218228 
     229void            gst_roarmixer_updatestreamlist   (GstRoarMixer *mixer) { 
     230  gboolean record = FALSE; 
     231  gboolean input  = FALSE; 
     232  gint  master = 0; 
     233  gint  i      = 0; 
     234  gint  channels = 2; 
     235  GstMixerTrack *track; 
     236 
     237  ROAR_WARN("gst_roarmixer_updatestreamlist(mixer=%p) = ?", mixer); 
     238 
     239  if (mixer->tracklist) { 
     240    ROAR_WARN("gst_roarmixer_updatestreamlist(mixer=%p) = (void)", mixer); 
     241    return; 
     242  } 
     243 
     244      track = gst_roarmixer_track_new (mixer, i, channels, 
     245          (record ? GST_MIXER_TRACK_RECORD : 0) | 
     246          (input ? GST_MIXER_TRACK_INPUT : 
     247              GST_MIXER_TRACK_OUTPUT) | 
     248          ((master != i) ? 0 : GST_MIXER_TRACK_MASTER)); 
     249      mixer->tracklist = g_list_append (mixer->tracklist, track); 
     250 
     251  ROAR_WARN("gst_roarmixer_updatestreamlist(mixer=%p) = (void)", mixer); 
     252} 
     253 
    219254const GList*    gst_roarmixer_list_tracks        (GstRoarMixer * mixer) { 
     255 ROAR_WARN("gst_roarmixer_list_tracks(mixer=%p) = ?", mixer); 
     256 
     257 gst_roarmixer_updatestreamlist(mixer); 
     258 
    220259 return (const GList *) mixer->tracklist; 
    221260} 
     
    238277} 
    239278 
     279// tracks: 
     280#define MASK_BIT_IS_SET(mask, bit) \ 
     281  (mask & (1 << bit)) 
     282 
     283static void 
     284gst_roarmixer_track_class_init (GstRoarMixerTrackClass * klass) 
     285{ 
     286  /* nop */ 
     287} 
     288 
     289static void 
     290gst_roarmixer_track_init (GstRoarMixerTrack * track) 
     291{ 
     292  //memset(track, 0, sizeof(*track)); 
     293  track->stream_id = -1; 
     294} 
     295 
     296GstMixerTrack * 
     297gst_roarmixer_track_new (GstRoarMixer * mixer, 
     298    gint stream_id, gint max_chans, gint flags) 
     299{ 
     300  GstRoarMixerTrack *roartrack; 
     301  GstMixerTrack *track; 
     302 
     303  ROAR_WARN("gst_roarmixer_track_new(mixer=%p, stream_id=%i, max_chans=%i, flags=0x%.4x) = ?", mixer, stream_id, max_chans, flags); 
     304 
     305  roartrack = g_object_new (GST_TYPE_ROARMIXER_TRACK, NULL); 
     306  ROAR_WARN("gst_roarmixer_track_new(*): roartrack=%p", roartrack); 
     307  track = GST_MIXER_TRACK (roartrack); 
     308  track->label = g_strdup ("TRACKLABLE"); 
     309  track->num_channels = max_chans; 
     310  track->flags = flags; 
     311  track->min_volume = 0; 
     312  track->max_volume = 65535; 
     313  roartrack->stream_id = stream_id; 
     314 
     315  /* volume */ 
     316  ROAR_WARN("gst_roarmixer_track_new(mixer=%p, stream_id=%i, max_chans=%i, flags=0x%.4x) = %p", mixer, stream_id, max_chans, flags, track); 
     317  return track; 
     318} 
     319 
    240320//ll 
  • plugins/gstreamer0.10/roarmixer.h

    r2073 r2076  
    4545#define GST_TYPE_ROAR_MIXER_ELEMENT              (gst_roar_mixer_element_get_type()) 
    4646 
     47#define GST_TYPE_ROARMIXER_TRACK \ 
     48  (gst_roarmixer_track_get_type ()) 
     49#define GST_ROARMIXER_TRACK(obj) \ 
     50  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ROARMIXER_TRACK, \ 
     51                               GstRoarMixerTrack)) 
     52#define GST_ROARMIXER_TRACK_CLASS(klass) \ 
     53  (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ROARMIXER_TRACK, \ 
     54                            GstRoarMixerTrackClass)) 
     55#define GST_IS_ROARMIXER_TRACK(obj) \ 
     56  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ROARMIXER_TRACK)) 
     57#define GST_IS_ROARMIXER_TRACK_CLASS(klass) \ 
     58  (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_ROARMIXER_TRACK)) 
     59 
    4760 
    4861typedef struct _GstRoarMixerElement GstRoarMixerElement; 
     
    7285#define GST_ROAR_MIXER(obj)              ((GstRoarMixer*)(obj)) 
    7386 
    74 #define GST_TYPE_ROARMIXER \ 
    75   (gst_roarmixer_get_type()) 
    76  
    7787struct _GstRoarMixer { 
    7888  GList *               tracklist;      /* list of available tracks */ 
     
    106116                                                 GstRoarMixerDirection dir); 
    107117void            gst_roarmixer_free               (GstRoarMixer *mixer); 
     118void            gst_roarmixer_updatestreamlist   (GstRoarMixer *mixer); 
    108119 
    109120const GList*    gst_roarmixer_list_tracks        (GstRoarMixer * mixer); 
     
    120131                                                 GstMixerTrack * track, 
    121132                                                 gboolean mute); 
     133 
     134GType           gst_roarmixer_track_get_type     (void); 
     135GstMixerTrack * 
     136gst_roarmixer_track_new (GstRoarMixer * mixer, 
     137    gint stream_id, gint max_chans, gint flags); 
    122138 
    123139#define GST_IMPLEMENT_ROAR_MIXER_METHODS(Type, interface_as_function)            \ 
Note: See TracChangeset for help on using the changeset viewer.