$provider ) { $def = $provider instanceof Describable ? (array) $provider->definition() : array(); $defs[] = array_merge( array( 'id' => $id, 'label' => ucfirst( $id ), 'description' => '', 'fields' => array(), 'usesUrl' => false, 'usesMount' => false, 'testPath' => '', ), $def, array( 'id' => $id ) ); } /** * Filter provider definitions shown in the admin. * * @param array $defs Definitions. */ return apply_filters( 'streamsera_metadata_provider_definitions', $defs ); } /** * Add definitions to the admin bootstrap. * * @param array $data Data. * @return array */ public function admin_data( $data ) { $data['metadataProviders'] = self::definitions(); return $data; } /** * Let add-ons (DJ detection and others) set the live badge label. * * @param array $payload Now playing. * @param int $station_id Station. * @return array */ public function badge( $payload, $station_id ) { $current = isset( $payload['badge'] ) ? (string) $payload['badge'] : ''; if ( '' === $current && ! empty( $payload['dj'] ) ) { $current = (string) $payload['dj']; } /** * Filter the live badge text shown in the player ('' keeps the player's own label). * * @param string $text Badge text. * @param array $payload Now playing payload. * @param int $station_id Station. */ $payload['badge'] = (string) apply_filters( 'streamsera_live_badge_text', $current, $payload, $station_id ); return $payload; } }