void mate_volume_control_preferences_change (MateVolumeControlPreferences *prefs, GstElement *element) { GstMixer *mixer; GtkTreeIter iter; GtkListStore *store; const GList *item; gint pgnum; g_return_if_fail (GST_IS_MIXER (element)); mixer = GST_MIXER (element); store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (prefs->treeview))); /* remove old */ while (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter)) { gtk_list_store_remove (store, &iter); } /* take/put reference */ gst_object_replace ((GstObject **) &prefs->mixer, GST_OBJECT (element)); /* add all tracks */ mate_volume_control_element_whitelist (mixer, NULL); for (item = gst_mixer_list_tracks (mixer); item != NULL; item = item->next) { GstMixerTrack *track = item->data; gboolean active = mate_volume_control_element_is_to_show (prefs->settings, mixer, track); pgnum = get_page_num (mixer, track); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_ACTIVE, active, COL_LABEL, track->label, COL_TRACK, track, COL_TYPE, get_page_description (pgnum), COL_PAGE, pgnum, -1); } }
static int __devinit touch_tool_probe( struct platform_device *pdev ) { struct synaptics_rmi4_data *rmi_data = ( struct synaptics_rmi4_data* )pdev->dev.platform_data; struct touch_tool_data *tool_data; if( !rmi_data ) { printk( "TTUCH : The pointer of RMI data is NULL\n" ); return -ENOMEM; } if( !( tool_data = allocate_memory() ) ) { printk( "TTUCH : allocate Memory failed\n" ); return -ENOMEM; } if( !create_command_string_list( &tool_data->string ) ) { printk( "TTUCH : Create command failed\n" ); release_memory( tool_data ); return -EINVAL; } tool_data->rmi_data = rmi_data; if( load_command( &tool_data->command, get_load_command_pointer(), get_load_command_counter() ) ) { struct control_node_load file_node; // Create file node in sys/class/touch/rmi4 file_node.class_name = "touch", file_node.device_name = "rmi4"; file_node.file_node_data = tool_data, file_node.control_read = tool_command, file_node.control_write = tool_control, file_node.info_read = tool_info; tool_data->file_node_class = control_file_node_register( &file_node ); dev_set_drvdata( &pdev->dev, tool_data ); info_print( INFO_BUFFER_INIT, NULL, tool_data->info_buffer, INFO_BUFFER_SIZE ); INIT_LIST_HEAD( &tool_data->descriptor_list ); get_page_description( tool_data ); get_touch_ic_info( tool_data, log_print ); printk( "TTUCH : Touch tool driver is ready\n" ); return 0; } release_memory( tool_data ); return -EINVAL; }